From dfe07b6f6a00639c35fb4651e3908bd68f97fce1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 13:19:29 +0300 Subject: [PATCH 0001/3047] Fix gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d2dc35e82..ded891fcd 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,4 @@ build/ origin.css fail.css -postcss.js +/postcss.js From 92d6fbc3c4782684c51cc9a10f9d9b7084fc207a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 16:19:58 +0300 Subject: [PATCH 0002/3047] Better error on double colon --- lib/parser.js | 6 +++++- test/parse.js | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 4a788eae1..bffbbdecb 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -361,7 +361,11 @@ export default class Parser { } else if ( type == ')' ) { brackets -= 0; } else if ( brackets === 0 && type == ':' ) { - if ( prev[0] == 'word' && prev[1] == 'progid' ) { + if ( !prev && this.input.safe ) { + continue; + } else if ( !prev ) { + throw this.input.error('Double colon', token[2], token[3]); + } else if ( prev[0] == 'word' && prev[1] == 'progid' ) { continue; } else { colon = i; diff --git a/test/parse.js b/test/parse.js index 8f681bcec..0df787222 100644 --- a/test/parse.js +++ b/test/parse.js @@ -184,6 +184,15 @@ describe('postcss.parse()', () => { expect(root.toString()).to.eql('a { one: 1; two: 2 }'); }); + it('throws on double colon', () => { + expect( () => parse('a { one:: 1 }') ) + .to.throw(/:1:9: Double colon/); + }); + + it('fixes double colon in safe mode', () => { + var root = parse('a { one:: 1 }', { safe: true }); + expect(root.first.first.value).to.eql(': 1'); + }); }); }); From 2f8142d3faa99d6e385ba0ca66e235e92e1ab865 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 16:28:09 +0300 Subject: [PATCH 0003/3047] Clean up package.json keywords --- package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e14dd6c40..5ca0d5212 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,8 @@ "name": "postcss", "version": "4.0.4", "description": "Tool for transforming CSS with JS plugins", - "keywords": ["css", "postproccessor", "parser", "source map", - "manipulation", "preprocess", "transform", - "transpiler"], + "keywords": ["css", "postproccessor", "parser", "source map", "transform", + "manipulation", "preprocess", "transpiler"], "author": "Andrey Sitnik ", "license": "MIT", "repository": { From 0af603b70f87876e1f695994ff4240d278fc9764 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 16:28:52 +0300 Subject: [PATCH 0004/3047] Release 4.0.5 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 1e89eab0f..f9605d406 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.0.5 +* Fix error message on double colon in declaration. + ## 4.0.4 * Fix indent detection in some rare cases. diff --git a/package.json b/package.json index 5ca0d5212..ad1b79a79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.0.4", + "version": "4.0.5", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From e1d502a2f8964eaa5007af545ab6a4ba1587507f Mon Sep 17 00:00:00 2001 From: Andres Suarez Date: Mon, 23 Feb 2015 20:06:03 -0500 Subject: [PATCH 0005/3047] 6to5 -> babel in build:package --- gulpfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 619088d3d..b8379191e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -33,8 +33,8 @@ gulp.task('build:package', ['build:clean'], function () { gulp.src('./package.json') .pipe(editor(function (json) { json.main = 'lib/postcss'; - json.devDependencies['6to5'] = json.dependencies['6to5']; - delete json.dependencies['6to5']; + json.devDependencies['babel'] = json.dependencies['babel']; + delete json.dependencies['babel']; return json; })) .pipe(gulp.dest('build')); From 23a7d6795cdd39f3640c32b0d8732aab8a2ed79b Mon Sep 17 00:00:00 2001 From: Andres Suarez Date: Mon, 23 Feb 2015 20:11:24 -0500 Subject: [PATCH 0006/3047] Fix linter warnings --- gulpfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index b8379191e..25957e498 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -33,8 +33,8 @@ gulp.task('build:package', ['build:clean'], function () { gulp.src('./package.json') .pipe(editor(function (json) { json.main = 'lib/postcss'; - json.devDependencies['babel'] = json.dependencies['babel']; - delete json.dependencies['babel']; + json.devDependencies.babel = json.dependencies.babel; + delete json.dependencies.babel; return json; })) .pipe(gulp.dest('build')); From 419e724de0195d65e28a3b45836622bfaac6ebcd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 24 Feb 2015 15:18:34 +0300 Subject: [PATCH 0007/3047] Clean up code --- lib/previous-map.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/previous-map.js b/lib/previous-map.js index bc94d4805..e00723f07 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -9,7 +9,8 @@ export default class PreviousMap { this.loadAnnotation(css); this.inline = this.startWith(this.annotation, 'data:'); - var text = this.loadMap(opts.from, opts.map ? opts.map.prev : undefined); + var prev = opts.map ? opts.map.prev : undefined; + var text = this.loadMap(opts.from, prev); if ( text ) this.text = text; } From 904701e7f735e50dc2bfc2e0e5c5f41caa38e1c4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 24 Feb 2015 15:41:34 +0300 Subject: [PATCH 0008/3047] Update Babel and Chai --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ad1b79a79..3ebbe9b18 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "source-map": "~0.2.0", "js-base64": "~2.1.7", - "babel": "4.4.5" + "babel": "4.4.6" }, "devDependencies": { "concat-with-sourcemaps": "1.0.0", @@ -42,7 +42,7 @@ "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.4.0", - "chai": "2.0.0" + "chai": "2.1.0" }, "scripts": { "test": "gulp" From 6916c453bf704ed387a2b114642adbb82694e5bf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 24 Feb 2015 15:41:54 +0300 Subject: [PATCH 0009/3047] Release 4.0.6 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index f9605d406..736bf8dbd 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.0.6 +* Remove `babel` from released package dependencies (by Andres Suarez). + ## 4.0.5 * Fix error message on double colon in declaration. diff --git a/package.json b/package.json index 3ebbe9b18..f0f0f1f81 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.0.5", + "version": "4.0.6", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From b627645cf793a44d7c1c3d08da08ddfb0f15040b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 28 Feb 2015 12:55:26 +0300 Subject: [PATCH 0010/3047] Move postcss-hex to Fallback section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b1cd8100..6e1999ed9 100644 --- a/README.md +++ b/README.md @@ -208,7 +208,6 @@ a specialized language for a specialized tool (as with preprocessors). * [postcss-color-function] supports functions to transform colors. * [postcss-color-gray] supports the `gray()` function. -* [postcss-color-hex] transforms `rgb()` and `rgba()` to hex. * [postcss-color-hex-alpha] supports `#rrggbbaa` and `#rgba` notation. * [postcss-color-hwb] transforms `hwb()` to widely compatible `rgb()`. * [postcss-color-rebeccapurple] supports the `rebeccapurple` color. @@ -225,6 +224,7 @@ a specialized language for a specialized tool (as with preprocessors). ### Fallbacks +* [postcss-color-hex] transforms `rgb()` and `rgba()` to hex. * [postcss-epub] adds the `-epub-` prefix to relevant properties. * [postcss-opacity] adds opacity filter for IE8. * [postcss-vmin] generates `vm` fallback for `vmin` unit in IE9. From 53c67a4454e3781ab32c37276eca9f9faaa1e8df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=B8=9D?= Date: Mon, 2 Mar 2015 11:14:57 +0800 Subject: [PATCH 0011/3047] Update API.md --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index 57a9644d2..30156010c 100644 --- a/API.md +++ b/API.md @@ -824,7 +824,7 @@ rule.append({ prop: 'color', value: 'black' }); // declaration rule.append({ text: 'Comment' }) // comment ``` -### `container.insertBefore(oldNode, newNew)` and `container.insertAftr(oldNode, newNew)` +### `container.insertBefore(oldNode, newNew)` and `container.insertAfter(oldNode, newNew)` Insert `newNode` before/after `oldNode` within the container. From dc94b3c834353251601f1d5a2114d9ced6d79176 Mon Sep 17 00:00:00 2001 From: Kyo Nagashima Date: Tue, 3 Mar 2015 17:37:28 +0900 Subject: [PATCH 0012/3047] Clarify how to import `vendor` module --- API.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/API.md b/API.md index 30156010c..6de7ed2b1 100644 --- a/API.md +++ b/API.md @@ -246,6 +246,10 @@ if ( result.map ) { Contains helpers for working with vendor prefixes. +```js +var vendor = require('postcss/lib/vendor'); +``` + ### `vendor.prefix(string)` Returns the vendor prefix extracted from an input string. From 4a2fa5208f825799b6ac6d91bb106830e064b899 Mon Sep 17 00:00:00 2001 From: Pascal Duez Date: Fri, 6 Mar 2015 14:15:11 +0100 Subject: [PATCH 0013/3047] Add `postcss-map` to the list of plugins --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6e1999ed9..3b6a993d0 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,7 @@ a specialized language for a specialized tool (as with preprocessors). like Sass’s `@extend`. * [postcss-simple-vars] supports for Sass-style variables. * [csstyle] adds components workflow to your styles. +* [postcss-map] enables configuation maps. ### Optimizations @@ -333,6 +334,7 @@ a specialized language for a specialized tool (as with preprocessors). [RTLCSS]: https://github.com/MohammadYounes/rtlcss [pixrem]: https://github.com/robwierzbowski/node-pixrem [doiuse]: https://github.com/anandthakker/doiuse +[postcss-map]: https://github.com/pascalduez/postcss-map ## Usage From 41bf5330ab44ce7ce991f5b57b50166e53c7761d Mon Sep 17 00:00:00 2001 From: Pascal Duez Date: Mon, 9 Mar 2015 22:02:46 +0100 Subject: [PATCH 0014/3047] Add `postcss-quantity-queries` to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3b6a993d0..41c243556 100644 --- a/README.md +++ b/README.md @@ -246,6 +246,7 @@ a specialized language for a specialized tool (as with preprocessors). * [postcss-simple-vars] supports for Sass-style variables. * [csstyle] adds components workflow to your styles. * [postcss-map] enables configuation maps. +* [postcss-quantity-queries] enables quantity queries. ### Optimizations @@ -335,6 +336,7 @@ a specialized language for a specialized tool (as with preprocessors). [pixrem]: https://github.com/robwierzbowski/node-pixrem [doiuse]: https://github.com/anandthakker/doiuse [postcss-map]: https://github.com/pascalduez/postcss-map +[postcss-quantity-queries]: https://github.com/pascalduez/postcss-quantity-queries ## Usage From 1d204fb54c8cb35efddcab1aa9ac2481cabdf33a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 10 Mar 2015 00:48:53 +0300 Subject: [PATCH 0015/3047] Use alphabetic order --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 41c243556..65d2accd3 100644 --- a/README.md +++ b/README.md @@ -240,13 +240,13 @@ a specialized language for a specialized tool (as with preprocessors). * [postcss-mixins] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. +* [postcss-map] enables configuation maps. * [postcss-nested] unwraps nested rules, as Sass does. +* [postcss-quantity-queries] enables quantity queries. * [postcss-simple-extend] supports extending of silent classes, like Sass’s `@extend`. * [postcss-simple-vars] supports for Sass-style variables. * [csstyle] adds components workflow to your styles. -* [postcss-map] enables configuation maps. -* [postcss-quantity-queries] enables quantity queries. ### Optimizations From 12d40a6827db692ec4746794c25aaf6d6fe738aa Mon Sep 17 00:00:00 2001 From: Kevin Locke Date: Wed, 11 Mar 2015 20:00:28 -0600 Subject: [PATCH 0016/3047] Fix exception if prev map is missing sourcesContent This commit fixes an issue where if sourcesContent from a previous source map is null an unhandled exception is thrown when map is invoked on it. Fix the issue by adding a null check. Signed-off-by: Kevin Locke --- lib/map-generator.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 9c699b9a2..4c81fdc1d 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -107,7 +107,9 @@ export default class MapGenerator { if ( this.mapOpts.sourcesContent === false ) { map = new mozilla.SourceMapConsumer(prev.text); - map.sourcesContent = map.sourcesContent.map( i => null ); + if ( map.sourcesContent ) { + map.sourcesContent = map.sourcesContent.map( i => null ); + } } else { map = prev.consumer(); } From 7a5187b1d9ca20d3f856444bbcd1fe0e42afc216 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 12 Mar 2015 13:30:28 +0300 Subject: [PATCH 0017/3047] Add CLI tool to docs --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 65d2accd3..4aefe76b4 100644 --- a/README.md +++ b/README.md @@ -185,13 +185,14 @@ a specialized language for a specialized tool (as with preprocessors). ## Quick Start 1. Implement PostCSS with your build tool of choice. See the PostCSS [Grunt], - [Gulp], and [webpack] plugins more detailed instructions. + [Gulp], and [webpack] plugins or [CLI tool] more detailed instructions. 2. Select plugins from the list below and add them to your PostCSS process. 3. Make awesome products. -[webpack]: https://github.com/postcss/postcss-loader -[Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/w0rm/gulp-postcss +[CLI tool]: https://github.com/code42day/postcss-cli +[webpack]: https://github.com/postcss/postcss-loader +[Grunt]: https://github.com/nDmitry/grunt-postcss +[Gulp]: https://github.com/w0rm/gulp-postcss ## Plugins Packs From 6ce686ff674fcbb75c0af730482d3555b9da3a1c Mon Sep 17 00:00:00 2001 From: Masaaki Morishita Date: Sat, 14 Mar 2015 23:29:37 +0900 Subject: [PATCH 0018/3047] Renamed ACSS to AtCSS --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4aefe76b4..9458d8334 100644 --- a/README.md +++ b/README.md @@ -197,11 +197,11 @@ a specialized language for a specialized tool (as with preprocessors). ## Plugins Packs * [cssnext] contains plugins that allow you to use future CSS features today. -* [ACSS] contains plugins that transform your CSS according +* [AtCSS] contains plugins that transform your CSS according to special annotation comments. [cssnext]: https://github.com/putaindecode/cssnext -[ACSS]: https://github.com/morishitter/acss +[AtCSS]: https://github.com/morishitter/atcss ## Plugins From 865d1d34343f1ab12d18fbec136b3403a66ce86b Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 14 Mar 2015 17:55:20 +0000 Subject: [PATCH 0019/3047] Add postcss-normalize-url. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4aefe76b4..eac3e991c 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,8 @@ a specialized language for a specialized tool (as with preprocessors). * [postcss-data-packer] moves embedded Base64 data out of the stylesheet and into a separate file. * [postcss-import] inlines the stylesheets referred to by `@import` rules. +* [postcss-normalize-url] normalizes `url()`s and trims quotes where they are + unnecessary. * [postcss-url] rebases or inlines `url()`s. * [csswring] is a CSS minifier. * [css-byebye] removes the CSS rules that you don’t want. @@ -338,6 +340,7 @@ a specialized language for a specialized tool (as with preprocessors). [doiuse]: https://github.com/anandthakker/doiuse [postcss-map]: https://github.com/pascalduez/postcss-map [postcss-quantity-queries]: https://github.com/pascalduez/postcss-quantity-queries +[postcss-normalize-url]: https://github.com/ben-eb/postcss-normalize-url ## Usage From 19b1eaae14a2a4d76a931fedb29a14bf540ec808 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 13:38:19 +0300 Subject: [PATCH 0020/3047] Rename PostCSS class to Processor --- API.md | 66 +++++++++++-------- lib/postcss.js | 54 +--------------- lib/processor.js | 53 +++++++++++++++ test/postcss.js | 160 ++-------------------------------------------- test/processor.js | 157 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 255 insertions(+), 235 deletions(-) create mode 100644 lib/processor.js create mode 100644 test/processor.js diff --git a/API.md b/API.md index 6de7ed2b1..26c31fe9f 100644 --- a/API.md +++ b/API.md @@ -1,7 +1,7 @@ # PostCSS API * [postcss function](#postcss-function) -* [PostCSS class](#postcss-class) +* [Processor class](#processor-class) * [Result class](#result-class) * [Vendor module](#vendor-module) * [List module](#list-module) @@ -24,16 +24,16 @@ var postcss = require('postcss'); ### `postcss(plugins)` -Returns a new `PostCSS` instance that will apply `plugins` +Returns a new [`Processor` instance] that will apply `plugins` as CSS processors. ```js postcss([autoprefixer, cssnext, cssgrace]).process(css).css; ``` -You can also set plugins with the [`PostCSS#use`] method. +You can also set plugins with the [`Processor#use`] method. -See [`PostCSS#use`] below for details about plugin formats. +See [`Processor#use`] below for details about plugin formats. ### `postcss.parse(css, opts)` @@ -96,10 +96,10 @@ Creates a new [`Comment` node]. postcss.comment({ text: 'test' }).toString() //=> "/* test */" ``` -## `PostCSS` class +## `Processor` class -A `PostCSS` instance contains plugins to process CSS. You can create -one `PostCSS` instance, initialize its plugins, and then use that instance +A `Processor` instance contains plugins to process CSS. You can create +one `Processor` instance, initialize its plugins, and then use that instance on many CSS files. ```js @@ -108,7 +108,7 @@ processor.process(css1).css; processor.process(css2).css; ``` -### `p.use(plugin)` +### `processor.use(plugin)` Adds a plugin to be used as a CSS processor. @@ -126,7 +126,7 @@ Plugins can come in three formats: as the first argument. 2. An object with a `postcss` method. PostCSS will use that method as described in #1. -3. Another `PostCSS` instance. PostCSS will copy plugins +3. Another `Processor` instance. PostCSS will copy plugins from that instance to this one. Plugin functions should mutate the passed `Root` node and return nothing, @@ -141,7 +141,7 @@ processor.use(function (css) { }); ``` -### `p.process(css, opts)` +### `processor.process(css, opts)` This is the main method of PostCSS. It will parse the source CSS and create a [`Root` node]; send this `Root` to each plugin successively, @@ -169,12 +169,21 @@ Options: to fix CSS syntax errors. * `map`: an object of [source map options]. +### `plugins` + +Contains plugins added to this processor. + +```js +var processor = postcss([a, b]); +processor.plugins.length //=> 2 +``` + ## `Result` class Provides result of PostCSS transformations. A `Result` instance is returned -by [`PostCSS#process(css, opts)`] and [`Root#toResult(opts)`]. +by [`Processor#process(css, opts)`] and [`Root#toResult(opts)`]. ```js var result1 = postcss().process(css); @@ -191,7 +200,7 @@ root.toResult().root == root; ### `result.opts` -Options from the [`PostCSS#process(css, opts)`] or +Options from the [`Processor#process(css, opts)`] or [`Root#toResult(opts)`] call that produced this `Result` instance. @@ -306,8 +315,7 @@ var input = root.source.input; ### `input.file` -The absolute path to the CSS source file defined with -the [`from` option](#pprocesscss-opts). +The absolute path to the CSS source file defined with the [`from` option]. ```js var root = postcss.parse(css, { from: 'a.css' }); @@ -328,7 +336,7 @@ root.source.input.id //=> ### `input.from` The CSS source identifier. Contains [`input.file`](#inputfile) if the user set the -[`from` option](#pprocesscss-opts), or [`input.id`](#inputid) if she did not. +[`from` option], or [`input.id`](#inputid) if she did not. ```js var root = postcss.parse(css, { from: 'a.css' }); @@ -1285,16 +1293,18 @@ This is a code style property. [source map options]: https://github.com/postcss/postcss#source-map [Safe Mode]: https://github.com/postcss/postcss#safe-mode -[`PostCSS#process(css, opts)`]: #pprocesscss-opts -[`Root#toResult(opts)`]: #roottoresult-opts -[`postcss(plugins)`]: #postcssplugins -[`Declaration` node]: #declaration-node -[`Comment` node]: #comment-node -[`PostCSS#use`]: #puseplugin -[`AtRule` node]: #atrule-node -[`result.map`]: #resultmap -[`result.css`]: #resultcss -[`Root` node]: #root-node -[`Rule` node]: #rule-node -[`Input`]: #inputclass -[`Result`]: #result-class +[`Processor#process(css, opts)`]: #processorprocesscss-opts +[`Root#toResult(opts)`]: #roottoresult-opts +[`Processor` instance]: #processor-class +[`postcss(plugins)`]: #postcssplugins +[`Declaration` node]: #declaration-node +[`Comment` node]: #comment-node +[`Processor#use`]: #processoruseplugin +[`AtRule` node]: #atrule-node +[`from` option]: #processorprocesscss-opts +[`result.map`]: #resultmap +[`result.css`]: #resultcss +[`Root` node]: #root-node +[`Rule` node]: #rule-node +[`Input`]: #inputclass +[`Result`]: #result-class diff --git a/lib/postcss.js b/lib/postcss.js index e189e374c..702061ae6 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -1,61 +1,11 @@ import Declaration from './declaration'; +import Processor from './processor'; import Comment from './comment'; import AtRule from './at-rule'; -import Result from './result'; import parse from './parse'; import Rule from './rule'; import Root from './root'; -// List of functions to process CSS -class PostCSS { - constructor(plugins = []) { - this.plugins = plugins.map( i => this.normalize(i) ); - } - - // Add function as PostCSS plugins - use(plugin) { - plugin = this.normalize(plugin); - if ( typeof(plugin) == 'object' && Array.isArray(plugin.plugins) ) { - this.plugins = this.plugins.concat(plugin.plugins); - } else { - this.plugins.push(plugin); - } - return this; - } - - // Process CSS throw installed plugins - process(css, opts = { }) { - var parsed; - if ( css instanceof Root ) { - parsed = css; - } else if ( css instanceof Result ) { - parsed = css.root; - if ( css.map && typeof(opts.map) == 'undefined' ) { - opts.map = { prev: css.map }; - } - } else { - parsed = postcss.parse(css, opts); - } - - for ( var plugin of this.plugins ) { - var returned = plugin(parsed, opts); - if ( returned instanceof Root ) parsed = returned; - } - - return parsed.toResult(opts); - } - - // Return plugin function - normalize(plugin) { - var type = typeof(plugin); - if ( (type == 'object' || type == 'function') && plugin.postcss ) { - return plugin.postcss; - } else { - return plugin; - } - } -} - // Framework for CSS postprocessors // // var processor = postcss(function (css) { @@ -66,7 +16,7 @@ var postcss = function (...plugins) { if ( plugins.length == 1 && Array.isArray(plugins[0]) ) { plugins = plugins[0]; } - return new PostCSS(plugins); + return new Processor(plugins); }; // Compile CSS to nodes diff --git a/lib/processor.js b/lib/processor.js new file mode 100644 index 000000000..be6230818 --- /dev/null +++ b/lib/processor.js @@ -0,0 +1,53 @@ +import Result from './result'; +import parse from './parse'; +import Root from './root'; + +export default class Processor { + constructor(plugins = []) { + this.plugins = plugins.map( i => this.normalize(i) ); + } + + // Add function as PostCSS plugins + use(plugin) { + plugin = this.normalize(plugin); + if ( typeof(plugin) == 'object' && Array.isArray(plugin.plugins) ) { + this.plugins = this.plugins.concat(plugin.plugins); + } else { + this.plugins.push(plugin); + } + return this; + } + + // Process CSS throw installed plugins + process(css, opts = { }) { + var parsed; + if ( css instanceof Root ) { + parsed = css; + } else if ( css instanceof Result ) { + parsed = css.root; + if ( css.map && typeof(opts.map) == 'undefined' ) { + opts.map = { prev: css.map }; + } + } else { + parsed = parse(css, opts); + } + + for ( var plugin of this.plugins ) { + var returned = plugin(parsed, opts); + if ( returned instanceof Root ) parsed = returned; + } + + return parsed.toResult(opts); + } + + // Return plugin function + normalize(plugin) { + var type = typeof(plugin); + if ( (type == 'object' || type == 'function') && plugin.postcss ) { + return plugin.postcss; + } else { + return plugin; + } + } + +} diff --git a/test/postcss.js b/test/postcss.js index 3b1fc1bb4..c0b9d549f 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -1,15 +1,14 @@ -import CssSyntaxError from '../lib/css-syntax-error'; -import postcss from '../lib/postcss'; -import Result from '../lib/result'; -import Root from '../lib/root'; +import Processor from '../lib/processor'; +import postcss from '../lib/postcss'; import { expect } from 'chai'; -import path from 'path'; describe('postcss()', () => { it('creates plugins list', () => { - expect(postcss().plugins).to.eql([]); + var processor = postcss(); + expect(processor).to.be.instanceOf(Processor); + expect(processor.plugins).to.eql([]); }); it('saves plugins list', () => { @@ -24,155 +23,6 @@ describe('postcss()', () => { expect(postcss([a, b]).plugins).to.eql([a, b]); }); - it('saves plugins object list', () => { - var a = () => 1; - expect(postcss({ postcss: a }).plugins).to.eql([a]); - }); - - describe('use()', () => { - - it('adds new plugins', () => { - var a = () => 1; - var processor = postcss(); - processor.use(a); - expect(processor.plugins).to.eql([a]); - }); - - it('adds new plugin by object', () => { - var a = () => 1; - var processor = postcss(); - processor.use({ postcss: a }); - expect(processor.plugins).to.eql([a]); - }); - - it('adds new plugin by object-function', () => { - var a = () => 1; - var obj = () => 2; - obj.postcss = a; - var processor = postcss(); - processor.use(obj); - expect(processor.plugins).to.eql([a]); - }); - - it('adds new processors of another postcss instance', () => { - var a = () => 1; - var processor = postcss(); - var other = postcss(a); - processor.use(other); - expect(processor.plugins).to.eql([a]); - }); - - it('returns itself', () => { - var a = () => 1; - var b = () => 2; - expect(postcss().use(a).use(b).plugins).to.eql([a, b]); - }); - - }); - - describe('process()', () => { - var processor = postcss( (css) => { - css.eachRule( (rule) => { - if ( !rule.selector.match(/::(before|after)/) ) return; - if ( !rule.some( i => i.prop == 'content' ) ) { - rule.prepend({ prop: 'content', value: '""' }); - } - }); - }); - - it('processes CSS', () => { - var result = processor.process('a::before{top:0}'); - expect(result.css).to.eql('a::before{content:"";top:0}'); - }); - - it('processes parsed AST', () => { - var root = postcss.parse('a::before{top:0}'); - var result = processor.process(root); - expect(result.css).to.eql('a::before{content:"";top:0}'); - }); - - it('processes previous result', () => { - var result = postcss().process('a::before{top:0}'); - result = processor.process(result); - expect(result.css).to.eql('a::before{content:"";top:0}'); - }); - - it('takes maps from previous result', () => { - var one = postcss().process('a{}', { - from: 'a.css', - to: 'b.css', - map: { inline: false } - }); - var two = postcss().process(one, { - to: 'c.css', - map: { inline: false } - }); - expect(two.map.toJSON().sources).to.eql(['a.css']); - }); - - it('throws with file name', () => { - var error; - try { - postcss().process('a {', { from: 'a.css' }); - } catch (e) { - if ( e instanceof CssSyntaxError ) { - error = e; - } else { - throw e; - } - } - - expect(error.file).to.eql(path.resolve('a.css')); - expect(error.message).to.match(/a.css:1:1: Unclosed block$/); - }); - - it('allows to replace Root', () => { - var processor = postcss( () => new Root() ); - expect(processor.process('a {}').css).to.eql(''); - }); - - it('returns Result object', () => { - var result = postcss().process('a{}'); - expect(result).to.be.an.instanceOf(Result); - expect(result.css).to.eql( 'a{}'); - expect(result.toString()).to.eql('a{}'); - }); - - it('calls all plugins', () => { - var calls = ''; - var a = () => calls += 'a'; - var b = () => calls += 'b'; - - postcss(a, b).process(''); - expect(calls).to.eql('ab'); - }); - - it('parses, convert and stringify CSS', () => { - var a = (css) => expect(css).to.be.an.instanceof(Root); - expect(postcss(a).process('a {}').css).to.be.a('string'); - }); - - it('send options to plugins', () => { - var a = (css, opts) => expect(opts).to.eql({ from: 'a.css' }); - postcss(a).process('a {}', { from: 'a.css' }); - }); - - it('accepts source map from PostCSS', () => { - var one = postcss().process('a{}', { - from: 'a.css', - to: 'b.css', - map: { inline: false } - }); - var two = postcss().process(one.css, { - from: 'b.css', - to: 'c.css', - map: { prev: one.map, inline: false } - }); - expect(two.map.toJSON().sources).to.eql(['a.css']); - }); - - }); - describe('.root()', () => { it('allows to build own CSS', () => { diff --git a/test/processor.js b/test/processor.js new file mode 100644 index 000000000..4b1d9cce1 --- /dev/null +++ b/test/processor.js @@ -0,0 +1,157 @@ +import CssSyntaxError from '../lib/css-syntax-error'; +import Processor from '../lib/processor'; +import Result from '../lib/result'; +import parse from '../lib/parse'; +import Root from '../lib/root'; + +import { expect } from 'chai'; +import path from 'path'; + +describe('Processor', () => { + + describe('use()', () => { + + it('adds new plugins', () => { + var a = () => 1; + var processor = new Processor(); + processor.use(a); + expect(processor.plugins).to.eql([a]); + }); + + it('adds new plugin by object', () => { + var a = () => 1; + var processor = new Processor(); + processor.use({ postcss: a }); + expect(processor.plugins).to.eql([a]); + }); + + it('adds new plugin by object-function', () => { + var a = () => 1; + var obj = () => 2; + obj.postcss = a; + var processor = new Processor(); + processor.use(obj); + expect(processor.plugins).to.eql([a]); + }); + + it('adds new processors of another postcss instance', () => { + var a = () => 1; + var processor = new Processor(); + var other = new Processor([a]); + processor.use(other); + expect(processor.plugins).to.eql([a]); + }); + + it('returns itself', () => { + var a = () => 1; + var b = () => 2; + var processor = new Processor(); + expect(processor.use(a).use(b).plugins).to.eql([a, b]); + }); + + }); + + describe('process()', () => { + var processor = new Processor([ (css) => { + css.eachRule( (rule) => { + if ( !rule.selector.match(/::(before|after)/) ) return; + if ( !rule.some( i => i.prop == 'content' ) ) { + rule.prepend({ prop: 'content', value: '""' }); + } + }); + }]); + + it('processes CSS', () => { + var result = processor.process('a::before{top:0}'); + expect(result.css).to.eql('a::before{content:"";top:0}'); + }); + + it('processes parsed AST', () => { + var root = parse('a::before{top:0}'); + var result = processor.process(root); + expect(result.css).to.eql('a::before{content:"";top:0}'); + }); + + it('processes previous result', () => { + var result = (new Processor()).process('a::before{top:0}'); + result = processor.process(result); + expect(result.css).to.eql('a::before{content:"";top:0}'); + }); + + it('takes maps from previous result', () => { + var one = (new Processor()).process('a{}', { + from: 'a.css', + to: 'b.css', + map: { inline: false } + }); + var two = (new Processor()).process(one, { + to: 'c.css', + map: { inline: false } + }); + expect(two.map.toJSON().sources).to.eql(['a.css']); + }); + + it('throws with file name', () => { + var error; + try { + (new Processor()).process('a {', { from: 'a.css' }); + } catch (e) { + if ( e instanceof CssSyntaxError ) { + error = e; + } else { + throw e; + } + } + + expect(error.file).to.eql(path.resolve('a.css')); + expect(error.message).to.match(/a.css:1:1: Unclosed block$/); + }); + + it('allows to replace Root', () => { + var processor = new Processor([ () => new Root() ]); + expect(processor.process('a {}').css).to.eql(''); + }); + + it('returns Result object', () => { + var result = (new Processor()).process('a{}'); + expect(result).to.be.an.instanceOf(Result); + expect(result.css).to.eql( 'a{}'); + expect(result.toString()).to.eql('a{}'); + }); + + it('calls all plugins', () => { + var calls = ''; + var a = () => calls += 'a'; + var b = () => calls += 'b'; + + (new Processor([a, b])).process(''); + expect(calls).to.eql('ab'); + }); + + it('parses, convert and stringify CSS', () => { + var a = (css) => expect(css).to.be.an.instanceof(Root); + expect((new Processor([a])).process('a {}').css).to.be.a('string'); + }); + + it('send options to plugins', () => { + var a = (css, opts) => expect(opts).to.eql({ from: 'a.css' }); + (new Processor([a])).process('a {}', { from: 'a.css' }); + }); + + it('accepts source map from PostCSS', () => { + var one = (new Processor()).process('a{}', { + from: 'a.css', + to: 'b.css', + map: { inline: false } + }); + var two = (new Processor()).process(one.css, { + from: 'b.css', + to: 'c.css', + map: { prev: one.map, inline: false } + }); + expect(two.map.toJSON().sources).to.eql(['a.css']); + }); + + }); + +}); From 22239d06878a32aaadb670e99eeb735e4adb84de Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 13:48:15 +0300 Subject: [PATCH 0021/3047] Make postcss.list and postcss.vendor aliases --- API.md | 29 ++++++++++++++++++++++------- lib/postcss.js | 8 ++++++++ test/postcss.js | 24 ++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 7 deletions(-) diff --git a/API.md b/API.md index 26c31fe9f..6cc95f03e 100644 --- a/API.md +++ b/API.md @@ -96,6 +96,22 @@ Creates a new [`Comment` node]. postcss.comment({ text: 'test' }).toString() //=> "/* test */" ``` +### `postcss.vendor` + +Contains [Vendor module](#vendor-module) module. + +```js +postcss.vendor.unprefixed('-moz-tab') //=> ['tab'] +``` + +### `postcss.list` + +Contains [List module](#list-module) module. + +```js +postcss.list.space('5px calc(10% + 5px)') //=> ['5px', 'calc(10% + 5px)'] +``` + ## `Processor` class A `Processor` instance contains plugins to process CSS. You can create @@ -256,7 +272,7 @@ if ( result.map ) { Contains helpers for working with vendor prefixes. ```js -var vendor = require('postcss/lib/vendor'); +var vendor = postcss.vendor; ``` ### `vendor.prefix(string)` @@ -264,7 +280,7 @@ var vendor = require('postcss/lib/vendor'); Returns the vendor prefix extracted from an input string. ```js -vendor.prefix('-moz-tab-size') //=> '-moz-' +postcss.vendor.prefix('-moz-tab-size') //=> '-moz-' ``` ### `vendor.unprefixed(string)` @@ -272,7 +288,7 @@ vendor.prefix('-moz-tab-size') //=> '-moz-' Returns the input string stripped of its vendor prefix. ```js -vendor.unprefixed('-moz-tab-size') //=> 'tab-size' +postcss.vendor.unprefixed('-moz-tab-size') //=> 'tab-size' ``` ## List module @@ -281,7 +297,7 @@ Contains helpers for safely splitting lists of CSS values, preserving parenthese and quotes. ```js -var list = require('postcss/lib/list'); +var list = postcss.list; ``` ### `list.space(string)` @@ -290,8 +306,7 @@ Safely splits space-separated values (such as those for `background`, `border-radius`, and other shorthand properties). ```js -list.space('1px calc(10% + 1px)') -//=> ['1px', 'calc(10% + 1px)'] +postcss.list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)'] ``` ### `list.comma(string)` @@ -300,7 +315,7 @@ Safely splits comma-separated values (such as those for `transition-*` and `background` properties). ```js -list.comma('black, linear-gradient(white, black)') +postcss.list.comma('black, linear-gradient(white, black)') //=> ['black', 'linear-gradient(white, black)'] ``` diff --git a/lib/postcss.js b/lib/postcss.js index 702061ae6..ddfa9dbbe 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -2,7 +2,9 @@ import Declaration from './declaration'; import Processor from './processor'; import Comment from './comment'; import AtRule from './at-rule'; +import vendor from './vendor'; import parse from './parse'; +import list from './list'; import Rule from './rule'; import Root from './root'; @@ -19,9 +21,15 @@ var postcss = function (...plugins) { return new Processor(plugins); }; +// Split vendor prefix +postcss.vendor = vendor; + // Compile CSS to nodes postcss.parse = parse; +// Parse lists by spaces or comma +postcss.list = list; + // Nodes shortcuts postcss.comment = function (defaults) { return new Comment(defaults); diff --git a/test/postcss.js b/test/postcss.js index c0b9d549f..222bf0295 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -36,4 +36,28 @@ describe('postcss()', () => { }); + describe('.vendor', () => { + + it('contains vendor module', () => { + expect(postcss.vendor.prefix('-moz-tab')).to.eql('-moz-'); + }); + + }); + + describe('.parse', () => { + + it('contains parser', () => { + expect(postcss.parse('').type).to.eql('root'); + }); + + }); + + describe('.list', () => { + + it('contains list module', () => { + expect(postcss.list.space('a b')).to.eql(['a', 'b']); + }); + + }); + }); From 1826fc1d26de54a519b51215a692f745c2da9a7c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 14:01:24 +0300 Subject: [PATCH 0022/3047] Insert node by CSS string --- API.md | 8 ++++++++ lib/container.js | 5 ++++- test/container.js | 13 +++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/API.md b/API.md index 6cc95f03e..4a55c2565 100644 --- a/API.md +++ b/API.md @@ -850,6 +850,13 @@ root.append({ selector: 'a' }); // rule rule.append({ prop: 'color', value: 'black' }); // declaration rule.append({ text: 'Comment' }) // comment ``` +Also you can use string with CSS of new element. But it will be a little bit +slower, that shorcuts above. + +```js +root.append('a {}'); +root.first.append('color: black; z-index: 1'); +``` ### `container.insertBefore(oldNode, newNew)` and `container.insertAfter(oldNode, newNew)` @@ -865,6 +872,7 @@ You can also use the same shorcuts available to `container.append()`. ```js rule.insertBefore(decl, { prop: 'color', value: 'black' }); +root.insertBefore(decl, 'color: black'); ``` ### `container.remove(node)` diff --git a/lib/container.js b/lib/container.js index 6d21d4c56..091c1faa0 100644 --- a/lib/container.js +++ b/lib/container.js @@ -405,7 +405,10 @@ export default class Container extends Node { // Normalize child before insert. Copy before from `sample`. normalize(nodes, sample) { - if ( !Array.isArray(nodes) ) { + if ( typeof(nodes) == 'string' ) { + import parse from './parse'; + nodes = parse(nodes).nodes; + } else if ( !Array.isArray(nodes) ) { if ( nodes.type == 'root' ) { nodes = nodes.nodes; } else if ( nodes.type ) { diff --git a/test/container.js b/test/container.js index 1c7eebd82..d1a18755d 100644 --- a/test/container.js +++ b/test/container.js @@ -423,6 +423,13 @@ describe('Container', () => { expect(css.toString()).to.eql('a {}\nb {}'); }); + it('reveives string', () => { + var root = new Root(); + root.append('a{}b{}'); + root.first.append('color:black'); + expect(root.toString()).to.eql('a {\n color: black\n}\nb {}'); + }); + it('receives array', () => { var a = parse('a{ z-index: 1 }'); var b = parse('b{width:1px;height:2px}'); @@ -467,6 +474,12 @@ describe('Container', () => { expect(css.toString()).to.eql('b {}\na {}'); }); + it('receives root', () => { + var css = parse('a {}'); + css.prepend('b {}'); + expect(css.toString()).to.eql('b {}\na {}'); + }); + it('receives array', () => { var a = parse('a{ z-index: 1 }'); var b = parse('b{width:1px;height:2px}'); From 88d968742b6d5fc03a93bfeb417ec7ff5c5d91f8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 16:47:21 +0300 Subject: [PATCH 0023/3047] Add arguments for first classes --- API.md | 94 +++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 34 deletions(-) diff --git a/API.md b/API.md index 4a55c2565..b3a46f1a4 100644 --- a/API.md +++ b/API.md @@ -24,13 +24,17 @@ var postcss = require('postcss'); ### `postcss(plugins)` -Returns a new [`Processor` instance] that will apply `plugins` +Returns a new [`Processor`] instance that will apply `plugins` as CSS processors. ```js postcss([autoprefixer, cssnext, cssgrace]).process(css).css; ``` +Arguments: + +* `plugins (array)`: PostCSS plugins list to set them to new processor. + You can also set plugins with the [`Processor#use`] method. See [`Processor#use`] below for details about plugin formats. @@ -47,14 +51,17 @@ var root2 = postcss.parse(css2, { from: file2 }); root1.append(root2).toResult().css; ``` -Options: +Arguments: -* `from`: the path to the source CSS file. You should always set `from`, - because it is used in map generation and in syntax error messages. -* `safe`: enable [Safe Mode], in which PostCSS will try - to fix CSS syntax errors. -* `map`: an object of [source map options]. - Only `map.prev` is used in `parse`. +* `css (string|#toString)`: String with input CSS or any object + with `toString()` method, like file stream. +* `opts (object) optional`: options: + * `from`: the path to the source CSS file. You should always set `from`, + because it is used in map generation and in syntax error messages. + * `safe`: enable [Safe Mode], in which PostCSS will try + to fix CSS syntax errors. + * `map`: an object of [source map options]. + Only `map.prev` is used in `parse`. ### `postcss.root(props)` @@ -64,6 +71,10 @@ Creates a new [`Root` node]. postcss.root({ after: '\n' }).toString() //=> "\n" ``` +Arguments: + +* `props (object) optional`: properties for new node. + ### `postcss.atRule(props)` Creates a new [`AtRule` node]. @@ -72,6 +83,10 @@ Creates a new [`AtRule` node]. postcss.atRule({ name: 'charset' }).toString() //=> "@charset" ``` +Arguments: + +* `props (object) optional`: properties for new node. + ### `postcss.rule(props)` Creates a new [`Rule` node]. @@ -80,6 +95,10 @@ Creates a new [`Rule` node]. postcss.rule({ selector: 'a' }).toString() //=> "a {\n}" ``` +Arguments: + +* `props (object) optional`: properties for new node. + ### `postcss.decl(props)` Creates a new [`Declaration` node]. @@ -88,6 +107,10 @@ Creates a new [`Declaration` node]. postcss.decl({ prop: 'color', value: 'black' }).toString() //=> "color: black" ``` +Arguments: + +* `props (object) optional`: properties for new node. + ### `postcss.comment(props)` Creates a new [`Comment` node]. @@ -96,6 +119,10 @@ Creates a new [`Comment` node]. postcss.comment({ text: 'test' }).toString() //=> "/* test */" ``` +Arguments: + +* `props (object) optional`: properties for new node. + ### `postcss.vendor` Contains [Vendor module](#vendor-module) module. @@ -133,17 +160,19 @@ var processor = postcss(); processor.use(autoprefixer).use(cssnext).use(cssgrace); ``` -Plugins can also be added by passing them as arguments when creating -a `postcss` instance (cf. [`postcss(plugins)`]). +Arguments: -Plugins can come in three formats: +* `plugin (function|#postcss|Processor)`: PostCSS plugin. I can be in three + formats: + 1. A function. PostCSS will pass the function a [`Root` node] + as the first argument. + 2. An object with a `postcss` method. PostCSS will use that method + as described in #1. + 3. Another `Processor` instance. PostCSS will copy plugins + from that instance to this one. -1. A function. PostCSS will pass the function a [`Root` node] - as the first argument. -2. An object with a `postcss` method. PostCSS will use that method - as described in #1. -3. Another `Processor` instance. PostCSS will copy plugins - from that instance to this one. +Plugins can also be added by passing them as arguments when creating +a `postcss` instance (cf. [`postcss(plugins)`]). Plugin functions should mutate the passed `Root` node and return nothing, or return a new `Root` node. @@ -168,22 +197,19 @@ from the transformed `Root`. var result = processor.process(css, { from: 'a.css', to: 'a.out.css' }); ``` -Input CSS formats are: - -* A string of CSS. -* A `Result` instance from another PostCSS processor. PostCSS will accept - the already parsed `Root` from it. -* Any object with a `toString()` method — for example, a file stream. +Arguments: -Options: - -* `from`: the path of the CSS source file. You should always set `from`, - because it is used in source map generation and syntax error messages. -* `to`: the path where you’ll put the output CSS file. You should always set - `to` to generate correct source maps. -* `safe`: enable [Safe Mode], in which PostCSS will try - to fix CSS syntax errors. -* `map`: an object of [source map options]. +* `css (string|#toString|Result)`: String with input CSS or any object + with `toString()` method, like file stream. Also you can send [`Result`] + instance and processor will take already parser [`Root`] from it. +* `ops (object) optional`: options: + * `from`: the path of the CSS source file. You should always set `from`, + because it is used in source map generation and syntax error messages. + * `to`: the path where you’ll put the output CSS file. You should always set + `to` to generate correct source maps. + * `safe`: enable [Safe Mode], in which PostCSS will try + to fix CSS syntax errors. + * `map`: an object of [source map options]. ### `plugins` @@ -1318,7 +1344,6 @@ This is a code style property. [`Processor#process(css, opts)`]: #processorprocesscss-opts [`Root#toResult(opts)`]: #roottoresult-opts -[`Processor` instance]: #processor-class [`postcss(plugins)`]: #postcssplugins [`Declaration` node]: #declaration-node [`Comment` node]: #comment-node @@ -1329,5 +1354,6 @@ This is a code style property. [`result.css`]: #resultcss [`Root` node]: #root-node [`Rule` node]: #rule-node -[`Input`]: #inputclass +[`Processor`]: #processor-class [`Result`]: #result-class +[`Input`]: #inputclass From 876ebfb2efba858128faf26416da931536386eb8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 17:08:00 +0300 Subject: [PATCH 0024/3047] Add arguments to other methods --- API.md | 156 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 110 insertions(+), 46 deletions(-) diff --git a/API.md b/API.md index b3a46f1a4..008deb571 100644 --- a/API.md +++ b/API.md @@ -36,8 +36,7 @@ Arguments: * `plugins (array)`: PostCSS plugins list to set them to new processor. You can also set plugins with the [`Processor#use`] method. - -See [`Processor#use`] below for details about plugin formats. +See its description below for details about plugin formats. ### `postcss.parse(css, opts)` @@ -507,6 +506,10 @@ if ( oldSyntax.check(decl) ) { } ``` +Arguments: + +* `message (string)`: error description. + ### `node.next()` and `node.prev()` Returns the next/previous child of the node’s parent; or returns `undefined` @@ -548,6 +551,10 @@ if ( atrule.name == 'mixin' ) { } ``` +Arguments: + +* `otherNode: (Node)`: other node to replace current one. + ### `node.clone(props)` Returns a clones of the node. @@ -563,6 +570,10 @@ cloned.parent //=> undefined cloned.toString() //=> -moz-transform: scale(0) ``` +Arguments: + +* `props (object) optional`: new properties to replace them in clone. + ### `node.cloneBefore(props)` and `node.cloneAfter(props)` Shortcuts to clone the node and insert the resultant clone node before/after @@ -572,6 +583,10 @@ the current node. decl.cloneBefore({ prop: '-moz-' + decl.prop }); ``` +Arguments: + +* `props (object) optional`: new properties to replace them in clone. + ### `node.moveTo(newParent)` Removes the node from its current parent and inserts it @@ -585,6 +600,10 @@ the `between` property if `newParent` is in another `Root`. atrule.moveTo(atrule.parent.parent); ``` +Arguments: + +* `newParent: (Container)`: container node where current node will be moved. + ### `node.moveBefore(otherNode)` and `node.moveAfter(otherNode)` Removes the node from its current parent and inserts it into a new parent @@ -593,6 +612,10 @@ before/after `otherNode`. This will also clean the node’s code style properties just as `node.moveTo(newParent)` does. +Arguments: + +* `otherNode (Node)`: node which will be after/before current node after moving. + ### `node.style(prop, defaultType)` Returns a code style property value. If the node is missing the code style @@ -605,6 +628,12 @@ root.nodes[0].append({ prop: 'color', value: 'black' }); root.nodes[0].nodes[1].style('before') //=> ' ' ``` +Arguments: + +* `prop (string)`: name or code style property. +* `defaultType (string)`: name of default value. You can miss it + if it is same with `prop`. + ## Containers: common methods The `Root`, `AtRule`, and `Rule` container nodes have some common methods @@ -648,6 +677,10 @@ Returns `child`’s index within the container’s `nodes` array. rule.index( rule.nodes[2] ) //=> 2 ``` +Arguments: + +* `child (Node)`: child of current container. + ### `container.every(callback)` Returns `true` if `callback` returns a truthy value for all @@ -659,6 +692,10 @@ var noPrefixes = rule.every(function (decl) { }); ``` +Arguments: + +* `callback (function)`: iterator, that returns true of false. + ### `container.some(callback)` Return `true` if `callback` returns a truthy value @@ -670,13 +707,15 @@ var hasPrefix = rule.some(function (decl) { }); ``` +Arguments: + +* `callback (function)`: iterator, that returns true of false. + ### `container.each(callback)` Iterates through the container’s immediate children, calling `callback` for each child. -`callback` receives 2 arguments: the node itself and an index. - Returning `false` within `callback` will break iteration. ```js @@ -689,6 +728,10 @@ rule.each(function (decl) { }); ``` +Arguments: + +* `callback (function)`: iterator, that will receive node itself and an index. + Unlike the `for {}`-cycle or `Array#forEach()` this iterator is safe if you are mutating the array of child nodes during iteration. PostCSS will adjust the current index to match the mutations. @@ -719,14 +762,16 @@ use `container.eachInside()`. Recursively iterates through the container’s children, those children’s children, etc., calling `callback` for each. -`callback` receives 2 arguments: the node itself and an index. - ```js root.eachInside(function (node) { // Will be iterate through all nodes }); ``` +Arguments: + +* `callback (function)`: iterator, that will receive node itself and an index. + Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. @@ -738,8 +783,6 @@ use `container.each()`. Recursively iterates through all declaration nodes within the container, calling `callback` for each. -`callback` receives 2 arguments: the node itself and an index. - ```js root.eachDecl(function (decl) { if ( decl.prop.match(/^-webkit-/) ) { @@ -748,8 +791,14 @@ root.eachDecl(function (decl) { }); ``` -If you pass a string or regular expression as `filter`, only those declarations whose -property matches`filter` will be iterated over. +Arguments: + +* `propFilter: (string|RegExp) optional`: string or regular expression + to filter declarations by property name. + * `callback (function)`: iterator, that will receive node itself and an index. + +If you pass a `propFilter`, only those declarations whose property matches +`propFilter` will be iterated over. ```js // Make flat design @@ -769,8 +818,6 @@ arrays during iteration. Recursively iterates through all at-rule nodes within the container, calling `callback` for each. -`callback` receives 2 arguments: the node itself and an index. - ```js root.eachAtRule(function (rule) { @@ -778,8 +825,14 @@ root.eachAtRule(function (rule) { }); ``` -If you pass a string or regular expression as `filter`, only those at-rules whose name -matches `filter` will be iterated over. +Arguments: + +* `nameFilter: (string|RegExp) optional`: string or regular expression to filter + at-rules by name. + * `callback (function)`: iterator, that will receive node itself and an index. + +If you pass a `filter`, only those at-rules whose name matches `filter` +will be iterated over. ```js var first = false; @@ -800,8 +853,6 @@ during iteration. Recursively iterates through all rule nodes within the container, calling `callback` for each. -`callback` receives 2 arguments: the node itself and an index. - ```js var selectors = []; root.eachRule(function (rule) { @@ -810,6 +861,10 @@ root.eachRule(function (rule) { console.log('You CSS uses ' + selectors.length + ' selectors'); ``` +Arguments: + +* `callback (function)`: iterator, that will receive node itself and an index. + Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. @@ -824,29 +879,18 @@ root.eachComment(function (comment) { }) ``` +Arguments: + +* `callback (function)`: iterator, that will receive node itself and an index. + Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. -### `container.replaceValues(regexp, opts, callback)` +### `container.replaceValues(pattern, opts, callback)` -Passes all declaration values within the container that match `regexp` through +Passes all declaration values within the container that match `pattern` through `callback`, replacing those values with the returned result of `callback`. -`callback` will receive the same arguments as those passed to a function -parameter of [`String#replace`]. - -You can speed up the search by passing `opts`: - -- `props`: An array of property names. The method will only search for values - that match `regexp` within declarations of listed properties. -- `fast`: A string that will be used to narrow down values and speed up - the regexp search. Searching every single value with a regexp can be slow; - so if you pass a `fast` string, PostCSS will first check whether the value - contains the `fast` string; and only if it does will PostCSS check that value - against `regexp`. For example, instead of just checking for `/\d+rem/` on - all values, you can set `fast: 'rem'` to first check whether a value has - the `rem` unit, and only if it does perform the regexp check. - This method is useful if you are using a custom unit or function, so need to iterate through all values. @@ -856,6 +900,23 @@ root.replaceValues(/\d+rem/, { fast: 'rem' }, function (string) { }); ``` +Arguments: + +* `pattern (string|RegExp)`: pattern, that we need to replace. +* `opts (object) optional`: options to speed up th search: + * `props`: An array of property names. The method will only search for values + that match `regexp` within declarations of listed properties. + * `fast`: A string that will be used to narrow down values and speed up + the regexp search. Searching every single value with a regexp can be slow; + so if you pass a `fast` string, PostCSS will first check whether the value + contains the `fast` string; and only if it does will PostCSS check that + value against `regexp`. For example, instead of just checking for `/\d+rem/` + on all values, you can set `fast: 'rem'` to first check whether a value has + the `rem` unit, and only if it does perform the regexp check. +* `callback (function|string)`: string to replace `pattern` or callback, that + will return new value. Callback will receive the same arguments as those + passed to a function parameter of [`String#replace`]. + [`String#replace`]: (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter) ### `container.prepend(node)` and `container.append(node)` @@ -867,6 +928,10 @@ var decl = postcss.decl({ prop: 'color', value: 'black' }); rule.append(decl); ``` +Arguments: + +* `node (Node|object|string)`: new node. + Because each node class is identifiable by unique properties, you can use the following shortcuts to create nodes to prepend/append: @@ -888,26 +953,20 @@ root.first.append('color: black; z-index: 1'); Insert `newNode` before/after `oldNode` within the container. -`oldNode` can be a node or a node’s index. - ```js rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })); ``` -You can also use the same shorcuts available to `container.append()`. +Arguments: -```js -rule.insertBefore(decl, { prop: 'color', value: 'black' }); -root.insertBefore(decl, 'color: black'); -``` +* `oldNode (Node|number)`: child or child’s index. +* `node (Node|object|string)`: new node. ### `container.remove(node)` Removes `node` from the container, and the `parent` properties of `node` and its children. -`node` can be a node or a node’s index. - ```js rule.nodes.length //=> 5 rule.remove(decl); @@ -915,6 +974,10 @@ rule.nodes.length //=> 4 decl.parent //=> undefined ``` +Arguments: + +* `node (Node|number)`: child or child’s index. + ### `container.removeAll()` Removes all children from the container, and cleans their `parent` properties. @@ -946,11 +1009,12 @@ root1.append(root2); var result = root1.toResult({ to: 'all.css', map: true }); ``` -Options: +Arguments: -* `to`: the path where you’ll put the output CSS file. You should always set - `to` to generate correct source maps. -* `map`: an object of [source map options]. +* `opts (object) optional`: options: + * `to`: the path where you’ll put the output CSS file. You should always set + `to` to generate correct source maps. + * `map`: an object of [source map options]. ### `root.after` From d4b14b0f39ddb0230ab5c52a1accc2cf2fb9b54f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 17:14:37 +0300 Subject: [PATCH 0025/3047] Clean up arguments in API.md --- API.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/API.md b/API.md index 008deb571..8d1a6e987 100644 --- a/API.md +++ b/API.md @@ -163,11 +163,11 @@ Arguments: * `plugin (function|#postcss|Processor)`: PostCSS plugin. I can be in three formats: - 1. A function. PostCSS will pass the function a [`Root` node] + * A function. PostCSS will pass the function a [`Root` node] as the first argument. - 2. An object with a `postcss` method. PostCSS will use that method + * An object with a `postcss` method. PostCSS will use that method as described in #1. - 3. Another `Processor` instance. PostCSS will copy plugins + * Another `Processor` instance. PostCSS will copy plugins from that instance to this one. Plugins can also be added by passing them as arguments when creating @@ -560,8 +560,7 @@ Arguments: Returns a clones of the node. The resultant clone node and its (clone) children will have clean `parent` -and code style properties. You can override properties in the clone node -by passing a `props` argument. +and code style properties. ```js var clonded = decl.clone({ prop: '-moz-' + decl.prop }); @@ -572,7 +571,7 @@ cloned.toString() //=> -moz-transform: scale(0) Arguments: -* `props (object) optional`: new properties to replace them in clone. +* `props (object) optional`: new properties to override them in clone. ### `node.cloneBefore(props)` and `node.cloneAfter(props)` @@ -585,7 +584,7 @@ decl.cloneBefore({ prop: '-moz-' + decl.prop }); Arguments: -* `props (object) optional`: new properties to replace them in clone. +* `props (object) optional`: new properties to override them in clone. ### `node.moveTo(newParent)` From 16982eeb61e982e3ced5d4c3195c65e4e6ab17b3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 17:20:52 +0300 Subject: [PATCH 0026/3047] Send processor instance to plugin --- lib/processor.js | 4 +++- test/processor.js | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/processor.js b/lib/processor.js index be6230818..27d3b49a5 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -2,6 +2,8 @@ import Result from './result'; import parse from './parse'; import Root from './root'; +import { version } from '../package'; + export default class Processor { constructor(plugins = []) { this.plugins = plugins.map( i => this.normalize(i) ); @@ -33,7 +35,7 @@ export default class Processor { } for ( var plugin of this.plugins ) { - var returned = plugin(parsed, opts); + var returned = plugin(parsed, this); if ( returned instanceof Root ) parsed = returned; } diff --git a/test/processor.js b/test/processor.js index 4b1d9cce1..3d24287bb 100644 --- a/test/processor.js +++ b/test/processor.js @@ -133,9 +133,10 @@ describe('Processor', () => { expect((new Processor([a])).process('a {}').css).to.be.a('string'); }); - it('send options to plugins', () => { - var a = (css, opts) => expect(opts).to.eql({ from: 'a.css' }); - (new Processor([a])).process('a {}', { from: 'a.css' }); + it('send itself to plugins', () => { + var processor = new Processor(); + var a = (css, arg) => expect(arg).to.eql(processor); + processor.use(a).process('a {}', { from: 'a.css' }); }); it('accepts source map from PostCSS', () => { From f020d35bd6b11506902c2c3644be625947a23053 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 17:22:53 +0300 Subject: [PATCH 0027/3047] Clean up tests --- test/processor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/processor.js b/test/processor.js index 3d24287bb..8302ac96e 100644 --- a/test/processor.js +++ b/test/processor.js @@ -136,7 +136,7 @@ describe('Processor', () => { it('send itself to plugins', () => { var processor = new Processor(); var a = (css, arg) => expect(arg).to.eql(processor); - processor.use(a).process('a {}', { from: 'a.css' }); + processor.use(a).process('a {}'); }); it('accepts source map from PostCSS', () => { From a43880fc5fc6f460fe0a45bc4b1db19210fa26da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 17:35:27 +0300 Subject: [PATCH 0028/3047] Add postcss.plugin method --- API.md | 28 +++++++++++++++++++++++++--- lib/postcss.js | 12 ++++++++++++ test/postcss.js | 37 +++++++++++++++++++++++++++++-------- 3 files changed, 66 insertions(+), 11 deletions(-) diff --git a/API.md b/API.md index 8d1a6e987..16640551e 100644 --- a/API.md +++ b/API.md @@ -38,6 +38,28 @@ Arguments: You can also set plugins with the [`Processor#use`] method. See its description below for details about plugin formats. +### `postcss.plugin(name, initializer)` + +Creates PostCSS plugin. + +```js +module.exports = postcss.plugin('postcss-remove', function (opts) { + var filter = opts.prop; + return function (css, processor) { + css.eachDecl(filter, function (decl) { + decl.removeSelf(); + }); + }; +}); +``` + +Arguments: + +* `name (string)`: PostCSS plugin name. Same as in `name` property + in `package.json`. It will be saved in `plugin.postcssPlugin` property. +* `initializer (function)`: will receive plugin options and should return + functions to modify nodes in input CSS. + ### `postcss.parse(css, opts)` Parses source `css` and returns a new `Root` node, which contains @@ -164,11 +186,11 @@ Arguments: * `plugin (function|#postcss|Processor)`: PostCSS plugin. I can be in three formats: * A function. PostCSS will pass the function a [`Root` node] - as the first argument. + as the first argument and current [`Processor`] instance as second. * An object with a `postcss` method. PostCSS will use that method - as described in #1. + as described in #1. * Another `Processor` instance. PostCSS will copy plugins - from that instance to this one. + from that instance to this one. Plugins can also be added by passing them as arguments when creating a `postcss` instance (cf. [`postcss(plugins)`]). diff --git a/lib/postcss.js b/lib/postcss.js index ddfa9dbbe..8ea653043 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -30,6 +30,18 @@ postcss.parse = parse; // Parse lists by spaces or comma postcss.list = list; +// Create PostCSS plugin +postcss.plugin = function (name, initializer) { + var result = function () { + return initializer.apply(this, arguments); + }; + result.postcssPlugin = name; + result.postcss = function (css, processor) { + return result().apply(this, arguments); + }; + return result; +}; + // Nodes shortcuts postcss.comment = function (defaults) { return new Comment(defaults); diff --git a/test/postcss.js b/test/postcss.js index 222bf0295..f0262e55e 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -23,6 +23,35 @@ describe('postcss()', () => { expect(postcss([a, b]).plugins).to.eql([a, b]); }); + describe('.plugin()', () => { + + it('creates plugin', () => { + var plugin = postcss.plugin('test', (filter) => { + return function (css, processor) { + css.eachDecl(filter || 'two', function (decl) { + decl.removeSelf(); + }); + }; + }); + + expect(plugin.postcssPlugin).to.eql('test'); + + var result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }'); + expect(result1.css).to.eql('a{ two: 2 }'); + var result2 = postcss(plugin).process('a{ one: 1; two: 2 }'); + expect(result2.css).to.eql('a{ one: 1 }'); + }); + + }); + + describe('.parse()', () => { + + it('contains parser', () => { + expect(postcss.parse('').type).to.eql('root'); + }); + + }); + describe('.root()', () => { it('allows to build own CSS', () => { @@ -44,14 +73,6 @@ describe('postcss()', () => { }); - describe('.parse', () => { - - it('contains parser', () => { - expect(postcss.parse('').type).to.eql('root'); - }); - - }); - describe('.list', () => { it('contains list module', () => { From a998b3bd6463fa66178e4fccf2420ad1039719ca Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 17:45:28 +0300 Subject: [PATCH 0029/3047] Add Processor#version --- API.md | 8 ++++++++ gulpfile.js | 2 +- lib/processor.js | 2 ++ test/processor.js | 8 ++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/API.md b/API.md index 16640551e..6682b6f29 100644 --- a/API.md +++ b/API.md @@ -232,6 +232,14 @@ Arguments: to fix CSS syntax errors. * `map`: an object of [source map options]. +### `version` + +Contains current version of PostCSS. + +```js +postcss().version //=> '4.0.5' +``` + ### `plugins` Contains plugins added to this processor. diff --git a/gulpfile.js b/gulpfile.js index 25957e498..5dd19719d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -127,7 +127,7 @@ gulp.task('bench:parsers', ['build', 'bench:bootstrap'], function () { // Tests -gulp.task('integration', ['build:lib'], function (done) { +gulp.task('integration', ['build:lib', 'build:package'], function (done) { var gutil = require('gulp-util'); var path = require('path'); diff --git a/lib/processor.js b/lib/processor.js index 27d3b49a5..d5a9532a5 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -53,3 +53,5 @@ export default class Processor { } } + +Processor.prototype.version = version; diff --git a/test/processor.js b/test/processor.js index 8302ac96e..52badce53 100644 --- a/test/processor.js +++ b/test/processor.js @@ -155,4 +155,12 @@ describe('Processor', () => { }); + describe('version', () => { + + it('contains PostCSS version', () => { + expect((new Processor()).version).to.match(/\d+.\d+.\d+/); + }); + + }); + }); From 7797406b3f2bb5f41b9c65ccad4de266cc1b8ba0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 18:45:05 +0300 Subject: [PATCH 0030/3047] Verify plugin compatibility --- lib/postcss.js | 27 ++++++++++++++++++++++++--- package.json | 1 + test/postcss.js | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/lib/postcss.js b/lib/postcss.js index 8ea653043..da19e2d6f 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -33,12 +33,33 @@ postcss.list = list; // Create PostCSS plugin postcss.plugin = function (name, initializer) { var result = function () { - return initializer.apply(this, arguments); + var transformer = initializer.apply(this, arguments); + var wrap = function (css, processor) { + try { + return transformer.apply(this, arguments); + } catch (e) { + var a = result.postcssVersion.split('.'); + var b = processor.version.split('.'); + if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { + if ( typeof(console) != 'undefined' && console.warn ) { + console.warn(result.postcssPlugin + ' is based on ' + + 'PostCSS ' + result.postcssVersion + ' but you use ' + + 'it with PostCSS ' + processor.version + '. ' + + 'Maybe this is a source of error below.'); + } + } + throw e; + } + }; + return wrap; }; - result.postcssPlugin = name; - result.postcss = function (css, processor) { + + result.postcssPlugin = name; + result.postcssVersion = Processor.prototype.version; + result.postcss = function (css, processor) { return result().apply(this, arguments); }; + return result; }; diff --git a/package.json b/package.json index f0f0f1f81..1a3e5442b 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "rework": "1.0.1", "mensch": "0.3.1", "stylus": "0.50.0", + "sinon": "1.12.2", "mocha": "2.1.0", "cssom": "0.3.0", "gulp": "3.8.11", diff --git a/test/postcss.js b/test/postcss.js index f0262e55e..b2e05e796 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -2,6 +2,7 @@ import Processor from '../lib/processor'; import postcss from '../lib/postcss'; import { expect } from 'chai'; +import sinon from 'sinon'; describe('postcss()', () => { @@ -24,6 +25,13 @@ describe('postcss()', () => { }); describe('.plugin()', () => { + beforeEach( () => { + sinon.stub(console, 'warn'); + }); + + afterEach( () => { + console.warn.restore(); + }); it('creates plugin', () => { var plugin = postcss.plugin('test', (filter) => { @@ -35,6 +43,7 @@ describe('postcss()', () => { }); expect(plugin.postcssPlugin).to.eql('test'); + expect(plugin.postcssVersion).to.match(/\d+.\d+.\d+/); var result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }'); expect(result1.css).to.eql('a{ two: 2 }'); @@ -42,6 +51,30 @@ describe('postcss()', () => { expect(result2.css).to.eql('a{ one: 1 }'); }); + it('wraps plugin to version check', () => { + var plugin = postcss.plugin('test', function () { + return function (css) { + throw 'Er'; + }; + }); + + plugin.postcssVersion = '2.1.5'; + expect( () => plugin()({ }, { version: '1.0.0' }) ).to.throws('Er'); + expect(console.warn.callCount).to.eql(1); + expect(console.warn.args[0][0]).to.eql( + 'test is based on PostCSS 2.1.5 but you use it with ' + + 'PostCSS 1.0.0. Maybe this is a source of error below.'); + + expect( () => plugin()({ }, { version: '3.0.0' }) ).to.throws('Er'); + expect(console.warn.callCount).to.eql(2); + + expect( () => plugin()({ }, { version: '2.0.0' }) ).to.throws('Er'); + expect(console.warn.callCount).to.eql(3); + + expect( () => plugin()({ }, { version: '2.1.0' }) ).to.throws('Er'); + expect(console.warn.callCount).to.eql(3); + }); + }); describe('.parse()', () => { From 58faac110c3ac8c905074f36ebbd4476c8740290 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 23 Feb 2015 18:51:36 +0300 Subject: [PATCH 0031/3047] Fix code indentation --- lib/postcss.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/postcss.js b/lib/postcss.js index da19e2d6f..809995f91 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -43,9 +43,9 @@ postcss.plugin = function (name, initializer) { if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { if ( typeof(console) != 'undefined' && console.warn ) { console.warn(result.postcssPlugin + ' is based on ' + - 'PostCSS ' + result.postcssVersion + ' but you use ' + - 'it with PostCSS ' + processor.version + '. ' + - 'Maybe this is a source of error below.'); + 'PostCSS ' + result.postcssVersion + ' but you ' + + 'use it with PostCSS ' + processor.version + '. ' + + 'Maybe this is a source of error below.'); } } throw e; From bb6b84d4e43182716dcc1b00b35d85cfd30c29b8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 01:09:58 +0300 Subject: [PATCH 0032/3047] Update npm dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 1a3e5442b..31c9368d8 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,13 @@ "dependencies": { "source-map": "~0.2.0", "js-base64": "~2.1.7", - "babel": "4.4.6" + "babel": "4.5.1" }, "devDependencies": { "concat-with-sourcemaps": "1.0.0", "gulp-bench-summary": "0.1.0", "gulp-json-editor": "2.2.1", - "jshint-stylish": "1.0.0", + "jshint-stylish": "1.0.1", "gulp-jshint": "1.9.2", "gonzales-pe": "3.0.0-26", "browserify": "9.0.3", @@ -27,7 +27,7 @@ "gulp-bench": "1.1.0", "gulp-mocha": "2.0.0", "node-sass": "2.0.1", - "gulp-util": "3.0.3", + "gulp-util": "3.0.4", "execSync": "1.0.2", "fs-extra": "0.16.3", "gonzales": "1.0.7", From e03ebcfe8e7effafd5e78066ade2ae42963b4f10 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 01:12:24 +0300 Subject: [PATCH 0033/3047] Update source-map dependency --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 31c9368d8..c6be79b0a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "source-map": "~0.2.0", + "source-map": "~0.4.0", "js-base64": "~2.1.7", "babel": "4.5.1" }, From c26dbaa50ff9e0f645dabb5fe06be5409ac65513 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 02:49:31 +0300 Subject: [PATCH 0034/3047] Clean up code --- lib/postcss.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/postcss.js b/lib/postcss.js index 809995f91..818ff4378 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -21,15 +21,6 @@ var postcss = function (...plugins) { return new Processor(plugins); }; -// Split vendor prefix -postcss.vendor = vendor; - -// Compile CSS to nodes -postcss.parse = parse; - -// Parse lists by spaces or comma -postcss.list = list; - // Create PostCSS plugin postcss.plugin = function (name, initializer) { var result = function () { @@ -63,6 +54,15 @@ postcss.plugin = function (name, initializer) { return result; }; +// Split vendor prefix +postcss.vendor = vendor; + +// Compile CSS to nodes +postcss.parse = parse; + +// Parse lists by spaces or comma +postcss.list = list; + // Nodes shortcuts postcss.comment = function (defaults) { return new Comment(defaults); From 70cfc780af0d72e2f47c7f3229c11a381bb3b580 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 03:42:07 +0300 Subject: [PATCH 0035/3047] Add LazyResult for future async plugins --- API.md | 127 +++++++++++++++++++++-------- lib/lazy-result.js | 80 ++++++++++++++++++ lib/processor.js | 24 +----- lib/result.js | 30 ++----- lib/root.js | 9 +- package.json | 2 +- test/{result.js => lazy-result.js} | 26 +++--- test/processor.js | 20 +++-- 8 files changed, 213 insertions(+), 105 deletions(-) create mode 100644 lib/lazy-result.js rename test/{result.js => lazy-result.js} (51%) diff --git a/API.md b/API.md index 6682b6f29..6739bacdc 100644 --- a/API.md +++ b/API.md @@ -2,6 +2,7 @@ * [postcss function](#postcss-function) * [Processor class](#processor-class) +* [LazyResult class](#lazy-result-class) * [Result class](#result-class) * [Vendor module](#vendor-module) * [List module](#list-module) @@ -209,10 +210,9 @@ processor.use(function (css) { ### `processor.process(css, opts)` -This is the main method of PostCSS. It will parse the source CSS -and create a [`Root` node]; send this `Root` to each plugin successively, -for transformations; and then return a `Result` instance created -from the transformed `Root`. +Parse source CSS and returns [`LazyResult`] instance. Because some plugins can +be asynchronous it doesn’t make any transformations. Transformations will +be apply in `LazyResult`’s methods. ```js var result = processor.process(css, { from: 'a.css', to: 'a.out.css' }); @@ -232,6 +232,15 @@ Arguments: to fix CSS syntax errors. * `map`: an object of [source map options]. +### `plugins` + +Contains plugins added to this processor. + +```js +var processor = postcss([cssnext, cssgrace]); +processor.plugins.length //=> 2 +``` + ### `version` Contains current version of PostCSS. @@ -240,59 +249,90 @@ Contains current version of PostCSS. postcss().version //=> '4.0.5' ``` -### `plugins` +## `LazyResult` class -Contains plugins added to this processor. +Promise proxy for result of PostCSS transformations. + +A `LazyResult` instance is returned by [`Processor#process(css, opts)`]. + +### `lazy.toString()` + +Alias for `LazyResult#css` property. + +### `lazy.css` + +Processes input CSS through’s plugins, stringify `Root` and returns output CSS +after all transformations. ```js -var processor = postcss([a, b]); -processor.plugins.length //=> 2 +processor.process(css).css; ``` -## `Result` class +### `lazy.map` -Provides result of PostCSS transformations. +Processes input CSS through’s plugins and return the `SourceMapGenerator` class +from the [`source-map`] library, representing changes to the `Root` instance. -A `Result` instance is returned -by [`Processor#process(css, opts)`] and [`Root#toResult(opts)`]. +Additionally, this property will receive a value *only if the user does not wan +an inline source map*. By default, PostCSS generates inline source maps, +written directly into the processed CSS; so by default the `map` property +will be empty. + +An external source map will be generated — and assigned to `map` — only if the +user has set the `map.inline` option to `false`, or if PostCSS was passed +an external input source map. ```js -var result1 = postcss().process(css); -var result2 = postcss.parse(css).toResult(); +if ( result.map ) { + fs.writeFileSync(to + '.map', result.map.toString()); +} ``` -### `result.root` +### `lazy.root` + +Process input CSS through’s plugins and return transformed [`Root`] instance. -The source `Root` instance. +### `lazy.processor` + +Returns a [`Processor`] instance, that will be used for CSS transformations. ```js -root.toResult().root == root; +var lazy = postcss([cssnext, cssgrace]).process(css); +lazy.processor.plugins.length //=> 2 ``` -### `result.opts` +### `lazy.opts` -Options from the [`Processor#process(css, opts)`] or -[`Root#toResult(opts)`] call that produced -this `Result` instance. +Options from the [`Processor#process(css, opts)`] or [`Root#toResult(opts)`] +call that produced this `Result` instance. ```js postcss().process(css, opts).opts == opts; ``` +## `Result` class + +Provides result of PostCSS transformations. + +A `Result` instance is returned by [`Root#toResult(opts)`] +or [`LazyResult`] class. + +```js +var result = postcss.parse(css).toResult(); +``` + +### `result.toString()` + +Alias for `Result#css` property. + ### `result.css` A CSS string representing this `Result`’s '`Root` instance. ```js -postcss().process('a{}').css //=> "a{}" +postcss.parse('a{}').toResult().css //=> "a{}" ``` -This property is generated *lazily*: `Root` is not stringified until -the first request for the `css` property (or the [`result.map`] property). -That initial request for `css` will also generate a source map. -Source map will inlined into CSS or assigned to the [`result.map`] property, -if user ask to save map to separated file. - ### `result.map` An instance of the `SourceMapGenerator` class from the [`source-map`] library, @@ -302,12 +342,7 @@ representing changes to the `Result`’s `Root` instance. result.map.toJSON() //=> { version: 3, file: 'a.css', sources: ['a.css'], … } ``` -This property is generated *lazily*: the source map for `Root` is not generated -until the first request for the `map` property (or the [`result.css`] property). -That initial request will also stringify `Root` and assign the generated -CSS string to the [`result.css`] property. - -Additionally, *this property will receive a value only if the user does not wan +Additionally, this property will receive a value *only if the user does not wan an inline source map*. By default, PostCSS generates inline source maps, written directly into the processed CSS; so by default the `map` property will be empty. @@ -322,6 +357,27 @@ if ( result.map ) { } ``` +### `result.root` + +Contains [`Root`] instance after all transformations. + +```js +root.toResult().root == root; +``` + +### `result.processor` + +Returns a [`Processor`] instance, that was used for this transformations. + +### `result.opts` + +Options from the [`Processor#process(css, opts)`] or [`Root#toResult(opts)`] +call that produced this `Result` instance. + +```js +root.toResult(opts).opts == opts; +``` + ## Vendor module Contains helpers for working with vendor prefixes. @@ -1028,7 +1084,7 @@ root.nodes.length //=> 2 ### `root.toResult(opts)` -Returns a [`Result`] instance representing the root's CSS. +Returns a [`Result`] instance representing the root’s CSS. ```js var root1 = postcss.parse(css1, { from: 'a.css' }); @@ -1441,6 +1497,7 @@ This is a code style property. [`Declaration` node]: #declaration-node [`Comment` node]: #comment-node [`Processor#use`]: #processoruseplugin +[`LazyResult`]: #lazy-result-class [`AtRule` node]: #atrule-node [`from` option]: #processorprocesscss-opts [`result.map`]: #resultmap diff --git a/lib/lazy-result.js b/lib/lazy-result.js new file mode 100644 index 000000000..6d2283139 --- /dev/null +++ b/lib/lazy-result.js @@ -0,0 +1,80 @@ +import MapGenerator from './map-generator'; +import Result from './result'; +import parse from './parse'; +import Root from './root'; + +// Lazy object to process CSS only on css/map request. +export default class LazyResult { + constructor(processor, css, opts) { + this.stringified = false; + this.processed = false; + + var root; + if ( css instanceof Root ) { + root = css; + } else if ( css instanceof LazyResult || css instanceof Result ) { + root = css.root; + if ( css.map && typeof(opts.map) == 'undefined' ) { + opts.map = { prev: css.map }; + } + } else { + root = parse(css, opts); + } + + this.result = new Result(processor, root, opts); + } + + // Return processor from real result + get processor() { + return this.result.processor; + } + + // Return options from real result + get opts() { + return this.result.opts; + } + + // Process CSS through processor plugins and return result CSS + get css() { + if ( !this.stringified ) this.stringify(); + return this.result.css; + } + + // Process CSS through processor plugins and return result source map + // if it should be saved in separted file + get map() { + if ( !this.stringified ) this.stringify(); + return this.result.map; + } + + // Process CSS through processor plugins and return result CSS AST + get root() { + if ( !this.processed ) this.processSync(); + return this.result.root; + } + + // Return CSS string on any try to print + toString() { + return this.css; + } + + // Process CSS through processor plugins + processSync() { + this.processed = true; + + for ( var plugin of this.result.processor.plugins ) { + var returnred = plugin(this.result.root, this.result); + if ( returnred instanceof Root ) this.result.root = returnred; + } + } + + // Stringify CSS AST after processing + stringify() { + if ( !this.processed ) this.processSync(); + this.stringified = true; + + var map = new MapGenerator(this.result.root, this.result.opts); + [this.result.css, this.result.map] = map.generate(); + } + +}; diff --git a/lib/processor.js b/lib/processor.js index d5a9532a5..d240934ac 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -1,7 +1,4 @@ -import Result from './result'; -import parse from './parse'; -import Root from './root'; - +import LazyResult from './lazy-result'; import { version } from '../package'; export default class Processor { @@ -22,24 +19,7 @@ export default class Processor { // Process CSS throw installed plugins process(css, opts = { }) { - var parsed; - if ( css instanceof Root ) { - parsed = css; - } else if ( css instanceof Result ) { - parsed = css.root; - if ( css.map && typeof(opts.map) == 'undefined' ) { - opts.map = { prev: css.map }; - } - } else { - parsed = parse(css, opts); - } - - for ( var plugin of this.plugins ) { - var returned = plugin(parsed, this); - if ( returned instanceof Root ) parsed = returned; - } - - return parsed.toResult(opts); + return new LazyResult(this, css, opts); } // Return plugin function diff --git a/lib/result.js b/lib/result.js index c8d491391..139f29940 100644 --- a/lib/result.js +++ b/lib/result.js @@ -1,22 +1,11 @@ -import MapGenerator from './map-generator'; - // Object with processed CSS export default class Result { - constructor(root, opts = { }) { - this.root = root; - this.opts = opts; - } - - // Lazy method to return source map - get map() { - if ( !this.cssCached ) this.stringify(); - return this.mapCached; - } - - // Lazy method to return CSS string - get css() { - if ( !this.cssCached ) this.stringify(); - return this.cssCached; + constructor(processor, root, opts) { + this.processor = processor; + this.root = root; + this.opts = opts; + this.css = undefined; + this.map = undefined; } // Return CSS string on any try to print @@ -24,11 +13,4 @@ export default class Result { return this.css; } - // Generate CSS and map - stringify() { - var map = new MapGenerator(this.root, this.opts); - var generated = map.generate(); - this.cssCached = generated[0]; - this.mapCached = generated[1]; - } } diff --git a/lib/root.js b/lib/root.js index 50ace6420..99a359b45 100644 --- a/lib/root.js +++ b/lib/root.js @@ -2,7 +2,6 @@ import Declaration from './declaration'; import Container from './container'; import Comment from './comment'; import AtRule from './at-rule'; -import Result from './result'; import Rule from './rule'; // Root of CSS @@ -53,6 +52,12 @@ export default class Root extends Container { // Generate processing result with optional source map toResult(opts = { }) { - return new Result(this, opts); + import LazyResult from './lazy-result'; + import Processor from './processor'; + + var lazy = new LazyResult(new Processor(), this, opts); + lazy.stringify(); + + return lazy.result; } } diff --git a/package.json b/package.json index c6be79b0a..31e29a1fe 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "source-map": "~0.4.0", "js-base64": "~2.1.7", - "babel": "4.5.1" + "babel": "4.5.4" }, "devDependencies": { "concat-with-sourcemaps": "1.0.0", diff --git a/test/result.js b/test/lazy-result.js similarity index 51% rename from test/result.js rename to test/lazy-result.js index bc2d1293a..ad978043e 100644 --- a/test/result.js +++ b/test/lazy-result.js @@ -1,21 +1,19 @@ -import Result from '../lib/result'; -import parse from '../lib/parse'; +import LazyResult from '../lib/lazy-result'; +import Processor from '../lib/processor'; +import parse from '../lib/parse'; import mozilla from 'source-map'; import { expect } from 'chai'; -var root; +var processor = new Processor(); -describe('Result', () => { - beforeEach( () => { - root = parse('a {}'); - }); +describe('LazyResult', () => { describe('root', () => { it('contains AST', () => { - var result = new Result(root); - expect(result.root).to.eql(root); + var result = new LazyResult(processor, 'a {}', { }); + expect(result.root.type).to.eql('root'); }); }); @@ -23,12 +21,12 @@ describe('Result', () => { describe('css', () => { it('will be stringified', () => { - var result = new Result(root); + var result = new LazyResult(processor, 'a {}', { }); expect(result.css).to.eql('a {}'); }); it('stringifies', () => { - var result = new Result(root, 'a {}'); + var result = new LazyResult(processor, 'a {}', { }); expect('' + result).to.eql(result.css); }); @@ -37,13 +35,13 @@ describe('Result', () => { describe('map', () => { it('exists only if necessary', () => { - var result = new Result(root); + var result = new LazyResult(processor, '', { }); expect(result.map).to.not.exist; - result = new Result(root, { map: true }); + result = new LazyResult(processor, '', { }); expect(result.map).to.not.exist; - result = new Result(root, { map: { inline: false } }); + result = new LazyResult(processor, '', { map: { inline: false } }); expect(result.map).to.be.a.instanceOf(mozilla.SourceMapGenerator); }); diff --git a/test/processor.js b/test/processor.js index 52badce53..458a973dd 100644 --- a/test/processor.js +++ b/test/processor.js @@ -1,4 +1,5 @@ import CssSyntaxError from '../lib/css-syntax-error'; +import LazyResult from '../lib/lazy-result'; import Processor from '../lib/processor'; import Result from '../lib/result'; import parse from '../lib/parse'; @@ -112,9 +113,9 @@ describe('Processor', () => { expect(processor.process('a {}').css).to.eql(''); }); - it('returns Result object', () => { + it('returns LazyResult object', () => { var result = (new Processor()).process('a{}'); - expect(result).to.be.an.instanceOf(Result); + expect(result).to.be.an.instanceOf(LazyResult); expect(result.css).to.eql( 'a{}'); expect(result.toString()).to.eql('a{}'); }); @@ -124,19 +125,24 @@ describe('Processor', () => { var a = () => calls += 'a'; var b = () => calls += 'b'; - (new Processor([a, b])).process(''); + (new Processor([a, b])).process('').css; expect(calls).to.eql('ab'); }); - it('parses, convert and stringify CSS', () => { + it('parses, converts and stringifies CSS', () => { var a = (css) => expect(css).to.be.an.instanceof(Root); expect((new Processor([a])).process('a {}').css).to.be.a('string'); }); - it('send itself to plugins', () => { + it('send result to plugins', () => { var processor = new Processor(); - var a = (css, arg) => expect(arg).to.eql(processor); - processor.use(a).process('a {}'); + var a = (css, result) => { + expect(result).to.be.an.instanceof(Result); + expect(result.processor).to.eql(processor); + expect(result.opts).to.eql({ map: true }); + expect(result.root).to.eql(css); + } + processor.use(a).process('a {}', { map: true }); }); it('accepts source map from PostCSS', () => { From 94563fdd0779e2100ae4bb3c4e34e9159237c99e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 15:28:35 +0300 Subject: [PATCH 0036/3047] Add support for async plugins --- API.md | 94 +++++++++++++++++++++++++++++++++++++--------- README.md | 22 ++++++----- lib/lazy-result.js | 79 ++++++++++++++++++++++++++++++++------ lib/root.js | 4 +- test/processor.js | 94 ++++++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 249 insertions(+), 44 deletions(-) diff --git a/API.md b/API.md index 6739bacdc..8a9d5042b 100644 --- a/API.md +++ b/API.md @@ -255,42 +255,99 @@ Promise proxy for result of PostCSS transformations. A `LazyResult` instance is returned by [`Processor#process(css, opts)`]. +```js +var lazy = postcss([cssnext]).process(css); +``` + +### `lazy.then(onFulfilled, onRejected)` + +Processes input CSS through asynchronous plugins and call `onFulfilled` +with [`Result`] instance. If error was throws from any plugin, it will +call `onRejected` callback with this error. + +```js +postcss([cssnext]).process(css).then(function(result) { + console.log(result.css); +}); +``` + +This method is a standard [Promise] method. + +### `lazy.catch(onRejected)` + +Processes input CSS through asynchronous plugins and call `onRejected` +if errors will occur in some plugin. + +```js +postcss([cssnext]).process(css).then(function(result) { + console.log(result.css); +}).catch(function (error) { + console.error(error); +}); +``` + +This method is a standard [Promise] method. + ### `lazy.toString()` Alias for `LazyResult#css` property. ### `lazy.css` -Processes input CSS through’s plugins, stringify `Root` and returns output CSS -after all transformations. +Processes input CSS through synchronous plugins, stringify `Root` +and returns [`Result#css`](#resultcss). ```js processor.process(css).css; ``` -### `lazy.map` +This property will works only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should +use [`LazyResult#then()`] instead. -Processes input CSS through’s plugins and return the `SourceMapGenerator` class -from the [`source-map`] library, representing changes to the `Root` instance. +```js +postcss([cssnext]).then(function (result) { + console.log(result.css); +}); +``` -Additionally, this property will receive a value *only if the user does not wan -an inline source map*. By default, PostCSS generates inline source maps, -written directly into the processed CSS; so by default the `map` property -will be empty. +### `lazy.map` -An external source map will be generated — and assigned to `map` — only if the -user has set the `map.inline` option to `false`, or if PostCSS was passed -an external input source map. +Processes input CSS through synchronous plugins and returns +[`Result#map`](#resultmap). ```js if ( result.map ) { - fs.writeFileSync(to + '.map', result.map.toString()); + fs.writeFileSync(result.opts.to + '.map', result.map.toString()); } ``` +This property will works only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should +use [`LazyResult#then()`] instead. + +```js +postcss([cssnext]).then(function (result) { + if ( result.map ) { + fs.writeFileSync(result.opts.to + '.map', result.map.toString()); + } +}); +``` + ### `lazy.root` -Process input CSS through’s plugins and return transformed [`Root`] instance. +Processes input CSS through synchronous plugins and returns +[`Result#root`](#resultroot). + +This property will works only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should +use [`LazyResult#then()`] instead. + +```js +postcss([cssnext]).then(function (result) { + console.log(result.root); +}); +``` ### `lazy.processor` @@ -315,10 +372,11 @@ postcss().process(css, opts).opts == opts; Provides result of PostCSS transformations. A `Result` instance is returned by [`Root#toResult(opts)`] -or [`LazyResult`] class. +or [`LazyResult#then()`] methods. ```js -var result = postcss.parse(css).toResult(); +postcss([cssnext]).process(css).then(function (result1) { }); +var result2 = postcss.parse(css).toResult(); ``` ### `result.toString()` @@ -353,7 +411,7 @@ an external input source map. ```js if ( result.map ) { - fs.writeFileSync(to + '.map', result.map.toString()); + fs.writeFileSync(result.opts.to + '.map', result.map.toString()); } ``` @@ -1487,12 +1545,14 @@ comment.before //=> '\n ' This is a code style property. [`source-map`]: https://github.com/mozilla/source-map +[Promise]: http://www.html5rocks.com/en/tutorials/es6/promises/ [source map options]: https://github.com/postcss/postcss#source-map [Safe Mode]: https://github.com/postcss/postcss#safe-mode [`Processor#process(css, opts)`]: #processorprocesscss-opts [`Root#toResult(opts)`]: #roottoresult-opts +[`LazyResult#then()`]: #lazythen-onfulfilled-onrejected [`postcss(plugins)`]: #postcssplugins [`Declaration` node]: #declaration-node [`Comment` node]: #comment-node diff --git a/README.md b/README.md index f2bb36986..396a92dfa 100644 --- a/README.md +++ b/README.md @@ -350,15 +350,19 @@ a specialized language for a specialized tool (as with preprocessors). var postcss = require('postcss'); var processor = postcss([require('cssnext'), require('cssgrace')]); -var result = processor.process(css, { from: 'app.css', to: 'app.out.css' }); -console.log(result.css); +processor + .process(css, { from: 'app.css', to: 'app.out.css' }) + .then(function (result) { + fs.fileWriteSync('app.out.css', result.css); + if ( result.map ) { + fs.fileWriteSync('app.out.css.map', result.map); + } + }); ``` -Read the [postcss function], [processor], and [Result] API docs for more details. +Read the [PostCSS API] for more details. -[postcss function]: https://github.com/postcss/postcss/blob/master/API.md#postcss-function -[processor]: https://github.com/postcss/postcss/blob/master/API.md#postcss-class -[Result]: https://github.com/postcss/postcss/blob/master/API.md#result-class +[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md ### Source Maps @@ -375,8 +379,8 @@ If you don’t want the map inlined, you can use set `map.inline: false`. ```js var result = processor.process(css, { - from: 'main.css', - to: 'main.out.css', + from: 'app.css', + to: 'app.out.css', map: { inline: false }, }); @@ -388,7 +392,7 @@ it will automatically update that source map with the same options. ```js // main.sass.css has an annotation comment with a link to main.sass.css.map -var result = minifier.process(css, { from: 'main.sass.css', to: 'main.min.css' }); +var result = minifier.process(css, { from: 'app.sass.css', to: 'app.min.css' }); result.map //=> Source map from main.sass to main.min.css ``` diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 6d2283139..caea3c1b6 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -36,21 +36,18 @@ export default class LazyResult { // Process CSS through processor plugins and return result CSS get css() { - if ( !this.stringified ) this.stringify(); - return this.result.css; + return this.stringify().css; } // Process CSS through processor plugins and return result source map // if it should be saved in separted file get map() { - if ( !this.stringified ) this.stringify(); - return this.result.map; + return this.stringify().map; } // Process CSS through processor plugins and return result CSS AST get root() { - if ( !this.processed ) this.processSync(); - return this.result.root; + return this.sync().root; } // Return CSS string on any try to print @@ -58,23 +55,83 @@ export default class LazyResult { return this.css; } + // Promise method, that will call onFulfilled with Result instance + // after all plugin transformations + then(onFulfilled, onRejected) { + return this.async().then(onFulfilled, onRejected); + } + + // Promise method, that will execute callback on any plugin error + catch(onRejected) { + return this.async().catch(onRejected); + } + + // Return Promise for plugin transformations + async() { + if ( this.processed ) { + return Promise.resolve().then( () => this.stringify() ); + } + if ( this.processing ) { + return this.processing; + } + + this.processing = this.processor.plugins.map( (plugin) => { + return new Promise( (resolve, reject) => { + + var returned = plugin(this.result.root, this.result); + if ( returned instanceof Promise ) { + returned + .then( () => resolve() ) + .catch( (error) => reject(error) ); + } else { + if ( returned instanceof Root ) this.result.root = returned; + resolve(); + } + + }); + }) + .reduce( (sequence, promise) => { + return sequence.then( () => promise ); + }, Promise.resolve()) + .then( () => { + this.processed = true; + return this.stringify(); + }); + + return this.processing; + } + // Process CSS through processor plugins - processSync() { + sync() { + if ( this.processed ) return this.result; this.processed = true; + if ( this.processing ) { + throw 'Use process(css).then(cb) to work with async plugins'; + } + for ( var plugin of this.result.processor.plugins ) { - var returnred = plugin(this.result.root, this.result); - if ( returnred instanceof Root ) this.result.root = returnred; + var returned = plugin(this.result.root, this.result); + if ( returned instanceof Promise ) { + throw 'Use process(css).then(cb) to work with async plugins'; + } else if ( returned instanceof Root ) { + this.result.root = returned; + } } + + return this.result; } // Stringify CSS AST after processing stringify() { - if ( !this.processed ) this.processSync(); + if ( this.stringified ) return this.result; this.stringified = true; + this.sync(); var map = new MapGenerator(this.result.root, this.result.opts); [this.result.css, this.result.map] = map.generate(); + + return this.result; } -}; +} diff --git a/lib/root.js b/lib/root.js index 99a359b45..18d654213 100644 --- a/lib/root.js +++ b/lib/root.js @@ -56,8 +56,6 @@ export default class Root extends Container { import Processor from './processor'; var lazy = new LazyResult(new Processor(), this, opts); - lazy.stringify(); - - return lazy.result; + return lazy.stringify(); } } diff --git a/test/processor.js b/test/processor.js index 458a973dd..27c4a7f92 100644 --- a/test/processor.js +++ b/test/processor.js @@ -120,13 +120,19 @@ describe('Processor', () => { expect(result.toString()).to.eql('a{}'); }); - it('calls all plugins', () => { + it('calls all plugins once', (done) => { var calls = ''; var a = () => calls += 'a'; var b = () => calls += 'b'; - (new Processor([a, b])).process('').css; - expect(calls).to.eql('ab'); + var result = new Processor([a, b]).process(''); + result.css; + result.map; + result.root; + result.then( () => { + expect(calls).to.eql('ab'); + done(); + }).catch( (error) => done(error) ); }); it('parses, converts and stringifies CSS', () => { @@ -141,7 +147,7 @@ describe('Processor', () => { expect(result.processor).to.eql(processor); expect(result.opts).to.eql({ map: true }); expect(result.root).to.eql(css); - } + }; processor.use(a).process('a {}', { map: true }); }); @@ -159,6 +165,86 @@ describe('Processor', () => { expect(two.map.toJSON().sources).to.eql(['a.css']); }); + it('supports async plugins', (done) => { + var async = (css) => { + return new Promise( (resolve) => { + setTimeout(() => { + css.append({ selector: 'a' }); + resolve(); + }, 1); + }); + }; + (new Processor([async])).process('').then( (result) => { + expect(result.css).to.eql('a {}'); + done(); + }).catch( (error) => done(error) ); + }); + + it('works async without plugins', (done) => { + (new Processor()).process('a {}').then( (result) => { + expect(result.css).to.eql('a {}'); + done(); + }).catch( (error) => done(error) ); + }); + + it('runs async plugin only once', (done) => { + var calls = 0; + var async = (css) => { + return new Promise( (resolve) => { + setTimeout(() => { + calls += 1; + resolve(); + }, 1); + }); + }; + + var result = (new Processor([async])).process('a {}'); + result.then( () => { }); + result.then( () => { + result.then( () => { + expect(calls).to.eql(1); + done(); + }); + }); + }); + + it('supports async errors', (done) => { + var error = new Error('Async'); + var async = (css) => { + return new Promise( (resolve, reject) => { + reject(error); + }); + }; + (new Processor([async])).process('').then( () => { + done('should not run then callback'); + }).catch(function (error) { + expect(error).to.eql(error); + done(); + }); + }); + + it('supports sync errors in async mode', (done) => { + var error = new Error('Async'); + var async = (css) => { + throw error; + }; + (new Processor([async])).process('').then( () => { + done('should not run then callback'); + }).catch(function (error) { + expect(error).to.eql(error); + done(); + }); + }); + + it('throws error on sync method to async plugin', () => { + var async = (css) => { + return new Promise( (resolve) => resolve() ); + }; + expect(() => { + (new Processor([async])).process('a{}').css; + }).to.throw(/async/); + }); + }); describe('version', () => { From dfa1b0fcdb5cd08c120b48c426a13a8fb468efcf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 15:39:45 +0300 Subject: [PATCH 0037/3047] Fix API docs --- API.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/API.md b/API.md index 8a9d5042b..e3195a828 100644 --- a/API.md +++ b/API.md @@ -210,7 +210,7 @@ processor.use(function (css) { ### `processor.process(css, opts)` -Parse source CSS and returns [`LazyResult`] instance. Because some plugins can +Parses source CSS and returns [`LazyResult`] instance. Because some plugins can be asynchronous it doesn’t make any transformations. Transformations will be apply in `LazyResult`’s methods. @@ -261,9 +261,9 @@ var lazy = postcss([cssnext]).process(css); ### `lazy.then(onFulfilled, onRejected)` -Processes input CSS through asynchronous plugins and call `onFulfilled` -with [`Result`] instance. If error was throws from any plugin, it will -call `onRejected` callback with this error. +Processes input CSS through synchronous and asynchronous plugins +and call `onFulfilled` with [`Result`] instance. If some plugin will throw +a error, `onRejected` callback will be executed. ```js postcss([cssnext]).process(css).then(function(result) { @@ -275,8 +275,8 @@ This method is a standard [Promise] method. ### `lazy.catch(onRejected)` -Processes input CSS through asynchronous plugins and call `onRejected` -if errors will occur in some plugin. +Processes input CSS through synchronous and asynchronous plugins +and call `onRejected` on errors from any plugin. ```js postcss([cssnext]).process(css).then(function(result) { @@ -301,9 +301,9 @@ and returns [`Result#css`](#resultcss). processor.process(css).css; ``` -This property will works only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should -use [`LazyResult#then()`] instead. +This property will work only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should use +[`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -322,9 +322,9 @@ if ( result.map ) { } ``` -This property will works only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should -use [`LazyResult#then()`] instead. +This property will work only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should use +[`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -339,9 +339,9 @@ postcss([cssnext]).then(function (result) { Processes input CSS through synchronous plugins and returns [`Result#root`](#resultroot). -This property will works only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should -use [`LazyResult#then()`] instead. +This property will work only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should use +[`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -360,8 +360,8 @@ lazy.processor.plugins.length //=> 2 ### `lazy.opts` -Options from the [`Processor#process(css, opts)`] or [`Root#toResult(opts)`] -call that produced this `Result` instance. +Options from the [`Processor#process(css, opts)`] call that produced +this `Result` instance. ```js postcss().process(css, opts).opts == opts; @@ -375,7 +375,8 @@ A `Result` instance is returned by [`Root#toResult(opts)`] or [`LazyResult#then()`] methods. ```js -postcss([cssnext]).process(css).then(function (result1) { }); +postcss([cssnext]).process(css).then(function (result1) { +}); var result2 = postcss.parse(css).toResult(); ``` @@ -394,16 +395,15 @@ postcss.parse('a{}').toResult().css //=> "a{}" ### `result.map` An instance of the `SourceMapGenerator` class from the [`source-map`] library, -representing changes to the `Result`’s `Root` instance. +representing changes to the `Result`’s `Root` instance. ```js result.map.toJSON() //=> { version: 3, file: 'a.css', sources: ['a.css'], … } ``` -Additionally, this property will receive a value *only if the user does not wan -an inline source map*. By default, PostCSS generates inline source maps, -written directly into the processed CSS; so by default the `map` property -will be empty. +This property will has a value *only if the user does not want an inline source +map*. By default, PostCSS generates inline source maps, written directly into +the processed CSS; so by default the `map` property will be empty. An external source map will be generated — and assigned to `map` — only if the user has set the `map.inline` option to `false`, or if PostCSS was passed @@ -417,7 +417,7 @@ if ( result.map ) { ### `result.root` -Contains [`Root`] instance after all transformations. +Contains [`Root` node] after all transformations. ```js root.toResult().root == root; @@ -1552,7 +1552,7 @@ This is a code style property. [`Processor#process(css, opts)`]: #processorprocesscss-opts [`Root#toResult(opts)`]: #roottoresult-opts -[`LazyResult#then()`]: #lazythen-onfulfilled-onrejected +[`LazyResult#then()`]: #lazythenonfulfilled-onrejected [`postcss(plugins)`]: #postcssplugins [`Declaration` node]: #declaration-node [`Comment` node]: #comment-node From 9b7f26341d7d9445de02b26b477977d3374024da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 15:42:05 +0300 Subject: [PATCH 0038/3047] Async example in Processor#process --- API.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/API.md b/API.md index e3195a828..29daf3d06 100644 --- a/API.md +++ b/API.md @@ -215,7 +215,8 @@ be asynchronous it doesn’t make any transformations. Transformations will be apply in `LazyResult`’s methods. ```js -var result = processor.process(css, { from: 'a.css', to: 'a.out.css' }); +processor.process(css, { from: 'a.css', to: 'a.out.css' }).then(function (result) { +}); ``` Arguments: @@ -262,7 +263,7 @@ var lazy = postcss([cssnext]).process(css); ### `lazy.then(onFulfilled, onRejected)` Processes input CSS through synchronous and asynchronous plugins -and call `onFulfilled` with [`Result`] instance. If some plugin will throw +and call `onFulfilled` with [`Result`] instance. If some plugin will throw a error, `onRejected` callback will be executed. ```js @@ -406,7 +407,7 @@ map*. By default, PostCSS generates inline source maps, written directly into the processed CSS; so by default the `map` property will be empty. An external source map will be generated — and assigned to `map` — only if the -user has set the `map.inline` option to `false`, or if PostCSS was passed +user has set the `map.inline` option to `false`, or if PostCSS was passed an external input source map. ```js From 28962d3c9078584aec4d57ba886b510298f4bfcd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Feb 2015 15:42:59 +0300 Subject: [PATCH 0039/3047] Better async examples in API docs --- API.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/API.md b/API.md index 29daf3d06..a2e0f3ec1 100644 --- a/API.md +++ b/API.md @@ -216,6 +216,7 @@ be apply in `LazyResult`’s methods. ```js processor.process(css, { from: 'a.css', to: 'a.out.css' }).then(function (result) { + console.log(result.css); }); ``` @@ -377,6 +378,7 @@ or [`LazyResult#then()`] methods. ```js postcss([cssnext]).process(css).then(function (result1) { + console.log(result1.css); }); var result2 = postcss.parse(css).toResult(); ``` From 9eb7f69d3188f7e5f25da699abc7967dec380254 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 27 Feb 2015 01:42:04 +0300 Subject: [PATCH 0040/3047] Remove outdated comments because we have API.md --- lib/at-rule.js | 8 --- lib/comment.js | 2 - lib/container.js | 138 ---------------------------------------- lib/css-syntax-error.js | 2 - lib/declaration.js | 2 - lib/input.js | 3 - lib/lazy-result.js | 14 ---- lib/list.js | 17 ----- lib/map-generator.js | 16 ----- lib/node.js | 80 ----------------------- lib/parser.js | 1 - lib/postcss.js | 11 ---- lib/previous-map.js | 7 -- lib/processor.js | 3 - lib/result.js | 2 - lib/root.js | 5 -- lib/rule.js | 4 -- lib/vendor.js | 9 --- 18 files changed, 324 deletions(-) diff --git a/lib/at-rule.js b/lib/at-rule.js index 730ac6f54..281e2b2aa 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -1,15 +1,11 @@ import Container from './container'; -// CSS at-rule like “this.keyframes name { }”. -// -// Can contain declarations (like this.font-face or this.page) ot another rules. export default class AtRule extends Container { constructor(defaults) { this.type = 'atrule'; super(defaults); } - // Stringify at-rule stringify(builder, semicolon) { var name = '@' + this.name; var params = this.params ? this.stringifyRaw('params') : ''; @@ -31,25 +27,21 @@ export default class AtRule extends Container { } } - // Hack to mark, that at-rule contains children append(child) { if ( !this.nodes ) this.nodes = []; return super.append(child); } - // Hack to mark, that at-rule contains children prepend(child) { if ( !this.nodes ) this.nodes = []; return super.prepend(child); } - // Hack to mark, that at-rule contains children insertBefore(exist, add) { if ( !this.nodes ) this.nodes = []; return super.insertBefore(exist, add); } - // Hack to mark, that at-rule contains children insertAfter(exist, add) { if ( !this.nodes ) this.nodes = []; return super.insertAfter(exist, add); diff --git a/lib/comment.js b/lib/comment.js index d8c132363..57ed937f2 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -1,13 +1,11 @@ import Node from './node'; -// CSS comment between declarations or rules export default class Comment extends Node { constructor(defaults) { this.type = 'comment'; super(defaults); } - // Stringify declaration stringify(builder) { var before = this.style('before'); if ( before ) builder(before); diff --git a/lib/container.js b/lib/container.js index 091c1faa0..6642f8ae6 100644 --- a/lib/container.js +++ b/lib/container.js @@ -2,10 +2,8 @@ import Declaration from './declaration'; import Comment from './comment'; import Node from './node'; -// CSS node, that contain another nodes (like at-rules or rules with selectors) export default class Container extends Node { - // Stringify container children stringifyContent(builder) { if ( !this.nodes ) return; @@ -21,8 +19,6 @@ export default class Container extends Node { } } - // Stringify node with start (for example, selector) and brackets block - // with child inside stringifyBlock(builder, start) { var before = this.style('before'); if ( before ) builder(before); @@ -42,28 +38,12 @@ export default class Container extends Node { builder('}', this, 'end'); } - // Add child to end of list without any checks. - // Please, use `append()` method, `push()` is mostly for parser. push(child) { child.parent = this; this.nodes.push(child); return this; } - // Execute `callback` on every child element. First arguments will be child - // node, second will be index. - // - // css.each( (rule, i) => { - // console.log(rule.type + ' at ' + i); - // }); - // - // It is safe for add and remove elements to list while iterating: - // - // css.each( (rule) => { - // css.insertBefore( rule, addPrefix(rule) ); - // # On next iteration will be next rule, regardless of that - // # list size was increased - // }); each(callback) { if ( !this.lastEach ) this.lastEach = 0; if ( !this.indexes ) this.indexes = { }; @@ -88,15 +68,6 @@ export default class Container extends Node { if ( result === false ) return false; } - // Execute callback on every child in all rules inside. - // - // First argument will be child node, second will be index inside parent. - // - // css.eachInside( (node, i) => { - // console.log(node.type + ' at ' + i); - // }); - // - // Also as `each` it is safe of insert/remove nodes inside iterating. eachInside(callback) { return this.each( (child, i) => { var result = callback(child, i); @@ -109,21 +80,6 @@ export default class Container extends Node { }); } - // Execute callback on every declaration in all rules inside. - // It will goes inside at-rules recursivelly. - // - // First argument will be declaration node, second will be index inside - // parent rule. - // - // css.eachDecl( (decl, i) => { - // console.log(decl.prop + ' in ' + decl.parent.selector + ':' + i); - // }); - // - // Also as `each` it is safe of insert/remove nodes inside iterating. - // - // You can filter declrataion by property name: - // - // css.eachDecl('background', (decl) => { }); eachDecl(prop, callback) { if ( !callback ) { callback = prop; @@ -150,17 +106,6 @@ export default class Container extends Node { } } - // Execute `callback` on every rule in conatiner and inside child at-rules. - // - // First argument will be rule node, second will be index inside parent. - // - // css.eachRule( (rule, i) => { - // if ( parent.type == 'atrule' ) { - // console.log(rule.selector + ' in ' + rule.parent.name); - // } else { - // console.log(rule.selector + ' at ' + i); - // } - // }); eachRule(callback) { return this.eachInside( (child, i) => { if ( child.type == 'rule' ) { @@ -170,21 +115,6 @@ export default class Container extends Node { }); } - // Execute `callback` on every at-rule in conatiner and inside at-rules. - // - // First argument will be at-rule node, second will be index inside parent. - // - // css.eachAtRule( (atrule, parent, i) => { - // if ( parent.type == 'atrule' ) { - // console.log(atrule.name + ' in ' + atrule.parent.name); - // } else { - // console.log(atrule.name + ' at ' + i); - // } - // }); - // - // You can filter at-rules by name: - // - // css.eachAtRule('keyframes', (atrule) => { }); eachAtRule(name, callback) { if ( !callback ) { callback = name; @@ -211,17 +141,6 @@ export default class Container extends Node { } } - // Execute callback on every block comment (only between rules - // and declarations, not inside selectors and values) in all rules inside. - // - // First argument will be comment node, second will be index inside - // parent rule. - // - // css.eachComment( (comment, i) => { - // console.log(comment.content + ' at ' + i); - // }); - // - // Also as `each` it is safe of insert/remove nodes inside iterating. eachComment(callback) { return this.eachInside( (child, i) => { if ( child.type == 'comment' ) { @@ -231,26 +150,12 @@ export default class Container extends Node { }); } - // Add child to container. - // - // css.append(rule); - // - // You can add declaration by hash: - // - // rule.append({ prop: 'color', value: 'black' }); append(child) { var nodes = this.normalize(child, this.last); for ( var node of nodes ) this.nodes.push(node); return this; } - // Add child to beginning of container - // - // css.prepend(rule); - // - // You can add declaration by hash: - // - // rule.prepend({ prop: 'color', value: 'black' }); prepend(child) { var nodes = this.normalize(child, this.first, 'prepend').reverse(); for ( var node of nodes ) this.nodes.unshift(node); @@ -262,14 +167,6 @@ export default class Container extends Node { return this; } - // Insert new `added` child before `exist`. - // You can set node object or node index (it will be faster) in `exist`. - // - // css.insertAfter(1, rule); - // - // You can add declaration by hash: - // - // rule.insertBefore(1, { prop: 'color', value: 'black' }); insertBefore(exist, add) { exist = this.index(exist); @@ -288,14 +185,6 @@ export default class Container extends Node { return this; } - // Insert new `added` child after `exist`. - // You can set node object or node index (it will be faster) in `exist`. - // - // css.insertAfter(1, rule); - // - // You can add declaration by hash: - // - // rule.insertAfter(1, { prop: 'color', value: 'black' }); insertAfter(exist, add) { exist = this.index(exist); @@ -313,9 +202,6 @@ export default class Container extends Node { return this; } - // Remove `child` by index or node. - // - // css.remove(2); remove(child) { child = this.index(child); this.nodes[child].parent = undefined; @@ -332,28 +218,12 @@ export default class Container extends Node { return this; } - // Remove all children in node. - // - // css.removeAll(); removeAll() { for ( var node of this.nodes ) node.parent = undefined; this.nodes = []; return this; } - // Recursivelly check all declarations inside node and replace - // `regexp` by `callback`. - // - // css.replaceValues('black', '#000'); - // - // Argumets `regexp` and `callback` is same as in `String#replace()`. - // - // You can speed up checks by `props` and `fast` options: - // - // css.replaceValues(/\d+rem/, { fast: 'rem', props: ['width'] }, - // function (str) { - // return (14 * parseInt(str)) + 'px'; - // }) replaceValues(regexp, opts, callback) { if ( !callback ) { callback = opts; @@ -370,19 +240,14 @@ export default class Container extends Node { return this; } - // Return true if all nodes return true in `condition`. - // Just shorcut for `nodes.every`. every(condition) { return this.nodes.every(condition); } - // Return true if one or more nodes return true in `condition`. - // Just shorcut for `nodes.some`. some(condition) { return this.nodes.some(condition); } - // Return index of child index(child) { if ( typeof(child) == 'number' ) { return child; @@ -391,19 +256,16 @@ export default class Container extends Node { } } - // Shortcut to get first child get first() { if ( !this.nodes ) return undefined; return this.nodes[0]; } - // Shortcut to get first child get last() { if ( !this.nodes ) return undefined; return this.nodes[this.nodes.length - 1]; } - // Normalize child before insert. Copy before from `sample`. normalize(nodes, sample) { if ( typeof(nodes) == 'string' ) { import parse from './parse'; diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 216f340ca..6e0500183 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -2,7 +2,6 @@ import PreviousMap from './previous-map'; import path from 'path'; -// Error while CSS parsing export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file) { this.reason = message; @@ -24,7 +23,6 @@ export default class CssSyntaxError extends SyntaxError { } } - // Return source of broken lines highlight(color) { var num = this.line - 1; var lines = this.source.split('\n'); diff --git a/lib/declaration.js b/lib/declaration.js index 254aaf1e7..8f0696ddd 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -1,14 +1,12 @@ import vendor from './vendor'; import Node from './node'; -// CSS declaration like “color: black” in rules export default class Declaration extends Node { constructor(defaults) { this.type = 'decl'; super(defaults); } - // Stringify declaration stringify(builder, semicolon) { var before = this.style('before'); if ( before ) builder(before); diff --git a/lib/input.js b/lib/input.js index f1b9eae6c..6f0201826 100644 --- a/lib/input.js +++ b/lib/input.js @@ -35,7 +35,6 @@ export default class Input { if ( this.map ) this.map.file = this.from; } - // Throw syntax error from this input error(message, line, column) { var error = new CssSyntaxError(message); @@ -58,7 +57,6 @@ export default class Input { return error; } - // Get origin position of code if source map was given origin(line, column) { if ( !this.map ) return false; var consumer = this.map.consumer(); @@ -78,7 +76,6 @@ export default class Input { return result; } - // Return path relative from source map root mapResolve(file) { return path.resolve(this.map.consumer().sourceRoot || '.', file); } diff --git a/lib/lazy-result.js b/lib/lazy-result.js index caea3c1b6..1266b9bb2 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -3,7 +3,6 @@ import Result from './result'; import parse from './parse'; import Root from './root'; -// Lazy object to process CSS only on css/map request. export default class LazyResult { constructor(processor, css, opts) { this.stringified = false; @@ -24,49 +23,38 @@ export default class LazyResult { this.result = new Result(processor, root, opts); } - // Return processor from real result get processor() { return this.result.processor; } - // Return options from real result get opts() { return this.result.opts; } - // Process CSS through processor plugins and return result CSS get css() { return this.stringify().css; } - // Process CSS through processor plugins and return result source map - // if it should be saved in separted file get map() { return this.stringify().map; } - // Process CSS through processor plugins and return result CSS AST get root() { return this.sync().root; } - // Return CSS string on any try to print toString() { return this.css; } - // Promise method, that will call onFulfilled with Result instance - // after all plugin transformations then(onFulfilled, onRejected) { return this.async().then(onFulfilled, onRejected); } - // Promise method, that will execute callback on any plugin error catch(onRejected) { return this.async().catch(onRejected); } - // Return Promise for plugin transformations async() { if ( this.processed ) { return Promise.resolve().then( () => this.stringify() ); @@ -101,7 +89,6 @@ export default class LazyResult { return this.processing; } - // Process CSS through processor plugins sync() { if ( this.processed ) return this.result; this.processed = true; @@ -122,7 +109,6 @@ export default class LazyResult { return this.result; } - // Stringify CSS AST after processing stringify() { if ( this.stringified ) return this.result; this.stringified = true; diff --git a/lib/list.js b/lib/list.js index 8270c93e9..3ed08d0c5 100644 --- a/lib/list.js +++ b/lib/list.js @@ -1,8 +1,5 @@ -// Methods to parse list and split it to array export default { - // Split string to array by separator symbols with function and inside strings - // cheching split(string, separators, last) { var array = []; var current = ''; @@ -48,24 +45,10 @@ export default { return array; }, - // Split list devided by space: - // - // list.space('a b') #=> ['a', 'b'] - // - // It check for fuction and strings: - // - // list.space('calc(1px + 1em) "b c"') #=> ['calc(1px + 1em)', '"b c"'] space(string) { return this.split(string, [' ', "\n", "\t"]); }, - // Split list devided by comma - // - // list.comma('a, b') #=> ['a', 'b'] - // - // It check for fuction and strings: - // - // list.comma('rgba(0, 0, 0, 0) white') #=> ['rgba(0, 0, 0, 0)', '"white"'] comma(string) { return this.split(string, [','], true); } diff --git a/lib/map-generator.js b/lib/map-generator.js index 4c81fdc1d..0151ce782 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -4,7 +4,6 @@ import { Base64 } from 'js-base64'; import mozilla from 'source-map'; import path from 'path'; -// All tools to generate source maps export default class MapGenerator { constructor(root, opts) { this.root = root; @@ -12,7 +11,6 @@ export default class MapGenerator { this.mapOpts = opts.map || { }; } - // Should map be generated isMap() { if ( typeof(this.opts.map) != 'undefined' ) { return !!this.opts.map; @@ -21,7 +19,6 @@ export default class MapGenerator { } } - // Return source map arrays from previous compilation step (like Sass) previous() { if ( !this.previousMaps ) { this.previousMaps = []; @@ -38,7 +35,6 @@ export default class MapGenerator { return this.previousMaps; } - // Should we inline source map to annotation comment isInline() { if ( typeof(this.mapOpts.inline) != 'undefined' ) { return this.mapOpts.inline; @@ -56,7 +52,6 @@ export default class MapGenerator { } } - // Should we set sourcesContent isSourcesContent() { if ( typeof(this.mapOpts.sourcesContent) != 'undefined' ) { return this.mapOpts.sourcesContent; @@ -68,7 +63,6 @@ export default class MapGenerator { } } - // Clear source map annotation comment clearAnnotation() { if ( this.mapOpts.annotation === false ) return; @@ -83,7 +77,6 @@ export default class MapGenerator { } } - // Set origin CSS content setSourcesContent() { var already = { }; this.root.eachInside( (node) => { @@ -98,7 +91,6 @@ export default class MapGenerator { }); } - // Apply source map from previous compilation step (like Sass) applyPrevMaps() { for ( var prev of this.previous() ) { var from = this.relative(prev.file); @@ -118,7 +110,6 @@ export default class MapGenerator { } } - // Should we add annotation comment isAnnotation() { if ( this.isInline() ) { return true ; @@ -131,7 +122,6 @@ export default class MapGenerator { } } - // Add source map annotation comment if it is needed addAnnotation() { var content; @@ -149,7 +139,6 @@ export default class MapGenerator { this.css += "\n/*# sourceMappingURL=" + content + " */"; } - // Return output CSS file path outputFile() { if ( this.opts.to ) { return this.relative(this.opts.to); @@ -160,7 +149,6 @@ export default class MapGenerator { } } - // Return Result object with map generateMap() { this.stringify(); if ( this.isSourcesContent() ) this.setSourcesContent(); @@ -174,7 +162,6 @@ export default class MapGenerator { } } - // Return path relative from output CSS file relative(file) { var from = this.opts.to ? path.dirname(this.opts.to) : '.'; @@ -190,12 +177,10 @@ export default class MapGenerator { } } - // Return path of node source for map sourcePath(node) { return this.relative(node.source.input.from); } - // Return CSS string and source map stringify() { this.css = ''; this.map = new mozilla.SourceMapGenerator({ file: this.outputFile() }); @@ -248,7 +233,6 @@ export default class MapGenerator { this.root.stringify(builder); } - // Return Result object with or without map generate() { this.clearAnnotation(); diff --git a/lib/node.js b/lib/node.js index affb56710..74a831fb7 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,6 +1,5 @@ import CssSyntaxError from './css-syntax-error'; -// Default code style const defaultStyle = { colon: ': ', indent: ' ', @@ -15,7 +14,6 @@ const defaultStyle = { commentRight: ' ' }; -// Recursivly clone objects var cloneNode = function (obj, parent) { if ( typeof(obj) != 'object' ) return obj; var cloned = new obj.constructor(); @@ -39,7 +37,6 @@ var cloneNode = function (obj, parent) { return cloned; }; -// Some common methods for all CSS nodes export default class Node { constructor(defaults = { }) { for ( var name in defaults ) { @@ -47,18 +44,6 @@ export default class Node { } } - // Return error to mark error in your plugin syntax: - // - // if ( wrongVariable ) { - // throw decl.error('Wrong variable'); - // } - // - // You can also get origin line and column from previous source map: - // - // if ( deprecatedSyntax ) { - // var error = decl.error('Deprecated syntax'); - // console.warn(error.toString()); - // } error(message) { if ( this.source ) { var pos = this.source.start; @@ -68,13 +53,6 @@ export default class Node { } } - // Remove this node from parent - // - // decl.removeSelf(); - // - // Note, that removing by index is faster: - // - // rule.each( (decl, i) => rule.remove(i) ); removeSelf() { if ( this.parent ) { this.parent.remove(this); @@ -83,18 +61,12 @@ export default class Node { return this; } - // Shortcut to insert nodes before and remove self. - // - // importNode.replace( loadedRoot ); replace(nodes) { this.parent.insertBefore(this, nodes); this.parent.remove(this); return this; } - // Return CSS string of current node - // - // decl.toString(); //=> " color: black" toString() { var result = ''; var builder = (str) => result += str; @@ -102,13 +74,6 @@ export default class Node { return result; } - // Clone current node - // - // rule.append( decl.clone() ); - // - // You can override properties while cloning: - // - // rule.append( decl.clone({ value: '0' }) ); clone(overrides = { }) { var cloned = cloneNode(this); for ( var name in overrides ) { @@ -117,40 +82,24 @@ export default class Node { return cloned; } - // Clone node and insert clone before current one. - // It accept properties to change in clone and return new node. - // - // decl.cloneBefore({ prop: '-webkit-' + del.prop }); cloneBefore(overrides = { }) { var cloned = this.clone(overrides); this.parent.insertBefore(this, cloned); return cloned; } - // Clone node and insert clone after current one. - // It accept properties to change in clone and return new node. - // - // decl.cloneAfter({ value: convertToRem(decl.value) }); cloneAfter(overrides = { }) { var cloned = this.clone(overrides); this.parent.insertAfter(this, cloned); return cloned; } - // Replace with node by another one. - // - // decl.replaceWith(fixedDecl); replaceWith(node) { this.parent.insertBefore(this, node); this.removeSelf(); return this; } - // Remove node from current place and put to end of new one. - // It will also clean node code styles, but will keep `between` if old - // parent and new parent has same root. - // - // rule.moveTo(atRule); moveTo(container) { this.cleanStyles(this.root() == container.root()); this.removeSelf(); @@ -158,11 +107,6 @@ export default class Node { return this; } - // Remove node from current place and put to before other node. - // It will also clean node code styles, but will keep `between` if old - // parent and new parent has same root. - // - // rule.moveBefore(rule.parent); moveBefore(node) { this.cleanStyles(this.root() == node.root()); this.removeSelf(); @@ -170,11 +114,6 @@ export default class Node { return this; } - // Remove node from current place and put to after other node. - // It will also clean node code styles, but will keep `between` if old - // parent and new parent has same root. - // - // rule.moveAfter(rule.parent); moveAfter(node) { this.cleanStyles(this.root() == node.root()); this.removeSelf(); @@ -182,31 +121,16 @@ export default class Node { return this; } - // Return next node in parent. If current node is last one, - // method will return `undefined`. - // - // var next = decl.next(); - // if ( next && next.prop == removePrefix(decl.prop) ) { - // decl.removeSelf(); - // } next() { var index = this.parent.index(this); return this.parent.nodes[index + 1]; } - // Return previous node in parent. If current node is first one, - // method will return `undefined`. - // - // var prev = decl.prev(); - // if ( prev && removePrefix(prev.prop) == decl.prop) ) { - // prev.removeSelf(); - // } prev() { var index = this.parent.index(this); return this.parent.nodes[index - 1]; } - // Remove `parent` node on cloning to fix circular structures toJSON() { var fixed = { }; @@ -229,7 +153,6 @@ export default class Node { return fixed; } - // Copy code style from first node with same type style(own, detect) { var value; if ( !detect ) detect = own; @@ -388,14 +311,12 @@ export default class Node { return value; } - // Return top parent , parent of parents. root() { var result = this; while ( result.parent ) result = result.parent; return result; } - // Recursivelly remove all code style properties (`before` and `between`). cleanStyles(keepBetween) { delete this.before; delete this.after; @@ -406,7 +327,6 @@ export default class Node { } } - // Use raw value if origin was not changed stringifyRaw(prop) { var value = this[prop]; var raw = this['_' + prop]; diff --git a/lib/parser.js b/lib/parser.js index bffbbdecb..33ccc4ea4 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -5,7 +5,6 @@ import AtRule from './at-rule'; import Root from './root'; import Rule from './rule'; -// CSS parser export default class Parser { constructor(input) { this.input = input; diff --git a/lib/postcss.js b/lib/postcss.js index 818ff4378..9b1d403db 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -8,12 +8,6 @@ import list from './list'; import Rule from './rule'; import Root from './root'; -// Framework for CSS postprocessors -// -// var processor = postcss(function (css) { -// // Change nodes in css -// }); -// processor.process(css) var postcss = function (...plugins) { if ( plugins.length == 1 && Array.isArray(plugins[0]) ) { plugins = plugins[0]; @@ -21,7 +15,6 @@ var postcss = function (...plugins) { return new Processor(plugins); }; -// Create PostCSS plugin postcss.plugin = function (name, initializer) { var result = function () { var transformer = initializer.apply(this, arguments); @@ -54,16 +47,12 @@ postcss.plugin = function (name, initializer) { return result; }; -// Split vendor prefix postcss.vendor = vendor; -// Compile CSS to nodes postcss.parse = parse; -// Parse lists by spaces or comma postcss.list = list; -// Nodes shortcuts postcss.comment = function (defaults) { return new Comment(defaults); }; diff --git a/lib/previous-map.js b/lib/previous-map.js index e00723f07..39c7e8a6d 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -3,7 +3,6 @@ import mozilla from 'source-map'; import path from 'path'; import fs from 'fs'; -// Detect previous map export default class PreviousMap { constructor(css, opts) { this.loadAnnotation(css); @@ -14,7 +13,6 @@ export default class PreviousMap { if ( text ) this.text = text; } - // Return SourceMapConsumer object to read map consumer() { if ( !this.consumerCache ) { this.consumerCache = new mozilla.SourceMapConsumer(this.text); @@ -22,25 +20,21 @@ export default class PreviousMap { return this.consumerCache; } - // Is map has sources content withContent() { return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); } - // Is `string` is starting with `start` startWith(string, start) { if ( !string ) return false; return string.substr(0, start.length) == start; } - // Load for annotation comment from previous compilation step loadAnnotation(css) { var match = css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//); if ( match ) this.annotation = match[1].trim(); } - // Encode different type of inline decodeInline(text) { var uri = 'data:application/json,'; var base64 = 'data:application/json;base64,'; @@ -57,7 +51,6 @@ export default class PreviousMap { } } - // Load previous map loadMap(file, prev) { if ( prev === false ) return; diff --git a/lib/processor.js b/lib/processor.js index d240934ac..b7a1564e4 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,6 @@ export default class Processor { this.plugins = plugins.map( i => this.normalize(i) ); } - // Add function as PostCSS plugins use(plugin) { plugin = this.normalize(plugin); if ( typeof(plugin) == 'object' && Array.isArray(plugin.plugins) ) { @@ -17,12 +16,10 @@ export default class Processor { return this; } - // Process CSS throw installed plugins process(css, opts = { }) { return new LazyResult(this, css, opts); } - // Return plugin function normalize(plugin) { var type = typeof(plugin); if ( (type == 'object' || type == 'function') && plugin.postcss ) { diff --git a/lib/result.js b/lib/result.js index 139f29940..6d0813eb5 100644 --- a/lib/result.js +++ b/lib/result.js @@ -1,4 +1,3 @@ -// Object with processed CSS export default class Result { constructor(processor, root, opts) { this.processor = processor; @@ -8,7 +7,6 @@ export default class Result { this.map = undefined; } - // Return CSS string on any try to print toString() { return this.css; } diff --git a/lib/root.js b/lib/root.js index 18d654213..fdf700905 100644 --- a/lib/root.js +++ b/lib/root.js @@ -4,7 +4,6 @@ import Comment from './comment'; import AtRule from './at-rule'; import Rule from './rule'; -// Root of CSS export default class Root extends Container { constructor(defaults) { this.type = 'root'; @@ -12,7 +11,6 @@ export default class Root extends Container { super(defaults); } - // Fix space when we remove first child remove(child) { child = this.index(child); @@ -23,7 +21,6 @@ export default class Root extends Container { return super.remove(child); } - // Fix spaces on insert before first rule normalize(child, sample, type) { var nodes = super.normalize(child); @@ -44,13 +41,11 @@ export default class Root extends Container { return nodes; } - // Stringify styles stringify(builder) { this.stringifyContent(builder); if ( this.after ) builder(this.after); } - // Generate processing result with optional source map toResult(opts = { }) { import LazyResult from './lazy-result'; import Processor from './processor'; diff --git a/lib/rule.js b/lib/rule.js index 853de65d0..008ae096e 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -2,7 +2,6 @@ import Declaration from './declaration'; import Container from './container'; import list from './list'; -// CSS rule like “a { }” export default class Rule extends Container { constructor(defaults) { this.type = 'rule'; @@ -10,8 +9,6 @@ export default class Rule extends Container { super(defaults); } - // Shortcut to get selectors as array - get selectors() { return list.comma(this.selector); } @@ -20,7 +17,6 @@ export default class Rule extends Container { this.selector = values.join(', '); } - // Stringify rule stringify(builder) { this.stringifyBlock(builder, this.stringifyRaw('selector')); } diff --git a/lib/vendor.js b/lib/vendor.js index 5662fed0c..2a7d798a2 100644 --- a/lib/vendor.js +++ b/lib/vendor.js @@ -1,10 +1,5 @@ -// Methods to work with vendor prefixes export default { - // Return vendor prefix from property name, if it exists - // - // vendor.prefix('-moz-box-sizing') #=> '-moz-' - // vendor.prefix('box-sizing') #=> '' prefix(prop) { if ( prop[0] == '-' ) { var sep = prop.indexOf('-', 1); @@ -14,10 +9,6 @@ export default { } }, - // Remove prefix from property name - // - // vendor.prefix('-moz-box-sizing') #=> 'box-sizing' - // vendor.prefix('box-sizing') #=> 'box-sizing' unprefixed(prop) { if ( prop[0] == '-' ) { var sep = prop.indexOf('-', 1); From 4e1e0a1687a9d5f13adcc1596af1d548d35de3ab Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 27 Feb 2015 05:23:24 +0300 Subject: [PATCH 0041/3047] Save postcssPlugin and postcssVersion to plugin function --- lib/postcss.js | 37 ++++++++++++++++++++----------------- test/postcss.js | 28 +++++++++++++++++++++------- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/lib/postcss.js b/lib/postcss.js index 9b1d403db..f2437e608 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -8,6 +8,10 @@ import list from './list'; import Rule from './rule'; import Root from './root'; +var warn = (message) => { + if ( typeof(console) != 'undefined' && console.warn ) console.warn(message); +}; + var postcss = function (...plugins) { if ( plugins.length == 1 && Array.isArray(plugins[0]) ) { plugins = plugins[0]; @@ -16,35 +20,34 @@ var postcss = function (...plugins) { }; postcss.plugin = function (name, initializer) { - var result = function () { + var creator = function () { var transformer = initializer.apply(this, arguments); - var wrap = function (css, processor) { + + var wrap = function (css, result) { try { return transformer.apply(this, arguments); } catch (e) { - var a = result.postcssVersion.split('.'); - var b = processor.version.split('.'); + var pluginVersion = wrap.postcssVersion; + var runtimeVersion = result.processor.version; + var a = pluginVersion.split('.'); + var b = runtimeVersion.split('.'); + if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - if ( typeof(console) != 'undefined' && console.warn ) { - console.warn(result.postcssPlugin + ' is based on ' + - 'PostCSS ' + result.postcssVersion + ' but you ' + - 'use it with PostCSS ' + processor.version + '. ' + - 'Maybe this is a source of error below.'); - } + warn(`${name} is based on PostCSS ${pluginVersion} ` + + `but you use it with PostCSS ${runtimeVersion}. ` + + 'Maybe this is a source of error below.') } throw e; } }; - return wrap; - }; - result.postcssPlugin = name; - result.postcssVersion = Processor.prototype.version; - result.postcss = function (css, processor) { - return result().apply(this, arguments); + wrap.postcssPlugin = name; + wrap.postcssVersion = Processor.prototype.version; + return wrap; }; - return result; + creator.postcss = creator(); + return creator; }; postcss.vendor = vendor; diff --git a/test/postcss.js b/test/postcss.js index b2e05e796..a72b74fd1 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -1,5 +1,6 @@ import Processor from '../lib/processor'; import postcss from '../lib/postcss'; +import Result from '../lib/result'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -42,36 +43,49 @@ describe('postcss()', () => { }; }); - expect(plugin.postcssPlugin).to.eql('test'); - expect(plugin.postcssVersion).to.match(/\d+.\d+.\d+/); + var func1 = postcss(plugin).plugins[0]; + expect(func1.postcssPlugin).to.eql('test'); + expect(func1.postcssVersion).to.match(/\d+.\d+.\d+/); + + var func2 = postcss(plugin()).plugins[0]; + expect(func2.postcssPlugin).to.eql(func1.postcssPlugin); + expect(func2.postcssVersion).to.eql(func1.postcssVersion); var result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }'); expect(result1.css).to.eql('a{ two: 2 }'); + var result2 = postcss(plugin).process('a{ one: 1; two: 2 }'); expect(result2.css).to.eql('a{ one: 1 }'); }); it('wraps plugin to version check', () => { + var result = (version) => { + var processor = new Processor(); + processor.version = version; + return new Result(processor, null, { }); + }; + var plugin = postcss.plugin('test', function () { return function (css) { throw 'Er'; }; }); + var func = plugin(); + func.postcssVersion = '2.1.5'; - plugin.postcssVersion = '2.1.5'; - expect( () => plugin()({ }, { version: '1.0.0' }) ).to.throws('Er'); + expect( () => func({ }, result('1.0.0')) ).to.throws('Er'); expect(console.warn.callCount).to.eql(1); expect(console.warn.args[0][0]).to.eql( 'test is based on PostCSS 2.1.5 but you use it with ' + 'PostCSS 1.0.0. Maybe this is a source of error below.'); - expect( () => plugin()({ }, { version: '3.0.0' }) ).to.throws('Er'); + expect( () => func({ }, result('3.0.0')) ).to.throws('Er'); expect(console.warn.callCount).to.eql(2); - expect( () => plugin()({ }, { version: '2.0.0' }) ).to.throws('Er'); + expect( () => func({ }, result('2.0.0')) ).to.throws('Er'); expect(console.warn.callCount).to.eql(3); - expect( () => plugin()({ }, { version: '2.1.0' }) ).to.throws('Er'); + expect( () => func({ }, result('2.1.0')) ).to.throws('Er'); expect(console.warn.callCount).to.eql(3); }); From 9006dda07ea74bfeb88102ee889151525ef2f2cb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 27 Feb 2015 14:47:50 +0300 Subject: [PATCH 0042/3047] Add postcss.plugin() docs --- API.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/API.md b/API.md index a2e0f3ec1..2ce4a0d0c 100644 --- a/API.md +++ b/API.md @@ -85,6 +85,44 @@ Arguments: * `map`: an object of [source map options]. Only `map.prev` is used in `parse`. +### `postcss.plugin(name, initializer)` + +Creates PostCSS plugin with standard API. + +```js +var replace = postcss.plugin('postcss-replace', function (opts) { + if ( !opts ) opts = { }; + var from = opts.from || 'from'; + var to = opts.to || 'to'; + return function (css, result) { + css.eachDecl(opts.from, function (decl) { + decl.prop = opts.to; + }) + }; +}); + +postcss().use(replace) // with default options +postcss().use(replace({ from: 'a', to: 'b' })) // with options +``` + +Argumments: + +* `name (string)`: plugin name. +* `initializer (function)`: function receiving options and returning + functions, that will transform CSS nodes tree. + +With this wrap add PostCSS compatibility checker. It will print a compatibility +message if you plugin will throw a error on different major/minor version +of PostCSS. + +Also wrap will save plugin name and plugin PostCSS version: + +```js +var processor = postcss([replace]); +processor.plugins[0].postcssPlugin //=> 'postcss-replace' +processor.plugins[0].postcssVersion //=> '4.1.0' +``` + ### `postcss.root(props)` Creates a new [`Root` node]. From bf501c808808efef85ecdc09661c5163b8c65851 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 27 Feb 2015 14:53:00 +0300 Subject: [PATCH 0043/3047] Remove old postcss.plugin docs --- API.md | 49 +++++++++++++------------------------------------ 1 file changed, 13 insertions(+), 36 deletions(-) diff --git a/API.md b/API.md index 2ce4a0d0c..fa341db8d 100644 --- a/API.md +++ b/API.md @@ -39,28 +39,6 @@ Arguments: You can also set plugins with the [`Processor#use`] method. See its description below for details about plugin formats. -### `postcss.plugin(name, initializer)` - -Creates PostCSS plugin. - -```js -module.exports = postcss.plugin('postcss-remove', function (opts) { - var filter = opts.prop; - return function (css, processor) { - css.eachDecl(filter, function (decl) { - decl.removeSelf(); - }); - }; -}); -``` - -Arguments: - -* `name (string)`: PostCSS plugin name. Same as in `name` property - in `package.json`. It will be saved in `plugin.postcssPlugin` property. -* `initializer (function)`: will receive plugin options and should return - functions to modify nodes in input CSS. - ### `postcss.parse(css, opts)` Parses source `css` and returns a new `Root` node, which contains @@ -90,26 +68,25 @@ Arguments: Creates PostCSS plugin with standard API. ```js -var replace = postcss.plugin('postcss-replace', function (opts) { - if ( !opts ) opts = { }; - var from = opts.from || 'from'; - var to = opts.to || 'to'; - return function (css, result) { - css.eachDecl(opts.from, function (decl) { - decl.prop = opts.to; - }) +var remove = postcss.plugin('postcss-remove', function (opts) { + var filter = opts.prop || 'z-index'; + return function (css, processor) { + css.eachDecl(filter, function (decl) { + decl.removeSelf(); + }); }; }); -postcss().use(replace) // with default options -postcss().use(replace({ from: 'a', to: 'b' })) // with options +postcss().use(remove) // with default options +postcss().use(remove({ prop: 'color' })) // with options ``` -Argumments: +Arguments: -* `name (string)`: plugin name. -* `initializer (function)`: function receiving options and returning - functions, that will transform CSS nodes tree. +* `name (string)`: PostCSS plugin name. Same as in `name` property + in `package.json`. It will be saved in `plugin.postcssPlugin` property. +* `initializer (function)`: will receive plugin options and should return + functions to modify nodes in input CSS. With this wrap add PostCSS compatibility checker. It will print a compatibility message if you plugin will throw a error on different major/minor version From 3a96c76b9ac605d9814cb1afd2ecec2d44c29295 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 27 Feb 2015 14:58:53 +0300 Subject: [PATCH 0044/3047] Better description for plugin function --- API.md | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/API.md b/API.md index fa341db8d..630b45d58 100644 --- a/API.md +++ b/API.md @@ -100,6 +100,23 @@ processor.plugins[0].postcssPlugin //=> 'postcss-replace' processor.plugins[0].postcssVersion //=> '4.1.0' ``` +Plugin function receive 2 arguments: [`Root` node] and [`Result`] instance. +Then it should mutate the passed `Root` node and return nothing, or return +a new `Root` node. + +```js +postcss.plugin('postcss-charset', function () { + return function (css, result) { + css.prepend({ name: 'charset', params: '"UTF-8"' }); + }; +}); +postcss.plugin('postcss-cleaner', function () { + return function (css, result) { + return postcss.root(); + }; +}); +``` + ### `postcss.root(props)` Creates a new [`Root` node]. @@ -203,6 +220,7 @@ Arguments: formats: * A function. PostCSS will pass the function a [`Root` node] as the first argument and current [`Processor`] instance as second. + * A wrap function created by [`postcss.plugin()`] method. * An object with a `postcss` method. PostCSS will use that method as described in #1. * Another `Processor` instance. PostCSS will copy plugins @@ -211,18 +229,6 @@ Arguments: Plugins can also be added by passing them as arguments when creating a `postcss` instance (cf. [`postcss(plugins)`]). -Plugin functions should mutate the passed `Root` node and return nothing, -or return a new `Root` node. - -```js -processor.use(function (css) { - css.prepend({ name: 'charset', params: '"UTF-8"' }); -}); -processor.use(function (css) { - return postcss.root(); -}); -``` - ### `processor.process(css, opts)` Parses source CSS and returns [`LazyResult`] instance. Because some plugins can @@ -1572,6 +1578,7 @@ This is a code style property. [`Root#toResult(opts)`]: #roottoresult-opts [`LazyResult#then()`]: #lazythenonfulfilled-onrejected [`postcss(plugins)`]: #postcssplugins +[`postcss.plugin()`]: #postcsspluginname-initializer [`Declaration` node]: #declaration-node [`Comment` node]: #comment-node [`Processor#use`]: #processoruseplugin From 38d3840cc1b2d6eded586508aa1382a30374d0c1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 27 Feb 2015 15:01:56 +0300 Subject: [PATCH 0045/3047] Fix JSHint warning --- lib/postcss.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/postcss.js b/lib/postcss.js index f2437e608..7dd9f6fd1 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -35,7 +35,7 @@ postcss.plugin = function (name, initializer) { if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { warn(`${name} is based on PostCSS ${pluginVersion} ` + `but you use it with PostCSS ${runtimeVersion}. ` + - 'Maybe this is a source of error below.') + 'Maybe this is a source of error below.'); } throw e; } From 0f57dc05d8585cb1e59ed8554da3aef8b5938b8b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 28 Feb 2015 13:34:22 +0300 Subject: [PATCH 0046/3047] Update development dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 31e29a1fe..9d11e5c2a 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,10 @@ "dependencies": { "source-map": "~0.4.0", "js-base64": "~2.1.7", - "babel": "4.5.4" + "babel": "4.6.1" }, "devDependencies": { - "concat-with-sourcemaps": "1.0.0", + "concat-with-sourcemaps": "1.0.2", "gulp-bench-summary": "0.1.0", "gulp-json-editor": "2.2.1", "jshint-stylish": "1.0.1", From 6881b51f56957beff4824679c7875c11afc2e415 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 16:26:30 +0300 Subject: [PATCH 0047/3047] Crossplatform gulpfile.js --- gulpfile.js | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 5dd19719d..21b513fbc 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,11 +1,12 @@ var gulp = require('gulp'); +var path = require('path'); var fs = require('fs-extra'); // Build gulp.task('build:clean', function (done) { - fs.remove(__dirname + '/postcss.js', function () { - fs.remove(__dirname + '/build', done); + fs.remove(path.join(__dirname, 'postcss.js'), function () { + fs.remove(path.join(__dirname, 'build'), done); }); }); @@ -42,22 +43,17 @@ gulp.task('build:package', ['build:clean'], function () { gulp.task('build', ['build:lib', 'build:docs', 'build:package']); -gulp.task('standalone', ['build:lib'], function (done) { - var builder = require('browserify')({ - basedir: __dirname + '/build/', +gulp.task('standalone', ['build'], function (done) { + var builder = require('browserify')({ + basedir: path.join(__dirname, 'build'), standalone: 'postcss' }); builder.add('./lib/postcss.js'); - var output = fs.createWriteStream(__dirname + '/postcss.js'); builder.bundle(function (error, build) { - if ( error ) { - process.stderr.write(error.toString() + "\n"); - process.exit(1); - } - - fs.removeSync(__dirname + '/build/'); - fs.writeFile(__dirname + '/postcss.js', build, done); + if ( error ) throw error.toString(); + fs.removeSync(path.join(__dirname, 'build')); + fs.writeFile(path.join(__dirname, 'postcss.js'), build, done); }); }); @@ -79,8 +75,8 @@ gulp.task('lint', function () { // Benchmark gulp.task('bench:clean', function (done) { - fs.remove(__dirname + '/benchmark/results', function () { - fs.remove(__dirname + '/benchmark/cache', done); + fs.remove(path.join(__dirname, '/benchmark/results'), function () { + fs.remove(path.join(__dirname, '/benchmark/cache'), done); }); }); @@ -129,7 +125,6 @@ gulp.task('bench:parsers', ['build', 'bench:bootstrap'], function () { gulp.task('integration', ['build:lib', 'build:package'], function (done) { var gutil = require('gulp-util'); - var path = require('path'); var postcss = require('./build/lib/postcss'); var styles = require('./tasks/styles'); @@ -165,7 +160,7 @@ gulp.task('integration', ['build:lib', 'build:package'], function (done) { return error('Parsing error: ' + e.message + e.stack); } - if ( processed != css ) { + if ( processed !== css ) { fs.writeFileSync('origin.css', css); fs.writeFileSync('fail.css', processed); return error('Output is not equal input'); @@ -188,14 +183,15 @@ gulp.task('test', function () { gulp.task('cases', function () { var postcss = require('./'); - var cases = __dirname + '/test/cases/'; + var cases = path.join(__dirname, 'test', 'cases'); - fs.readdirSync(cases).forEach(function (file) { - if ( !file.match(/\.css$/) ) return; - var css = fs.readFileSync(cases + file); - var root = postcss.parse(css, { from: '/' + file }); + fs.readdirSync(cases).forEach(function (name) { + if ( !name.match(/\.css$/) ) return; + var css = fs.readFileSync(path.join(cases, name)); + var root = postcss.parse(css, { from: '/' + name }); var json = JSON.stringify(root, null, 4); - fs.writeFileSync(cases + file.replace(/\.css$/, '.json'), json + '\n'); + var file = path.join(cases, name.replace(/\.css$/, '.json')); + fs.writeFileSync(file, json + '\n'); }); }); From 667bfe62671b2d56da7bd800f91a14ac7a463f65 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 16:41:04 +0300 Subject: [PATCH 0048/3047] Update Babel --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9d11e5c2a..69fbc1f62 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "source-map": "~0.4.0", "js-base64": "~2.1.7", - "babel": "4.6.1" + "babel": "4.6.3" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From cdda92cb70bfb39bcfb4f0db30848d2953d5b61d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 16:44:39 +0300 Subject: [PATCH 0049/3047] Cleanup running plugins code --- lib/lazy-result.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 1266b9bb2..ba83f7d02 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -66,13 +66,11 @@ export default class LazyResult { this.processing = this.processor.plugins.map( (plugin) => { return new Promise( (resolve, reject) => { - var returned = plugin(this.result.root, this.result); - if ( returned instanceof Promise ) { - returned - .then( () => resolve() ) - .catch( (error) => reject(error) ); + var promise = this.run(plugin); + if ( promise instanceof Promise ) { + promise.then( () => resolve() ) + .catch( (error) => reject(error) ); } else { - if ( returned instanceof Root ) this.result.root = returned; resolve(); } @@ -98,17 +96,24 @@ export default class LazyResult { } for ( var plugin of this.result.processor.plugins ) { - var returned = plugin(this.result.root, this.result); - if ( returned instanceof Promise ) { + var promise = this.run(plugin); + if ( promise instanceof Promise ) { throw 'Use process(css).then(cb) to work with async plugins'; - } else if ( returned instanceof Root ) { - this.result.root = returned; } } return this.result; } + run(plugin) { + var returned = plugin(this.result.root, this.result); + if ( returned instanceof Root ) { + this.result.root = returned; + } else { + return returned; + } + } + stringify() { if ( this.stringified ) return this.result; this.stringified = true; From 78874385582789236558f8ccab2baa21e6848027 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 16:57:02 +0300 Subject: [PATCH 0050/3047] Move compatibility warning to LazyResult#run --- lib/lazy-result.js | 24 +++++++++++++++++++++++- lib/postcss.js | 29 +++-------------------------- test/postcss.js | 20 ++++++++++---------- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index ba83f7d02..1e7928168 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -3,6 +3,10 @@ import Result from './result'; import parse from './parse'; import Root from './root'; +var warn = (message) => { + if ( typeof(console) != 'undefined' && console.warn ) console.warn(message); +}; + export default class LazyResult { constructor(processor, css, opts) { this.stringified = false; @@ -106,7 +110,25 @@ export default class LazyResult { } run(plugin) { - var returned = plugin(this.result.root, this.result); + try { + var returned = plugin(this.result.root, this.result); + } catch (error) { + if ( plugin.postcssVersion ) { + var pluginName = plugin.postcssPlugin; + var pluginVersion = plugin.postcssVersion; + var runtimeVersion = this.result.processor.version; + var a = pluginVersion.split('.'); + var b = runtimeVersion.split('.'); + + if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { + warn(`${pluginName} is based on PostCSS ${pluginVersion} ` + + `but you use it with PostCSS ${runtimeVersion}. ` + + 'Maybe this is a source of error below.'); + } + } + throw error; + } + if ( returned instanceof Root ) { this.result.root = returned; } else { diff --git a/lib/postcss.js b/lib/postcss.js index 7dd9f6fd1..c622a1234 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -8,10 +8,6 @@ import list from './list'; import Rule from './rule'; import Root from './root'; -var warn = (message) => { - if ( typeof(console) != 'undefined' && console.warn ) console.warn(message); -}; - var postcss = function (...plugins) { if ( plugins.length == 1 && Array.isArray(plugins[0]) ) { plugins = plugins[0]; @@ -22,28 +18,9 @@ var postcss = function (...plugins) { postcss.plugin = function (name, initializer) { var creator = function () { var transformer = initializer.apply(this, arguments); - - var wrap = function (css, result) { - try { - return transformer.apply(this, arguments); - } catch (e) { - var pluginVersion = wrap.postcssVersion; - var runtimeVersion = result.processor.version; - var a = pluginVersion.split('.'); - var b = runtimeVersion.split('.'); - - if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - warn(`${name} is based on PostCSS ${pluginVersion} ` + - `but you use it with PostCSS ${runtimeVersion}. ` + - 'Maybe this is a source of error below.'); - } - throw e; - } - }; - - wrap.postcssPlugin = name; - wrap.postcssVersion = Processor.prototype.version; - return wrap; + transformer.postcssPlugin = name; + transformer.postcssVersion = Processor.prototype.version; + return transformer; }; creator.postcss = creator(); diff --git a/test/postcss.js b/test/postcss.js index a72b74fd1..ab2a14c12 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -59,12 +59,6 @@ describe('postcss()', () => { }); it('wraps plugin to version check', () => { - var result = (version) => { - var processor = new Processor(); - processor.version = version; - return new Result(processor, null, { }); - }; - var plugin = postcss.plugin('test', function () { return function (css) { throw 'Er'; @@ -73,19 +67,25 @@ describe('postcss()', () => { var func = plugin(); func.postcssVersion = '2.1.5'; - expect( () => func({ }, result('1.0.0')) ).to.throws('Er'); + var processBy = (version) => { + var processor = new Processor([func]); + processor.version = version; + processor.process('a{}').css; + }; + + expect( () => processBy('1.0.0') ).to.throws('Er'); expect(console.warn.callCount).to.eql(1); expect(console.warn.args[0][0]).to.eql( 'test is based on PostCSS 2.1.5 but you use it with ' + 'PostCSS 1.0.0. Maybe this is a source of error below.'); - expect( () => func({ }, result('3.0.0')) ).to.throws('Er'); + expect( () => processBy('3.0.0') ).to.throws('Er'); expect(console.warn.callCount).to.eql(2); - expect( () => func({ }, result('2.0.0')) ).to.throws('Er'); + expect( () => processBy('2.0.0') ).to.throws('Er'); expect(console.warn.callCount).to.eql(3); - expect( () => func({ }, result('2.1.0')) ).to.throws('Er'); + expect( () => processBy('2.1.0') ).to.throws('Er'); expect(console.warn.callCount).to.eql(3); }); From 932aa64ea71dec206fc163cfe805e1680b443efc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 16:58:18 +0300 Subject: [PATCH 0051/3047] Clean API.md --- API.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/API.md b/API.md index 630b45d58..e41a90d0b 100644 --- a/API.md +++ b/API.md @@ -88,10 +88,6 @@ Arguments: * `initializer (function)`: will receive plugin options and should return functions to modify nodes in input CSS. -With this wrap add PostCSS compatibility checker. It will print a compatibility -message if you plugin will throw a error on different major/minor version -of PostCSS. - Also wrap will save plugin name and plugin PostCSS version: ```js From 1fcd2b20e4cd78ddda40a2f3423771fdfaa5a977 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 17:02:04 +0300 Subject: [PATCH 0052/3047] Move PostCSS compatibity tests to Processor tests --- test/postcss.js | 39 --------------------------------------- test/processor.js | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/test/postcss.js b/test/postcss.js index ab2a14c12..219bccabe 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -3,7 +3,6 @@ import postcss from '../lib/postcss'; import Result from '../lib/result'; import { expect } from 'chai'; -import sinon from 'sinon'; describe('postcss()', () => { @@ -26,13 +25,6 @@ describe('postcss()', () => { }); describe('.plugin()', () => { - beforeEach( () => { - sinon.stub(console, 'warn'); - }); - - afterEach( () => { - console.warn.restore(); - }); it('creates plugin', () => { var plugin = postcss.plugin('test', (filter) => { @@ -58,37 +50,6 @@ describe('postcss()', () => { expect(result2.css).to.eql('a{ one: 1 }'); }); - it('wraps plugin to version check', () => { - var plugin = postcss.plugin('test', function () { - return function (css) { - throw 'Er'; - }; - }); - var func = plugin(); - func.postcssVersion = '2.1.5'; - - var processBy = (version) => { - var processor = new Processor([func]); - processor.version = version; - processor.process('a{}').css; - }; - - expect( () => processBy('1.0.0') ).to.throws('Er'); - expect(console.warn.callCount).to.eql(1); - expect(console.warn.args[0][0]).to.eql( - 'test is based on PostCSS 2.1.5 but you use it with ' + - 'PostCSS 1.0.0. Maybe this is a source of error below.'); - - expect( () => processBy('3.0.0') ).to.throws('Er'); - expect(console.warn.callCount).to.eql(2); - - expect( () => processBy('2.0.0') ).to.throws('Er'); - expect(console.warn.callCount).to.eql(3); - - expect( () => processBy('2.1.0') ).to.throws('Er'); - expect(console.warn.callCount).to.eql(3); - }); - }); describe('.parse()', () => { diff --git a/test/processor.js b/test/processor.js index 27c4a7f92..81ef4e962 100644 --- a/test/processor.js +++ b/test/processor.js @@ -1,11 +1,13 @@ import CssSyntaxError from '../lib/css-syntax-error'; import LazyResult from '../lib/lazy-result'; import Processor from '../lib/processor'; +import postcss from '../lib/postcss'; import Result from '../lib/result'; import parse from '../lib/parse'; import Root from '../lib/root'; import { expect } from 'chai'; +import sinon from 'sinon'; import path from 'path'; describe('Processor', () => { @@ -53,6 +55,14 @@ describe('Processor', () => { }); describe('process()', () => { + beforeEach( () => { + sinon.stub(console, 'warn'); + }); + + afterEach( () => { + console.warn.restore(); + }); + var processor = new Processor([ (css) => { css.eachRule( (rule) => { if ( !rule.selector.match(/::(before|after)/) ) return; @@ -245,6 +255,37 @@ describe('Processor', () => { }).to.throw(/async/); }); + it('checks plugin compatibility', () => { + var plugin = postcss.plugin('test', function () { + return function (css) { + throw 'Er'; + }; + }); + var func = plugin(); + func.postcssVersion = '2.1.5'; + + var processBy = (version) => { + var processor = new Processor([func]); + processor.version = version; + processor.process('a{}').css; + }; + + expect( () => processBy('1.0.0') ).to.throws('Er'); + expect(console.warn.callCount).to.eql(1); + expect(console.warn.args[0][0]).to.eql( + 'test is based on PostCSS 2.1.5 but you use it with ' + + 'PostCSS 1.0.0. Maybe this is a source of error below.'); + + expect( () => processBy('3.0.0') ).to.throws('Er'); + expect(console.warn.callCount).to.eql(2); + + expect( () => processBy('2.0.0') ).to.throws('Er'); + expect(console.warn.callCount).to.eql(3); + + expect( () => processBy('2.1.0') ).to.throws('Er'); + expect(console.warn.callCount).to.eql(3); + }); + }); describe('version', () => { From d1f7dac23d0779b977c5cd038bf02f5207e5d835 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 17:08:37 +0300 Subject: [PATCH 0053/3047] Add Result#lastPlugin --- lib/lazy-result.js | 2 ++ test/processor.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 1e7928168..b99acf8c6 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -110,6 +110,8 @@ export default class LazyResult { } run(plugin) { + this.result.lastPlugin = plugin; + try { var returned = plugin(this.result.root, this.result); } catch (error) { diff --git a/test/processor.js b/test/processor.js index 81ef4e962..023b81850 100644 --- a/test/processor.js +++ b/test/processor.js @@ -286,6 +286,21 @@ describe('Processor', () => { expect(console.warn.callCount).to.eql(3); }); + it('sets last plugin to result', (done) => { + var plugin1 = function (css, result) { + expect(result.lastPlugin).to.equal(plugin1); + }; + var plugin2 = function (css, result) { + expect(result.lastPlugin).to.equal(plugin2); + }; + + var processor = new Processor([plugin1, plugin2]); + processor.process('a{}').then( (result) => { + expect(result.lastPlugin).to.equal(plugin2); + done(); + }); + }); + }); describe('version', () => { From 8c0177fde01e6860941f89e54a72005491934ad0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 1 Mar 2015 17:09:47 +0300 Subject: [PATCH 0054/3047] Fix variable scope --- lib/lazy-result.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index b99acf8c6..7abc09656 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -112,8 +112,9 @@ export default class LazyResult { run(plugin) { this.result.lastPlugin = plugin; + var returned; try { - var returned = plugin(this.result.root, this.result); + returned = plugin(this.result.root, this.result); } catch (error) { if ( plugin.postcssVersion ) { var pluginName = plugin.postcssPlugin; From f6fdad7c5953517e0711333def5d18aee418b322 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 01:55:50 +0300 Subject: [PATCH 0055/3047] Add Result#messages --- API.md | 116 +++++++++++++++++++++++++++++++++++++--- lib/css-syntax-error.js | 2 - lib/lazy-result.js | 8 +++ lib/result.js | 18 +++++++ test/lazy-result.js | 18 +++++++ test/result.js | 62 +++++++++++++++++++++ 6 files changed, 215 insertions(+), 9 deletions(-) create mode 100644 test/result.js diff --git a/API.md b/API.md index e41a90d0b..250be2e75 100644 --- a/API.md +++ b/API.md @@ -314,7 +314,7 @@ Alias for `LazyResult#css` property. ### `lazy.css` Processes input CSS through synchronous plugins, stringify `Root` -and returns [`Result#css`](#resultcss). +and returns [`Result#css`]. ```js processor.process(css).css; @@ -332,8 +332,7 @@ postcss([cssnext]).then(function (result) { ### `lazy.map` -Processes input CSS through synchronous plugins and returns -[`Result#map`](#resultmap). +Processes input CSS through synchronous plugins and returns [`Result#map`]. ```js if ( result.map ) { @@ -368,6 +367,36 @@ postcss([cssnext]).then(function (result) { }); ``` +### `lazy.warnings()` + +Processes input CSS through synchronous plugins and call [`Result#warnings()`]. + +```js +postcss([cssnext]).warnings().forEach(function (message) { + console.warn(message.text); +}); +``` + +This property will work only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should use +[`LazyResult#then()`] instead. + +```js +postcss([cssnext]).then(function (result) { + result.warnings().forEach(function (message) { + console.warn(message.text); + }); +}); +``` + +### `lazy.messages` + +Processes input CSS through synchronous plugins and returns [`Result#messages`]. + +This property will work only with synchronous plugins. If processor contains +any asynchronous plugin it will throw a error. You should use +[`LazyResult#then()`] instead. + ### `lazy.processor` Returns a [`Processor`] instance, that will be used for CSS transformations. @@ -402,7 +431,56 @@ var result2 = postcss.parse(css).toResult(); ### `result.toString()` -Alias for `Result#css` property. +Alias for [`Result#css`] property. + +### `result.warn(text, opts)` + +Adds warning to [`Result#messages`]. + +```js +var plugin = postcss.plugin('postcss-important-warning', function () { + return function (css, result) { + css.eachDecl(function (decl) { + if ( decl.important ) { + result.warn('Try to avoid !important', { node: decl }); + } + }); + } +}); + +postcss([plugin]).process(css).then(function (result) { + result.warnings() //=> [{ + // plugin: 'postcss-important-warning', + // text: 'Try to avoid !important' + // node: { type: 'decl', … } + // }] +}) +``` + +Arguments: + +* `text (string)`: warning message. It will be used in `text` property of + message object. +* `opts (object) optional`: properties to message object. + * `node`: CSS node, that was a source of warning. + * `plugin`: name of plugin created this warning. `Result#warn()` will fill it + automatically by `plugin.postcssPlugin` value. + +### `result.warnings()` + +Returns warnings from plugins. It just a filters [Result#messages] by `type`. + +```js +result.warnings().forEach(function (message) { + console.log(message.text); +}); +``` + +Each warning has properties: + +* `text (string)`: warning message. +* `plugin (string)`: name of plugin created this warning. +* `node (Node) optional`: source of warning. ### `result.css` @@ -443,6 +521,29 @@ Contains [`Root` node] after all transformations. root.toResult().root == root; ``` +### `result.messages` + +Contains messages from plugins. For example, warnings or custom messages +to pluugins communication. + +Each message should has `type` and `plugin` properties. + +```js +postcss.plugin('postcss-min-browser', function () { + return function (css, result) { + var browsers = detectMinBrowsersByCanIUse(css); + result.messages.push({ + type: 'min-browser', + plugin: 'postcss-min-browser', + browsers: browsers + }); + } +}) +``` + +You can add warning by [`Result#warn()`](#resultwarn) and get all warnings +by [`Result#warnings()`](#resultwarnings) method. + ### `result.processor` Returns a [`Processor`] instance, that was used for this transformations. @@ -1576,13 +1677,14 @@ This is a code style property. [`postcss(plugins)`]: #postcssplugins [`postcss.plugin()`]: #postcsspluginname-initializer [`Declaration` node]: #declaration-node -[`Comment` node]: #comment-node +[`Result#messages`]: #resultmessages [`Processor#use`]: #processoruseplugin +[`Comment` node]: #comment-node [`LazyResult`]: #lazy-result-class [`AtRule` node]: #atrule-node [`from` option]: #processorprocesscss-opts -[`result.map`]: #resultmap -[`result.css`]: #resultcss +[`Result#map`]: #resultmap +[`Result#css`]: #resultcss [`Root` node]: #root-node [`Rule` node]: #rule-node [`Processor`]: #processor-class diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 6e0500183..1438706cd 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,7 +1,5 @@ import PreviousMap from './previous-map'; -import path from 'path'; - export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file) { this.reason = message; diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 7abc09656..6a4ee0a4b 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -47,6 +47,14 @@ export default class LazyResult { return this.sync().root; } + get messages() { + return this.sync().messages; + } + + warnings() { + return this.sync().warnings(); + } + toString() { return this.css; } diff --git a/lib/result.js b/lib/result.js index 6d0813eb5..157f2b403 100644 --- a/lib/result.js +++ b/lib/result.js @@ -1,6 +1,7 @@ export default class Result { constructor(processor, root, opts) { this.processor = processor; + this.messages = []; this.root = root; this.opts = opts; this.css = undefined; @@ -11,4 +12,21 @@ export default class Result { return this.css; } + warn(text, data = { }) { + data.type = 'warning'; + data.text = text; + + if ( !data.plugin ) { + if ( this.lastPlugin && this.lastPlugin.postcssPlugin ) { + data.plugin = this.lastPlugin.postcssPlugin; + } + } + + this.messages.push(data); + } + + warnings() { + return this.messages.filter( i => i.type == 'warning' ); + } + } diff --git a/test/lazy-result.js b/test/lazy-result.js index ad978043e..cd2f9abc2 100644 --- a/test/lazy-result.js +++ b/test/lazy-result.js @@ -47,4 +47,22 @@ describe('LazyResult', () => { }); + describe('warnings()', () => { + + it('contains warnings', () => { + var result = new LazyResult(processor, 'a {}', { }); + expect(result.warnings()).to.eql([]); + }); + + }); + + describe('messages', () => { + + it('contains messages', () => { + var result = new LazyResult(processor, 'a {}', { }); + expect(result.messages).to.eql([]); + }); + + }); + }); diff --git a/test/result.js b/test/result.js new file mode 100644 index 000000000..9c5a2fb72 --- /dev/null +++ b/test/result.js @@ -0,0 +1,62 @@ +import postcss from '../lib/postcss'; +import Result from '../lib/result'; + +import { expect } from 'chai'; + +describe('Result', () => { + + describe('toString()', () => { + + it('stringifies', () => { + var result = new Result(); + result.css = 'a{}' + expect('' + result).to.eql(result.css); + }); + + }); + + describe('warn()', () => { + + it('adds warning', () => { + var plugin = postcss.plugin('test-plugin', () => { + return (css, result) => { + result.warn('test', { node: css.first }); + } + }); + var result = postcss([plugin]).process('a{}').sync(); + + expect(result.messages).to.eql([{ + plugin: 'test-plugin', + type: 'warning', + text: 'test', + node: result.root.first + }]); + }); + + it('allows to override plugin', () => { + var plugin = postcss.plugin('test-plugin', () => { + return (css, result) => { + result.warn('test', { plugin: 'test-plugin#one' }); + } + }); + var result = postcss([plugin]).process('a{}').sync(); + + expect(result.messages[0].plugin).to.eql('test-plugin#one'); + }); + + }); + + describe('warnings()', () => { + + it('returns only warnings', () => { + var result = new Result(); + result.messages = [{ type: 'warning', text: 'a' }, + { type: 'custom' }, + { type: 'warning', text: 'b' }]; + expect(result.warnings()).to.eql([{ type: 'warning', text: 'a' }, + { type: 'warning', text: 'b' }]); + }); + + }); + +}); From 4dfb18521504a4c6886e89e521d1f8228d851b3a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 02:13:50 +0300 Subject: [PATCH 0056/3047] Fix JSHint warning --- test/result.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/result.js b/test/result.js index 9c5a2fb72..a5ddbb608 100644 --- a/test/result.js +++ b/test/result.js @@ -9,7 +9,7 @@ describe('Result', () => { it('stringifies', () => { var result = new Result(); - result.css = 'a{}' + result.css = 'a{}'; expect('' + result).to.eql(result.css); }); @@ -21,7 +21,7 @@ describe('Result', () => { var plugin = postcss.plugin('test-plugin', () => { return (css, result) => { result.warn('test', { node: css.first }); - } + }; }); var result = postcss([plugin]).process('a{}').sync(); @@ -37,7 +37,7 @@ describe('Result', () => { var plugin = postcss.plugin('test-plugin', () => { return (css, result) => { result.warn('test', { plugin: 'test-plugin#one' }); - } + }; }); var result = postcss([plugin]).process('a{}').sync(); From 8c2e68f5acaebb22b27f055439acb26fc1e13c40 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 02:19:51 +0300 Subject: [PATCH 0057/3047] Fix syntax error source map test --- package.json | 8 ++++---- test/css-syntax-error.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 69fbc1f62..c6a9db14a 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,9 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "source-map": "~0.4.0", + "source-map": "~0.4.1", "js-base64": "~2.1.7", - "babel": "4.6.3" + "babel": "4.6.6" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -29,7 +29,7 @@ "node-sass": "2.0.1", "gulp-util": "3.0.4", "execSync": "1.0.2", - "fs-extra": "0.16.3", + "fs-extra": "0.16.4", "gonzales": "1.0.7", "through2": "0.6.3", "stylecow": "4.2.4", @@ -43,7 +43,7 @@ "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.4.0", - "chai": "2.1.0" + "chai": "2.1.1" }, "scripts": { "test": "gulp" diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 377aec1ea..12f6f49b4 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -68,7 +68,7 @@ describe('CssSyntaxError', () => { it('uses source map', () => { var concat = new Concat(true, 'all.css'); concat.add('a.css', 'a { }\n'); - concat.add('b.css', 'b {\n'); + concat.add('b.css', '\nb {\n'); var error = parseError(concat.content, { from: 'build/all.css', @@ -76,14 +76,14 @@ describe('CssSyntaxError', () => { }); expect(error.file).to.eql(path.resolve('b.css')); - expect(error.line).to.eql(1); + expect(error.line).to.eql(2); expect(error.source).to.not.exist; expect(error.generated).to.eql({ file: path.resolve('build/all.css'), - line: 2, + line: 3, column: 1, - source: 'a { }\nb {\n' + source: 'a { }\n\nb {\n' }); }); From 65cbd568999b8fa504f1aa8a0ce5a8f1f9759dc8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 02:31:44 +0300 Subject: [PATCH 0058/3047] Better plugins docs --- API.md | 50 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/API.md b/API.md index 250be2e75..9aec74aef 100644 --- a/API.md +++ b/API.md @@ -97,22 +97,50 @@ processor.plugins[0].postcssVersion //=> '4.1.0' ``` Plugin function receive 2 arguments: [`Root` node] and [`Result`] instance. -Then it should mutate the passed `Root` node and return nothing, or return -a new `Root` node. +Then it should mutate the passed `Root` node, or you can create new `Root` node +and put it to `result.root` property. ```js -postcss.plugin('postcss-charset', function () { +postcss.plugin('postcss-cleaner', function () { return function (css, result) { - css.prepend({ name: 'charset', params: '"UTF-8"' }); - }; + result.root = postcss.root(); + }; }); -postcss.plugin('postcss-cleaner', function () { +``` + +Asynchronous pluugin should return `Promise` instance. + +```js +postcss.plugin('postcss-import', function () { + return function (css, result) { + return new Promise(function (resolve, reject) { + fs.readFile('base.css', function (base) { + css.prepend(base); + resolve(); + }) + }); + }; +}); +``` + +You can add warnings by [`Result#warn()`] method. + +```js +postcss.plugin('postcss-caniuse-test', function () { return function (css, result) { - return postcss.root(); + css.eachDecl(function (decl) { + if ( !caniuse.support(decl.prop) ) { + result.warn( + 'Some of browsers does not support ' + decl.prop, + { node: decl }); + } + }); }; }); ``` +You can send some data to next plugins by [`Result#messages`] array. + ### `postcss.root(props)` Creates a new [`Root` node]. @@ -214,17 +242,19 @@ Arguments: * `plugin (function|#postcss|Processor)`: PostCSS plugin. I can be in three formats: + * A plugin created by [`postcss.plugin()`] method. * A function. PostCSS will pass the function a [`Root` node] - as the first argument and current [`Processor`] instance as second. - * A wrap function created by [`postcss.plugin()`] method. + as the first argument and current [`Result`] instance as second. * An object with a `postcss` method. PostCSS will use that method - as described in #1. + as described in #2. * Another `Processor` instance. PostCSS will copy plugins from that instance to this one. Plugins can also be added by passing them as arguments when creating a `postcss` instance (cf. [`postcss(plugins)`]). +Asynchronous pluugin should return `Promise` instance. + ### `processor.process(css, opts)` Parses source CSS and returns [`LazyResult`] instance. Because some plugins can From 788eee789b44a1b3fb24e049a97cce9f57f7efd1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 20:59:27 +0300 Subject: [PATCH 0059/3047] Always set error.generated --- lib/input.js | 14 +++++++------- test/css-syntax-error.js | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/input.js b/lib/input.js index 6f0201826..3a539ead4 100644 --- a/lib/input.js +++ b/lib/input.js @@ -42,18 +42,18 @@ export default class Input { if ( origin ) { error = new CssSyntaxError(message, origin.line, origin.column, origin.source, origin.file); - - error.generated = { - line: line, - column: column, - source: this.css - }; - if ( this.file ) error.generated.file = this.file; } else { error = new CssSyntaxError(message, line, column, this.css, this.file); } + error.generated = { + line: line, + column: column, + source: this.css + }; + if ( this.file ) error.generated.file = this.file; + return error; } diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 12f6f49b4..104df78ae 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -31,6 +31,12 @@ describe('CssSyntaxError', () => { expect(error.line).to.eql(2); expect(error.column).to.eql(12); expect(error.source).to.eql('a {\n content: "\n}'); + + expect(error.generated).to.eql({ + line: error.line, + column: error.column, + source: error.source + }); }); it('has stack trace', () => { From 6a43f7b367a197a400413b69b3436ebb3715b3c3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 21:05:15 +0300 Subject: [PATCH 0060/3047] Add CssSyntaxError#plugin --- lib/css-syntax-error.js | 6 ++++-- lib/input.js | 6 +++--- lib/node.js | 4 ++-- test/css-syntax-error.js | 7 +++++++ 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 1438706cd..74716fbde 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,10 +1,11 @@ import PreviousMap from './previous-map'; export default class CssSyntaxError extends SyntaxError { - constructor(message, line, column, source, file) { + constructor(message, line, column, source, file, plugin) { this.reason = message; - this.message = file ? file : ''; + this.message = plugin ? plugin + ':' : ''; + this.message += file ? file : ''; if ( typeof(line) != 'undefined' && typeof(column) != 'undefined' ) { this.line = line; this.column = column; @@ -15,6 +16,7 @@ export default class CssSyntaxError extends SyntaxError { if ( file ) this.file = file; if ( source ) this.source = source; + if ( plugin ) this.plugin = plugin; if ( Error.captureStackTrace ) { Error.captureStackTrace(this, CssSyntaxError); diff --git a/lib/input.js b/lib/input.js index 3a539ead4..d127c46c8 100644 --- a/lib/input.js +++ b/lib/input.js @@ -35,16 +35,16 @@ export default class Input { if ( this.map ) this.map.file = this.from; } - error(message, line, column) { + error(message, line, column, opts = { }) { var error = new CssSyntaxError(message); var origin = this.origin(line, column); if ( origin ) { error = new CssSyntaxError(message, origin.line, origin.column, - origin.source, origin.file); + origin.source, origin.file, opts.plugin); } else { error = new CssSyntaxError(message, line, column, - this.css, this.file); + this.css, this.file, opts.plugin); } error.generated = { diff --git a/lib/node.js b/lib/node.js index 74a831fb7..e9c7fa387 100644 --- a/lib/node.js +++ b/lib/node.js @@ -44,10 +44,10 @@ export default class Node { } } - error(message) { + error(message, opts = { }) { if ( this.source ) { var pos = this.source.start; - return this.source.input.error(message, pos.line, pos.column); + return this.source.input.error(message, pos.line, pos.column, opts); } else { return new CssSyntaxError(message); } diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 104df78ae..d932c0ffd 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -108,4 +108,11 @@ describe('CssSyntaxError', () => { expect(error.file).to.eql(path.resolve('build/all.css')); }); + it('set source plugin', () => { + var error = parse('a{}').first.error('Error', { plugin: 'test' }); + expect(error.plugin).to.eql('test'); + expect(error.toString()).to.match( + /^CssSyntaxError: test::1:1: Error/); + }); + }); From 6136c0af0d5f5cc98210faba156899190ca00bb3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 5 Mar 2015 21:55:49 +0300 Subject: [PATCH 0061/3047] Add CssSyntaxError docs --- API.md | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 157 insertions(+), 10 deletions(-) diff --git a/API.md b/API.md index 9aec74aef..3e2591474 100644 --- a/API.md +++ b/API.md @@ -4,6 +4,7 @@ * [Processor class](#processor-class) * [LazyResult class](#lazy-result-class) * [Result class](#result-class) +* [CssSyntaxError class](#csssyntaxerror-class) * [Vendor module](#vendor-module) * [List module](#list-module) * [Input class](#input-class) @@ -587,6 +588,152 @@ call that produced this `Result` instance. root.toResult(opts).opts == opts; ``` +## `CssSyntaxError` class + +CSS parser throw this error on broken CSS. + +```js +postcss.parse('a{') //=> CssSyntaxError +``` + +Custom parsers can throw this error on broken own custom syntax +by [`Node#error()`](#nodeerrormessage) method. + +```js +throw node.error('Unknown variable', { plugin: 'postcss-vars' }); +``` + +### `error.toString()` + +Returns string with error position, message and source code of broken part. + +```js +error.toString() //=> CssSyntaxError: a.css:1:1: Unclosed block + // a { + // ^ +``` + +### `error.highlight(color)` + +Returns a few lines of CSS source, which generates this error. + +```js +error.highlight() //=> a { + // bad + // ^ + // } +``` + +Arguments: + +* `color (boolean) optional`: should arrow will be colored to red by terminal + color codes. By default, PostCSS will use `process.stdout.isTTY` and + `process.env.NODE_DISABLE_COLORS`. + +### `error.message` + +Contains full error text by GNU error format. + +```js +error.message //=> 'a.css:1:1: Unclosed block' +``` + +### `error.reason` + +Contains only error description. + +```js +error.reason //=> 'Unclosed block' +``` + +### `error.plugin` + +Contains PostCSS plugin name if error came not from CSS parser. + +```js +error.plugin //=> 'postcss-vars' +``` + +### `error.file` + +Contains absolute path to broken file, if use set `from` option to parser. + +```js +error.file //=> 'a.sass' +``` + +PostCSS will use input source map to detect origin place of error. If you wrote +Sass file, then compile it to CSS and put to PostCSS, PostCSS will show +position in origin Sass file. + +If you need position in PostCSS input (for example, to debug previous compiler), +you can use `error.generated.file`. + +```js +error.file //=> 'a.sass' +error.generated.file //=> 'a.css' +``` + +### `error.line` + +Contains source line of error. + +```js +error.line //=> 2 +``` + +PostCSS will use input source map to detect origin place of error. If you wrote +Sass file, then compile it to CSS and put to PostCSS, PostCSS will show +position in origin Sass file. + +If you need position in PostCSS input (for example, to debug previous compiler), +you can use `error.generated.line`. + +```js +error.line //=> 2 +error.generated.line //=> 4 +``` + +### `error.column` + +Contains source column of error. + +```js +error.column //=> 1 +``` + +PostCSS will use input source map to detect origin place of error. If you wrote +Sass file, then compile it to CSS and put to PostCSS, PostCSS will show +position in origin Sass file. + +If you need position in PostCSS input (for example, to debug previous compiler), +you can use `error.generated.column`. + +```js +error.column //=> 1 +error.generated.column //=> 4 +``` + +### `error.source` + +Contains source code of broken file. + +```js +error.source //=> 'a {} b {' +``` + +PostCSS will use input source map to detect origin place of error. If you wrote +Sass file, then compile it to CSS and put to PostCSS, PostCSS will show +position in origin Sass file. + +If you need position in PostCSS input (for example, to debug previous compiler), +you can use `error.generated.source`. + +```js +error.source //=> 'a { b {} }' +error.generated.column //=> 'a b { }' +``` + ## Vendor module Contains helpers for working with vendor prefixes. @@ -773,9 +920,9 @@ Returns a CSS string representing the node. postcss.rule({ selector: 'a' }).toString() //=> 'a {}'' ``` -### `node.error(message)` +### `node.error(message, opts)` -Returns a `CssSyntaxError` instance that presents the original position +Returns a [`CssSyntaxError`] instance that presents the original position of the node in the source, showing line and column numbers and also a small excerpt to facilitate debugging. @@ -787,23 +934,22 @@ This method produces very useful error messages. ```js if ( !variables[name] ) { - throw decl.error('Unknown variable ' + name); - // CssSyntaxError: a.sass:4:3: Unknown variable $black + throw decl.error('Unknown variable ' + name, { plugin: 'postcss-vars' }); + // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black // a // color: $black // ^ // background: white } - -if ( oldSyntax.check(decl) ) { - console.warn( decl.error('Old syntax for variables').message ); - // a.sass:4:3: Old syntax for variables -} ``` Arguments: * `message (string)`: error description. +* `opts (object) optional`: options. + * `plugin (string)`: plugin name, that created this error. + +See also [`Result#warn()`] for warnings. ### `node.next()` and `node.prev()` @@ -1708,11 +1854,12 @@ This is a code style property. [`postcss.plugin()`]: #postcsspluginname-initializer [`Declaration` node]: #declaration-node [`Result#messages`]: #resultmessages +[`CssSyntaxError`]: #csssyntaxerror-class [`Processor#use`]: #processoruseplugin [`Comment` node]: #comment-node -[`LazyResult`]: #lazy-result-class [`AtRule` node]: #atrule-node [`from` option]: #processorprocesscss-opts +[`LazyResult`]: #lazy-result-class [`Result#map`]: #resultmap [`Result#css`]: #resultcss [`Root` node]: #root-node From 18b5bc44ede7e66ee6c2f0a89cc422141613b131 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 6 Mar 2015 15:54:39 +0300 Subject: [PATCH 0062/3047] Add Warning class --- API.md | 85 ++++++++++++++++++++++++++++++++++++++----------- lib/result.js | 13 ++++---- lib/warning.js | 19 +++++++++++ test/result.js | 13 ++++---- test/warning.js | 31 ++++++++++++++++++ 5 files changed, 130 insertions(+), 31 deletions(-) create mode 100644 lib/warning.js create mode 100644 test/warning.js diff --git a/API.md b/API.md index 3e2591474..7ad936126 100644 --- a/API.md +++ b/API.md @@ -4,6 +4,7 @@ * [Processor class](#processor-class) * [LazyResult class](#lazy-result-class) * [Result class](#result-class) +* [Warning class](#warning-class) * [CssSyntaxError class](#csssyntaxerror-class) * [Vendor module](#vendor-module) * [List module](#list-module) @@ -109,7 +110,7 @@ postcss.plugin('postcss-cleaner', function () { }); ``` -Asynchronous pluugin should return `Promise` instance. +Asynchronous plugin should return `Promise` instance. ```js postcss.plugin('postcss-import', function () { @@ -282,7 +283,7 @@ Arguments: to fix CSS syntax errors. * `map`: an object of [source map options]. -### `plugins` +### `processor.plugins` Contains plugins added to this processor. @@ -291,7 +292,7 @@ var processor = postcss([cssnext, cssgrace]); processor.plugins.length //=> 2 ``` -### `version` +### `processor.version` Contains current version of PostCSS. @@ -466,10 +467,10 @@ Alias for [`Result#css`] property. ### `result.warn(text, opts)` -Adds warning to [`Result#messages`]. +Creates [`Warning`] and adds it to [`Result#messages`]. ```js -var plugin = postcss.plugin('postcss-important-warning', function () { +var plugin = postcss.plugin('postcss-important', function () { return function (css, result) { css.eachDecl(function (decl) { if ( decl.important ) { @@ -499,20 +500,15 @@ Arguments: ### `result.warnings()` -Returns warnings from plugins. It just a filters [Result#messages] by `type`. +Returns warnings from plugins. It just a filters [`Warning`] instances +from [Result#messages]. ```js result.warnings().forEach(function (message) { - console.log(message.text); + console.log(message.toString()); }); ``` -Each warning has properties: - -* `text (string)`: warning message. -* `plugin (string)`: name of plugin created this warning. -* `node (Node) optional`: source of warning. - ### `result.css` A CSS string representing this `Result`’s '`Root` instance. @@ -534,9 +530,9 @@ This property will has a value *only if the user does not want an inline source map*. By default, PostCSS generates inline source maps, written directly into the processed CSS; so by default the `map` property will be empty. -An external source map will be generated — and assigned to `map` — only if the -user has set the `map.inline` option to `false`, or if PostCSS was passed -an external input source map. +An external source map will be generated — and assigned to `map` — +only if the user has set the `map.inline` option to `false`, or if PostCSS +was passed an external input source map. ```js if ( result.map ) { @@ -572,13 +568,21 @@ postcss.plugin('postcss-min-browser', function () { }) ``` -You can add warning by [`Result#warn()`](#resultwarn) and get all warnings +You can add warning by [`Result#warn()`] and get all warnings by [`Result#warnings()`](#resultwarnings) method. ### `result.processor` Returns a [`Processor`] instance, that was used for this transformations. +```js +result.processor.plugins.forEach(function (plugin) { + if ( plugin.postcssPlugin == 'postcss-bad' ) { + throw 'postcss-good is incompatible with postcss-bad'; + } +}) +``` + ### `result.opts` Options from the [`Processor#process(css, opts)`] or [`Root#toResult(opts)`] @@ -588,6 +592,49 @@ call that produced this `Result` instance. root.toResult(opts).opts == opts; ``` +## `Warning` class + +Warning from plugins. It can be created by [`Result#warn()`]. + +```js +if ( decl.important ) { + result.warn('Try to avoid !important', { node: decl }); +} +``` + +### `warning.toString()` + +Returns string with error position, message. + +```js +warning.toString() //=> 'postcss-important:a.css:10:4: Try to avoid !important' +``` + +### `warning.text` + +Contains warning message. + +```js +warning.text //=> 'Try to avoid !important' +``` + +### `warning.plugin` + +Contains plugin name created this warning. When you call [`Result#warn()`], +it will fill this property automatically. + +```js +warning.plugin //=> 'postcss-important' +``` + +### `warning.node` + +Contains CSS node, that was a source of warning. + +```js +warning.node.toString() //=> 'color: white !important' +``` + ## `CssSyntaxError` class CSS parser throw this error on broken CSS. @@ -608,7 +655,7 @@ throw node.error('Unknown variable', { plugin: 'postcss-vars' }); Returns string with error position, message and source code of broken part. ```js -error.toString() //=> CssSyntaxError: a.css:1:1: Unclosed block +error.toString() //=> CssSyntaxError: app.css:1:1: Unclosed block // a { // ^ ``` @@ -1856,6 +1903,7 @@ This is a code style property. [`Result#messages`]: #resultmessages [`CssSyntaxError`]: #csssyntaxerror-class [`Processor#use`]: #processoruseplugin +[`Result#warn()`]: #resultwarn [`Comment` node]: #comment-node [`AtRule` node]: #atrule-node [`from` option]: #processorprocesscss-opts @@ -1865,5 +1913,6 @@ This is a code style property. [`Root` node]: #root-node [`Rule` node]: #rule-node [`Processor`]: #processor-class +[`Warning`]: #warning-class [`Result`]: #result-class [`Input`]: #inputclass diff --git a/lib/result.js b/lib/result.js index 157f2b403..905c71642 100644 --- a/lib/result.js +++ b/lib/result.js @@ -1,3 +1,5 @@ +import Warning from './warning'; + export default class Result { constructor(processor, root, opts) { this.processor = processor; @@ -12,17 +14,14 @@ export default class Result { return this.css; } - warn(text, data = { }) { - data.type = 'warning'; - data.text = text; - - if ( !data.plugin ) { + warn(text, opts = { }) { + if ( !opts.plugin ) { if ( this.lastPlugin && this.lastPlugin.postcssPlugin ) { - data.plugin = this.lastPlugin.postcssPlugin; + opts.plugin = this.lastPlugin.postcssPlugin; } } - this.messages.push(data); + this.messages.push(new Warning(text, opts)); } warnings() { diff --git a/lib/warning.js b/lib/warning.js new file mode 100644 index 000000000..f6d619c73 --- /dev/null +++ b/lib/warning.js @@ -0,0 +1,19 @@ +export default class Warning { + constructor(text, opts = { }) { + this.type = 'warning'; + this.text = text; + for ( var opt in opts ) { + this[opt] = opts[opt]; + } + } + + toString() { + if ( this.node ) { + return this.node.error(this.text, { plugin: this.plugin }).message; + } else if ( this.plugin ) { + return this.plugin + ': ' + this.text; + } else { + return this.text; + } + } +} diff --git a/test/result.js b/test/result.js index a5ddbb608..62f4c3101 100644 --- a/test/result.js +++ b/test/result.js @@ -1,3 +1,4 @@ +import Warning from '../lib/warning'; import postcss from '../lib/postcss'; import Result from '../lib/result'; @@ -25,12 +26,12 @@ describe('Result', () => { }); var result = postcss([plugin]).process('a{}').sync(); - expect(result.messages).to.eql([{ - plugin: 'test-plugin', - type: 'warning', - text: 'test', - node: result.root.first - }]); + expect(result.messages).to.eql([ + new Warning('test', { + plugin: 'test-plugin', + node: result.root.first + }) + ]); }); it('allows to override plugin', () => { diff --git a/test/warning.js b/test/warning.js new file mode 100644 index 000000000..981a3d700 --- /dev/null +++ b/test/warning.js @@ -0,0 +1,31 @@ +import Warning from '../lib/warning'; +import parse from '../lib/parse'; + +import { expect } from 'chai'; + +describe('Warning', () => { + + describe('toString()', () => { + + it('outputs simple warning', () => { + var warning = new Warning('text'); + expect(warning.toString()).to.eql('text'); + }); + + it('outputs warning with plugin', () => { + var warning = new Warning('text', { plugin: 'plugin' }); + expect(warning.toString()).to.eql('plugin: text'); + }); + + it('outputs warning with plugin and node', () => { + var root = parse('a{}', { from: '/a.css' }); + var warning = new Warning('text', { + plugin: 'plugin', + node: root.first + }); + expect(warning.toString()).to.eql('plugin:/a.css:1:1: text'); + }); + + }); + +}); From 6d9815d9b9a60ab22ff553474c9d4d403b1a8e9f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 8 Mar 2015 00:12:14 +0300 Subject: [PATCH 0063/3047] Update Ruby Sass in benchmark --- benchmark/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/Gemfile.lock b/benchmark/Gemfile.lock index 485a5e3e7..04731e67a 100644 --- a/benchmark/Gemfile.lock +++ b/benchmark/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - sass (3.4.11) + sass (3.4.13) PLATFORMS ruby From 22416cb212e3f18227d716fe8c1fb8019d98e942 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 8 Mar 2015 03:28:09 +0300 Subject: [PATCH 0064/3047] Remove pleeease-filters because Firefox now does not need it --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 396a92dfa..ac94485cb 100644 --- a/README.md +++ b/README.md @@ -234,8 +234,6 @@ a specialized language for a specialized tool (as with preprocessors). * [cssgrace] provides various helpers and transpiles CSS3 for IE and other old browsers. * [pixrem] generates pixel fallbacks for `rem` units. -* [pleeease-filters] converts WebKit filters to SVG filters, - for cross-browser compatibility. ### Language Extensions From 709200a2b4bea3e50f96dde757cffd53012a02a6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 10 Mar 2015 22:49:01 +0300 Subject: [PATCH 0065/3047] Lint code with ESLint --- .eslintrc | 26 +++++ benchmark/parser.js | 5 +- benchmark/parsers.js | 13 ++- benchmark/processors.js | 25 +++-- benchmark/tokenizer.js | 5 +- gulpfile.js | 9 +- index.js | 2 +- lib/at-rule.js | 10 +- lib/comment.js | 6 +- lib/container.js | 110 +++++++++---------- lib/css-syntax-error.js | 28 +++-- lib/declaration.js | 9 +- lib/input.js | 21 ++-- lib/lazy-result.js | 30 +++--- lib/list.js | 36 ++++--- lib/map-generator.js | 94 ++++++++--------- lib/node.js | 170 ++++++++++++++--------------- lib/parse.js | 6 +- lib/parser.js | 177 ++++++++++++++++--------------- lib/postcss.js | 8 +- lib/previous-map.js | 24 +++-- lib/processor.js | 11 +- lib/result.js | 2 +- lib/root.js | 20 ++-- lib/rule.js | 5 +- lib/tokenize.js | 61 +++++------ lib/vendor.js | 8 +- lib/warning.js | 2 +- package.json | 14 +-- tasks/compare.js | 4 +- tasks/get.js | 6 +- tasks/styles.js | 6 +- test/at-rule.js | 14 ++- test/comment.js | 6 +- test/container.js | 223 +++++++++++++++++++-------------------- test/css-syntax-error.js | 18 ++-- test/declaration.js | 14 +-- test/lazy-result.js | 15 ++- test/map.js | 188 +++++++++++++++++---------------- test/node.js | 128 +++++++++++----------- test/parse.js | 59 ++++++----- test/postcss.js | 29 +++-- test/previous-map.js | 43 ++++---- test/processor.js | 110 +++++++++---------- test/result.js | 20 ++-- test/root.js | 43 ++++---- test/rule.js | 26 ++--- test/tokenize.js | 8 +- test/vendor.js | 2 +- test/warning.js | 8 +- 50 files changed, 970 insertions(+), 937 deletions(-) create mode 100644 .eslintrc diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..e3415b677 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,26 @@ +{ + "ecmaFeatures": { + "modules": true, + "module": true + }, + "rules": { + "no-unused-expressions": [0], + "no-underscore-dangle": [0], + "no-reserved-keys": [2], + "no-multi-spaces": [0], + "no-extra-parens": [2], + "no-unused-vars": [1], + "no-loop-func": [0], + "key-spacing": [0], + "max-len": [2], + "strict": [0], + "indent": [2], + "quotes": [2, "single", "avoid-escape"], + "curly": [0] + }, + "env": { + "mocha": true, + "node": true, + "es6": true + } +} diff --git a/benchmark/parser.js b/benchmark/parser.js index 11d86b6b0..3aa3bf241 100644 --- a/benchmark/parser.js +++ b/benchmark/parser.js @@ -1,10 +1,11 @@ -var fs = require('fs'); +var path = require('path'); +var fs = require('fs'); var tokenizer = require('../build/lib/tokenize'); var Parser = require('../build/lib/parser'); var Input = require('../build/lib/input'); -var css = fs.readFileSync(__dirname + '/test.css'); +var css = fs.readFileSync(path.join(__dirname, 'test.css')); var input = new Input(css); var tokens = tokenizer(input); diff --git a/benchmark/parsers.js b/benchmark/parsers.js index 2cdfc2687..db98f3db8 100644 --- a/benchmark/parsers.js +++ b/benchmark/parsers.js @@ -1,5 +1,8 @@ -var fs = require('fs'); -var css = fs.readFileSync(__dirname + '/cache/bootstrap.css').toString(); +var path = require('path'); +var fs = require('fs'); + +var example = path.join(__dirname, 'cache', 'bootstrap.css'); +var css = fs.readFileSync(example).toString(); var CSSOM = require('cssom'); var rework = require('rework'); @@ -22,7 +25,7 @@ module.exports = { { name: 'PostCSS', fn: function () { - postcss.parse(css).toResult().css; + postcss().parse(css, { from: example }).toResult(); } }, { @@ -32,7 +35,7 @@ module.exports = { } }, { - name: "Mensch", + name: 'Mensch', fn: function () { mensch.stringify( mensch.parse(css) ); } @@ -45,7 +48,7 @@ module.exports = { }, { name: 'Gonzales PE', - fn: function (done) { + fn: function () { gonzalesPe.parse(css).toString(); } }, diff --git a/benchmark/processors.js b/benchmark/processors.js index 26e4363c2..bb2d12ba8 100644 --- a/benchmark/processors.js +++ b/benchmark/processors.js @@ -1,12 +1,13 @@ -var fs = require('fs'); var exec = require('child_process').exec; +var path = require('path'); +var fs = require('fs'); -var path = __dirname + '/cache/bootstrap.css'; -var css = fs.readFileSync(path).toString(); +var example = path.join(__dirname, 'cache', 'bootstrap.css'); +var css = fs.readFileSync(example).toString(); css = css.replace(/\s+filter:[^;\}]+;?/g, ''); css = css.replace('/*# sourceMappingURL=bootstrap.css.map */', ''); -var scss = __dirname + '/cache/bootstrap.scss'; +var scss = path.join(__dirname, 'cache', 'bootstrap.scss'); fs.writeFileSync(scss, css); var postcss = require('../build'); @@ -21,15 +22,18 @@ module.exports = { tests: [ { name: 'PostCSS', + defer: true, fn: function (done) { - postcss(cssnext).process(css, { map: false }).css; + postcss(cssnext).process(css, { map: false }).then(function () { + done.resolve(); + }); } }, { name: 'Stylus', defer: true, fn: function (done) { - stylus.render(css, { filename: path }, function (err, css) { + stylus.render(css, { filename: example }, function (err) { if ( err ) throw err; done.resolve(); }); @@ -39,7 +43,7 @@ module.exports = { name: 'Less', defer: true, fn: function (done) { - less.render(css, function (err, css) { + less.render(css, function (err) { if ( err ) throw err; done.resolve(); }); @@ -56,11 +60,12 @@ module.exports = { defer: true, fn: function (done) { var command = 'sass -C --sourcemap=none ' + scss; - exec('cd ' + __dirname + '; bundle exec ' + command, - function (error, stdout, stderr) { + var dir = __dirname; + exec('cd ' + dir + '; bundle exec ' + command, + function (error, stdout, stderr) { if ( error ) throw stderr; done.resolve(); - }); + }); } } ] diff --git a/benchmark/tokenizer.js b/benchmark/tokenizer.js index eea74e486..6d4a741e2 100644 --- a/benchmark/tokenizer.js +++ b/benchmark/tokenizer.js @@ -1,9 +1,10 @@ -var fs = require('fs'); +var path = require('path'); +var fs = require('fs'); var tokenizer = require('../build/lib/tokenize'); var Input = require('../build/lib/input'); -var css = fs.readFileSync(__dirname + '/test.css'); +var css = fs.readFileSync(path.join(__dirname, 'test.css')); var input = new Input(css); module.exports = { diff --git a/gulpfile.js b/gulpfile.js index 21b513fbc..861a92b4b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -60,18 +60,19 @@ gulp.task('standalone', ['build'], function (done) { // Lint gulp.task('lint', function () { - var jshint = require('gulp-jshint'); + var eslint = require('gulp-eslint'); return gulp.src(['*.js', 'lib/*.js', 'test/*.js', 'tasks/*.js', 'benchmark/**/*.js']) - .pipe(jshint({ esnext: true, expr: true })) - .pipe(jshint.reporter('jshint-stylish')) - .pipe(jshint.reporter('fail')); + .pipe(eslint()) + .pipe(eslint.format()) + .pipe(eslint.failAfterError()); }); + // Benchmark gulp.task('bench:clean', function (done) { diff --git a/index.js b/index.js index 0c7538fab..d7edb1919 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ var path = require('path'); var escape = function (str) { - return str.replace(/[\[\]\/{}()*+?.\\^$|-]/g, "\\$&"); + return str.replace(/[\[\]\/{}()*+?.\\^$|-]/g, '\\$&'); }; var regexp = ['lib', 'test'].map(function (i) { diff --git a/lib/at-rule.js b/lib/at-rule.js index 281e2b2aa..6ed3e202c 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -7,10 +7,10 @@ export default class AtRule extends Container { } stringify(builder, semicolon) { - var name = '@' + this.name; - var params = this.params ? this.stringifyRaw('params') : ''; + let name = '@' + this.name; + let params = this.params ? this.stringifyRaw('params') : ''; - if ( typeof(this.afterName) != 'undefined' ) { + if ( typeof this.afterName !== 'undefined' ) { name += this.afterName; } else if ( params ) { name += ' '; @@ -20,9 +20,9 @@ export default class AtRule extends Container { this.stringifyBlock(builder, name + params); } else { - var before = this.style('before'); + let before = this.style('before'); if ( before ) builder(before); - var end = (this.between || '') + (semicolon ? ';' : ''); + let end = (this.between || '') + (semicolon ? ';' : ''); builder(name + params + end, this); } } diff --git a/lib/comment.js b/lib/comment.js index 57ed937f2..a6907c84d 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -7,10 +7,10 @@ export default class Comment extends Node { } stringify(builder) { - var before = this.style('before'); + let before = this.style('before'); if ( before ) builder(before); - var left = this.style('left', 'commentLeft'); - var right = this.style('right', 'commentRight'); + let left = this.style('left', 'commentLeft'); + let right = this.style('right', 'commentRight'); builder('/*' + left + this.text + right + '*/', this); } } diff --git a/lib/container.js b/lib/container.js index 6642f8ae6..a98497a88 100644 --- a/lib/container.js +++ b/lib/container.js @@ -7,26 +7,26 @@ export default class Container extends Node { stringifyContent(builder) { if ( !this.nodes ) return; - var i, last = this.nodes.length - 1; + let i, last = this.nodes.length - 1; while ( last > 0 ) { - if ( this.nodes[last].type != 'comment' ) break; + if ( this.nodes[last].type !== 'comment' ) break; last -= 1; } - var semicolon = this.style('semicolon'); + let semicolon = this.style('semicolon'); for ( i = 0; i < this.nodes.length; i++ ) { - this.nodes[i].stringify(builder, last != i || semicolon); + this.nodes[i].stringify(builder, last !== i || semicolon); } } stringifyBlock(builder, start) { - var before = this.style('before'); + let before = this.style('before'); if ( before ) builder(before); - var between = this.style('between', 'beforeOpen'); + let between = this.style('between', 'beforeOpen'); builder(start + between + '{', this, 'start'); - var after; + let after; if ( this.nodes && this.nodes.length ) { this.stringifyContent(builder); after = this.style('after'); @@ -49,12 +49,12 @@ export default class Container extends Node { if ( !this.indexes ) this.indexes = { }; this.lastEach += 1; - var id = this.lastEach; + let id = this.lastEach; this.indexes[id] = 0; - if ( !this.nodes ) return; + if ( !this.nodes ) return undefined; - var index, result; + let index, result; while ( this.indexes[id] < this.nodes.length ) { index = this.indexes[id]; result = callback(this.nodes[index], index); @@ -70,7 +70,7 @@ export default class Container extends Node { eachInside(callback) { return this.each( (child, i) => { - var result = callback(child, i); + let result = callback(child, i); if ( result !== false && child.eachInside ) { result = child.eachInside(callback); @@ -84,22 +84,22 @@ export default class Container extends Node { if ( !callback ) { callback = prop; return this.eachInside( (child, i) => { - if ( child.type == 'decl' ) { - var result = callback(child, i); + if ( child.type === 'decl' ) { + let result = callback(child, i); if ( result === false ) return result; } }); } else if ( prop instanceof RegExp ) { return this.eachInside( (child, i) => { - if ( child.type == 'decl' && prop.test(child.prop) ) { - var result = callback(child, i); + if ( child.type === 'decl' && prop.test(child.prop) ) { + let result = callback(child, i); if ( result === false ) return result; } }); } else { return this.eachInside( (child, i) => { - if ( child.type == 'decl' && child.prop == prop ) { - var result = callback(child, i); + if ( child.type === 'decl' && child.prop === prop ) { + let result = callback(child, i); if ( result === false ) return result; } }); @@ -108,8 +108,8 @@ export default class Container extends Node { eachRule(callback) { return this.eachInside( (child, i) => { - if ( child.type == 'rule' ) { - var result = callback(child, i); + if ( child.type === 'rule' ) { + let result = callback(child, i); if ( result === false ) return result; } }); @@ -119,22 +119,22 @@ export default class Container extends Node { if ( !callback ) { callback = name; return this.eachInside( (child, i) => { - if ( child.type == 'atrule' ) { - var result = callback(child, i); + if ( child.type === 'atrule' ) { + let result = callback(child, i); if ( result === false ) return result; } }); } else if ( name instanceof RegExp ) { return this.eachInside( (child, i) => { - if ( child.type == 'atrule' && name.test(child.name) ) { - var result = callback(child, i); + if ( child.type === 'atrule' && name.test(child.name) ) { + let result = callback(child, i); if ( result === false ) return result; } }); } else { return this.eachInside( (child, i) => { - if ( child.type == 'atrule' && child.name == name ) { - var result = callback(child, i); + if ( child.type === 'atrule' && child.name === name ) { + let result = callback(child, i); if ( result === false ) return result; } }); @@ -143,24 +143,24 @@ export default class Container extends Node { eachComment(callback) { return this.eachInside( (child, i) => { - if ( child.type == 'comment' ) { - var result = callback(child, i); + if ( child.type === 'comment' ) { + let result = callback(child, i); if ( result === false ) return result; } }); } append(child) { - var nodes = this.normalize(child, this.last); - for ( var node of nodes ) this.nodes.push(node); + let nodes = this.normalize(child, this.last); + for ( let node of nodes ) this.nodes.push(node); return this; } prepend(child) { - var nodes = this.normalize(child, this.first, 'prepend').reverse(); - for ( var node of nodes ) this.nodes.unshift(node); + let nodes = this.normalize(child, this.first, 'prepend').reverse(); + for ( let node of nodes ) this.nodes.unshift(node); - for ( var id in this.indexes ) { + for ( let id in this.indexes ) { this.indexes[id] = this.indexes[id] + nodes.length; } @@ -170,12 +170,12 @@ export default class Container extends Node { insertBefore(exist, add) { exist = this.index(exist); - var type = exist === 0 ? 'prepend' : false; - var nodes = this.normalize(add, this.nodes[exist], type).reverse(); - for ( var node of nodes ) this.nodes.splice(exist, 0, node); + let type = exist === 0 ? 'prepend' : false; + let nodes = this.normalize(add, this.nodes[exist], type).reverse(); + for ( let node of nodes ) this.nodes.splice(exist, 0, node); - var index; - for ( var id in this.indexes ) { + let index; + for ( let id in this.indexes ) { index = this.indexes[id]; if ( exist <= index ) { this.indexes[id] = index + nodes.length; @@ -188,11 +188,11 @@ export default class Container extends Node { insertAfter(exist, add) { exist = this.index(exist); - var nodes = this.normalize(add, this.nodes[exist]).reverse(); - for ( var node of nodes ) this.nodes.splice(exist + 1, 0, node); + let nodes = this.normalize(add, this.nodes[exist]).reverse(); + for ( let node of nodes ) this.nodes.splice(exist + 1, 0, node); - var index; - for ( var id in this.indexes ) { + let index; + for ( let id in this.indexes ) { index = this.indexes[id]; if ( exist < index ) { this.indexes[id] = index + nodes.length; @@ -207,8 +207,8 @@ export default class Container extends Node { this.nodes[child].parent = undefined; this.nodes.splice(child, 1); - var index; - for ( var id in this.indexes ) { + let index; + for ( let id in this.indexes ) { index = this.indexes[id]; if ( index >= child ) { this.indexes[id] = index - 1; @@ -219,7 +219,7 @@ export default class Container extends Node { } removeAll() { - for ( var node of this.nodes ) node.parent = undefined; + for ( let node of this.nodes ) node.parent = undefined; this.nodes = []; return this; } @@ -231,8 +231,8 @@ export default class Container extends Node { } this.eachDecl((decl) => { - if ( opts.props && opts.props.indexOf(decl.prop) == -1 ) return; - if ( opts.fast && decl.value.indexOf(opts.fast) == -1 ) return; + if ( opts.props && opts.props.indexOf(decl.prop) === -1 ) return; + if ( opts.fast && decl.value.indexOf(opts.fast) === -1 ) return; decl.value = decl.value.replace(regexp, callback); }); @@ -249,7 +249,7 @@ export default class Container extends Node { } index(child) { - if ( typeof(child) == 'number' ) { + if ( typeof child === 'number' ) { return child; } else { return this.nodes.indexOf(child); @@ -267,31 +267,31 @@ export default class Container extends Node { } normalize(nodes, sample) { - if ( typeof(nodes) == 'string' ) { - import parse from './parse'; + if ( typeof nodes === 'string' ) { + let parse = require('./parse'); nodes = parse(nodes).nodes; } else if ( !Array.isArray(nodes) ) { - if ( nodes.type == 'root' ) { + if ( nodes.type === 'root' ) { nodes = nodes.nodes; } else if ( nodes.type ) { nodes = [nodes]; } else if ( nodes.prop ) { nodes = [new Declaration(nodes)]; } else if ( nodes.selector ) { - import Rule from './rule'; + let Rule = require('./rule'); nodes = [new Rule(nodes)]; } else if ( nodes.name ) { - import AtRule from './at-rule'; + let AtRule = require('./at-rule'); nodes = [new AtRule(nodes)]; } else if ( nodes.text ) { nodes = [new Comment(nodes)]; } } - var processed = nodes.map( (child) => { + let processed = nodes.map( (child) => { if ( child.parent ) child = child.clone(); - if ( typeof(child.before) == 'undefined' ) { - if ( sample && typeof(sample.before) != 'undefined' ) { + if ( typeof child.before === 'undefined' ) { + if ( sample && typeof sample.before !== 'undefined' ) { child.before = sample.before.replace(/[^\s]/g, ''); } } diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 74716fbde..d79fcdda4 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,12 +1,10 @@ -import PreviousMap from './previous-map'; - export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file, plugin) { this.reason = message; this.message = plugin ? plugin + ':' : ''; this.message += file ? file : ''; - if ( typeof(line) != 'undefined' && typeof(column) != 'undefined' ) { + if ( typeof line !== 'undefined' && typeof column !== 'undefined' ) { this.line = line; this.column = column; this.message += ':' + line + ':' + column + ': ' + message; @@ -24,19 +22,19 @@ export default class CssSyntaxError extends SyntaxError { } highlight(color) { - var num = this.line - 1; - var lines = this.source.split('\n'); + let num = this.line - 1; + let lines = this.source.split('\n'); - var prev = num > 0 ? lines[num - 1] + '\n' : ''; - var broken = lines[num]; - var next = num < lines.length - 1 ? '\n' + lines[num + 1] : ''; + let prev = num > 0 ? lines[num - 1] + '\n' : ''; + let broken = lines[num]; + let next = num < lines.length - 1 ? '\n' + lines[num + 1] : ''; - var mark = '\n'; - for ( var i = 0; i < this.column - 1; i++ ) { + let mark = '\n'; + for ( let i = 0; i < this.column - 1; i++ ) { mark += ' '; } - if ( typeof(color) == 'undefined' && typeof(process) != 'undefined' ) { + if ( typeof color === 'undefined' && typeof process !== 'undefined' ) { if ( process.stdout && process.env ) { color = process.stdout.isTTY && !process.env.NODE_DISABLE_COLORS; @@ -44,7 +42,7 @@ export default class CssSyntaxError extends SyntaxError { } if ( color ) { - mark += "\x1B[1;31m^\x1B[0m"; + mark += '\x1B[1;31m^\x1B[0m'; } else { mark += '^'; } @@ -53,7 +51,7 @@ export default class CssSyntaxError extends SyntaxError { } setMozillaProps() { - var sample = Error.call(this, message); + let sample = Error.call(this, this.message); if ( sample.columnNumber ) this.columnNumber = this.column; if ( sample.description ) this.description = this.message; if ( sample.lineNumber ) this.lineNumber = this.line; @@ -61,8 +59,8 @@ export default class CssSyntaxError extends SyntaxError { } toString() { - var text = this.message; - if ( this.source ) text += "\n" + this.highlight(); + let text = this.message; + if ( this.source ) text += '\n' + this.highlight(); return this.name + ': ' + text; } } diff --git a/lib/declaration.js b/lib/declaration.js index 8f0696ddd..c13a99d39 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -1,5 +1,4 @@ -import vendor from './vendor'; -import Node from './node'; +import Node from './node'; export default class Declaration extends Node { constructor(defaults) { @@ -8,11 +7,11 @@ export default class Declaration extends Node { } stringify(builder, semicolon) { - var before = this.style('before'); + let before = this.style('before'); if ( before ) builder(before); - var between = this.style('between', 'colon'); - var string = this.prop + between + this.stringifyRaw('value'); + let between = this.style('between', 'colon'); + let string = this.prop + between + this.stringifyRaw('value'); if ( this.important ) { string += this._important || ' !important'; diff --git a/lib/input.js b/lib/input.js index d127c46c8..d10b7fedb 100644 --- a/lib/input.js +++ b/lib/input.js @@ -1,16 +1,15 @@ import CssSyntaxError from './css-syntax-error'; import PreviousMap from './previous-map'; -import Parser from './parser'; import path from 'path'; -var sequence = 0; +let sequence = 0; export default class Input { constructor(css, opts = { }) { this.css = css.toString(); - if ( this.css[0] == '\uFEFF' || this.css[0] == '\uFFFE' ) { + if ( this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE' ) { this.css = this.css.slice(1); } @@ -18,10 +17,10 @@ export default class Input { if ( opts.from ) this.file = path.resolve(opts.from); - var map = new PreviousMap(this.css, opts, this.id); + let map = new PreviousMap(this.css, opts, this.id); if ( map.text ) { this.map = map; - var file = map.consumer().file; + let file = map.consumer().file; if ( !this.file && file ) this.file = this.mapResolve(file); } @@ -36,9 +35,9 @@ export default class Input { } error(message, line, column, opts = { }) { - var error = new CssSyntaxError(message); + let error = new CssSyntaxError(message); - var origin = this.origin(line, column); + let origin = this.origin(line, column); if ( origin ) { error = new CssSyntaxError(message, origin.line, origin.column, origin.source, origin.file, opts.plugin); @@ -59,18 +58,18 @@ export default class Input { origin(line, column) { if ( !this.map ) return false; - var consumer = this.map.consumer(); + let consumer = this.map.consumer(); - var from = consumer.originalPositionFor({ line, column }); + let from = consumer.originalPositionFor({ line, column }); if ( !from.source ) return false; - var result = { + let result = { file: this.mapResolve(from.source), line: from.line, column: from.column }; - var source = consumer.sourceContentFor(result.file); + let source = consumer.sourceContentFor(result.file); if ( source ) result.source = source; return result; diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 6a4ee0a4b..add8cb0c4 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -3,8 +3,8 @@ import Result from './result'; import parse from './parse'; import Root from './root'; -var warn = (message) => { - if ( typeof(console) != 'undefined' && console.warn ) console.warn(message); +let warn = (message) => { + if ( typeof console !== 'undefined' && console.warn ) console.warn(message); }; export default class LazyResult { @@ -12,12 +12,12 @@ export default class LazyResult { this.stringified = false; this.processed = false; - var root; + let root; if ( css instanceof Root ) { root = css; } else if ( css instanceof LazyResult || css instanceof Result ) { root = css.root; - if ( css.map && typeof(opts.map) == 'undefined' ) { + if ( css.map && typeof opts.map === 'undefined' ) { opts.map = { prev: css.map }; } } else { @@ -78,7 +78,7 @@ export default class LazyResult { this.processing = this.processor.plugins.map( (plugin) => { return new Promise( (resolve, reject) => { - var promise = this.run(plugin); + let promise = this.run(plugin); if ( promise instanceof Promise ) { promise.then( () => resolve() ) .catch( (error) => reject(error) ); @@ -107,8 +107,8 @@ export default class LazyResult { throw 'Use process(css).then(cb) to work with async plugins'; } - for ( var plugin of this.result.processor.plugins ) { - var promise = this.run(plugin); + for ( let plugin of this.result.processor.plugins ) { + let promise = this.run(plugin); if ( promise instanceof Promise ) { throw 'Use process(css).then(cb) to work with async plugins'; } @@ -120,18 +120,18 @@ export default class LazyResult { run(plugin) { this.result.lastPlugin = plugin; - var returned; + let returned; try { returned = plugin(this.result.root, this.result); } catch (error) { if ( plugin.postcssVersion ) { - var pluginName = plugin.postcssPlugin; - var pluginVersion = plugin.postcssVersion; - var runtimeVersion = this.result.processor.version; - var a = pluginVersion.split('.'); - var b = runtimeVersion.split('.'); + let pluginName = plugin.postcssPlugin; + let pluginVersion = plugin.postcssVersion; + let runtimeVersion = this.result.processor.version; + let a = pluginVersion.split('.'); + let b = runtimeVersion.split('.'); - if ( a[0] != b[0] || parseInt(a[1]) > parseInt(b[1]) ) { + if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { warn(`${pluginName} is based on PostCSS ${pluginVersion} ` + `but you use it with PostCSS ${runtimeVersion}. ` + 'Maybe this is a source of error below.'); @@ -152,7 +152,7 @@ export default class LazyResult { this.stringified = true; this.sync(); - var map = new MapGenerator(this.result.root, this.result.opts); + let map = new MapGenerator(this.result.root, this.result.opts); [this.result.css, this.result.map] = map.generate(); return this.result; diff --git a/lib/list.js b/lib/list.js index 3ed08d0c5..edc15c398 100644 --- a/lib/list.js +++ b/lib/list.js @@ -1,34 +1,34 @@ export default { split(string, separators, last) { - var array = []; - var current = ''; - var split = false; + let array = []; + let current = ''; + let split = false; - var func = 0; - var quote = false; - var escape = false; + let func = 0; + let quote = false; + let escape = false; - for ( var i = 0; i < string.length; i++ ) { - var letter = string[i]; + for ( let i = 0; i < string.length; i++ ) { + let letter = string[i]; if ( quote ) { if ( escape ) { escape = false; - } else if ( letter == '\\' ) { + } else if ( letter === '\\' ) { escape = true; - } else if ( letter == quote ) { + } else if ( letter === quote ) { quote = false; } - } else if ( letter == '"' || letter == "'" ) { + } else if ( letter === '"' || letter === "'" ) { quote = letter; - } else if ( letter == '(' ) { + } else if ( letter === '(' ) { func += 1; - } else if ( letter == ')' ) { + } else if ( letter === ')' ) { if ( func > 0 ) func -= 1; } else if ( func === 0 ) { - for ( var j = 0; j < separators.length; j++ ) { - if ( letter == separators[j] ) split = true; + for ( let j = 0; j < separators.length; j++ ) { + if ( letter === separators[j] ) split = true; } } @@ -46,11 +46,13 @@ export default { }, space(string) { - return this.split(string, [' ', "\n", "\t"]); + let spaces = [' ', '\n', '\t']; + return this.split(string, spaces); }, comma(string) { - return this.split(string, [','], true); + let comma = ','; + return this.split(string, [comma], true); } }; diff --git a/lib/map-generator.js b/lib/map-generator.js index 0151ce782..a0230e868 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -1,10 +1,8 @@ -import Result from './result'; - import { Base64 } from 'js-base64'; import mozilla from 'source-map'; import path from 'path'; -export default class MapGenerator { +export default class { constructor(root, opts) { this.root = root; this.opts = opts; @@ -12,7 +10,7 @@ export default class MapGenerator { } isMap() { - if ( typeof(this.opts.map) != 'undefined' ) { + if ( typeof this.opts.map !== 'undefined' ) { return !!this.opts.map; } else { return this.previous().length > 0; @@ -24,8 +22,8 @@ export default class MapGenerator { this.previousMaps = []; this.root.eachInside( (node) => { if ( node.source && node.source.input.map ) { - var map = node.source.input.map; - if ( this.previousMaps.indexOf(map) == -1 ) { + let map = node.source.input.map; + if ( this.previousMaps.indexOf(map) === -1 ) { this.previousMaps.push(map); } } @@ -36,12 +34,12 @@ export default class MapGenerator { } isInline() { - if ( typeof(this.mapOpts.inline) != 'undefined' ) { + if ( typeof this.mapOpts.inline !== 'undefined' ) { return this.mapOpts.inline; } - var annotation = this.mapOpts.annotation; - if ( typeof(annotation) != 'undefined' && annotation !== true ) { + let annotation = this.mapOpts.annotation; + if ( typeof annotation !== 'undefined' && annotation !== true ) { return false; } @@ -53,7 +51,7 @@ export default class MapGenerator { } isSourcesContent() { - if ( typeof(this.mapOpts.sourcesContent) != 'undefined' ) { + if ( typeof this.mapOpts.sourcesContent !== 'undefined' ) { return this.mapOpts.sourcesContent; } if ( this.previous().length ) { @@ -66,10 +64,10 @@ export default class MapGenerator { clearAnnotation() { if ( this.mapOpts.annotation === false ) return; - var node; - for ( var i = this.root.nodes.length - 1; i >= 0; i-- ) { + let node; + for ( let i = this.root.nodes.length - 1; i >= 0; i-- ) { node = this.root.nodes[i]; - if ( node.type != 'comment' ) continue; + if ( node.type !== 'comment' ) continue; if ( node.text.match(/^# sourceMappingURL=/) ) { this.root.remove(i); return; @@ -78,13 +76,13 @@ export default class MapGenerator { } setSourcesContent() { - var already = { }; + let already = { }; this.root.eachInside( (node) => { if ( node.source ) { - var from = node.source.input.from; + let from = node.source.input.from; if ( from && !already[from] ) { already[from] = true; - var relative = this.relative(from); + let relative = this.relative(from); this.map.setSourceContent(relative, node.source.input.css); } } @@ -92,15 +90,15 @@ export default class MapGenerator { } applyPrevMaps() { - for ( var prev of this.previous() ) { - var from = this.relative(prev.file); - var root = prev.root || path.dirname(prev.file); - var map; + for ( let prev of this.previous() ) { + let from = this.relative(prev.file); + let root = prev.root || path.dirname(prev.file); + let map; if ( this.mapOpts.sourcesContent === false ) { map = new mozilla.SourceMapConsumer(prev.text); if ( map.sourcesContent ) { - map.sourcesContent = map.sourcesContent.map( i => null ); + map.sourcesContent = map.sourcesContent.map( () => null ); } } else { map = prev.consumer(); @@ -112,8 +110,8 @@ export default class MapGenerator { isAnnotation() { if ( this.isInline() ) { - return true ; - } else if ( typeof(this.mapOpts.annotation) != 'undefined' ) { + return true; + } else if ( typeof this.mapOpts.annotation !== 'undefined' ) { return this.mapOpts.annotation; } else if ( this.previous().length ) { return this.previous().some( i => i.annotation ); @@ -123,20 +121,20 @@ export default class MapGenerator { } addAnnotation() { - var content; + let content; if ( this.isInline() ) { - content = "data:application/json;base64," + + content = 'data:application/json;base64,' + Base64.encode( this.map.toString() ); - } else if ( typeof(this.mapOpts.annotation) == 'string' ) { + } else if ( typeof this.mapOpts.annotation === 'string' ) { content = this.mapOpts.annotation; } else { content = this.outputFile() + '.map'; } - this.css += "\n/*# sourceMappingURL=" + content + " */"; + this.css += '\n/*# sourceMappingURL=' + content + ' */'; } outputFile() { @@ -163,14 +161,14 @@ export default class MapGenerator { } relative(file) { - var from = this.opts.to ? path.dirname(this.opts.to) : '.'; + let from = this.opts.to ? path.dirname(this.opts.to) : '.'; - if ( typeof(this.mapOpts.annotation) == 'string' ) { + if ( typeof this.mapOpts.annotation === 'string' ) { from = path.dirname( path.resolve(from, this.mapOpts.annotation) ); } file = path.relative(from, file); - if ( path.sep == '\\' ) { + if ( path.sep === '\\' ) { return file.replace(/\\/g, '/'); } else { return file; @@ -185,14 +183,14 @@ export default class MapGenerator { this.css = ''; this.map = new mozilla.SourceMapGenerator({ file: this.outputFile() }); - var line = 1; - var column = 1; + let line = 1; + let column = 1; - var lines, last; - var builder = (str, node, type) => { + let lines, last; + let builder = (str, node, type) => { this.css += str; - if ( node && node.source && node.source.start && type != 'end' ) { + if ( node && node.source && node.source.start && type !== 'end' ) { this.map.addMapping({ source: this.sourcePath(node), original: { @@ -209,24 +207,24 @@ export default class MapGenerator { lines = str.match(/\n/g); if ( lines ) { line += lines.length; - last = str.lastIndexOf("\n"); + last = str.lastIndexOf('\n'); column = str.length - last; } else { column = column + str.length; } - if ( node && node.source && node.source.end && type != 'start' ) { - this.map.addMapping({ - source: this.sourcePath(node), - original: { - line: node.source.end.line, - column: node.source.end.column - }, - generated: { - line: line, - column: column - } - }); + if ( node && node.source && node.source.end && type !== 'start' ) { + this.map.addMapping({ + source: this.sourcePath(node), + original: { + line: node.source.end.line, + column: node.source.end.column + }, + generated: { + line: line, + column: column + } + }); } }; diff --git a/lib/node.js b/lib/node.js index e9c7fa387..39d1c5b29 100644 --- a/lib/node.js +++ b/lib/node.js @@ -14,22 +14,22 @@ const defaultStyle = { commentRight: ' ' }; -var cloneNode = function (obj, parent) { - if ( typeof(obj) != 'object' ) return obj; - var cloned = new obj.constructor(); +let cloneNode = function (obj, parent) { + if ( typeof obj !== 'object' ) return obj; + let cloned = new obj.constructor(); - for ( var i in obj ) { + for ( let i in obj ) { if ( !obj.hasOwnProperty(i) ) continue; - var value = obj[i]; + let value = obj[i]; - if ( i == 'parent' && typeof(value) == 'object' ) { + if ( i === 'parent' && typeof value === 'object' ) { if (parent) cloned[i] = parent; - } else if ( i == 'source' ) { + } else if ( i === 'source' ) { cloned[i] = value; } else if ( value instanceof Array ) { - cloned[i] = value.map( i => cloneNode(i, cloned) ); - } else if ( i != 'before' && i != 'after' && - i != 'between' && i != 'semicolon' ) { + cloned[i] = value.map( j => cloneNode(j, cloned) ); + } else if ( i !== 'before' && i !== 'after' && + i !== 'between' && i !== 'semicolon' ) { cloned[i] = cloneNode(value, cloned); } } @@ -37,16 +37,16 @@ var cloneNode = function (obj, parent) { return cloned; }; -export default class Node { +export default class { constructor(defaults = { }) { - for ( var name in defaults ) { + for ( let name in defaults ) { this[name] = defaults[name]; } } error(message, opts = { }) { if ( this.source ) { - var pos = this.source.start; + let pos = this.source.start; return this.source.input.error(message, pos.line, pos.column, opts); } else { return new CssSyntaxError(message); @@ -68,28 +68,28 @@ export default class Node { } toString() { - var result = ''; - var builder = (str) => result += str; + let result = ''; + let builder = (str) => result += str; this.stringify(builder); return result; } clone(overrides = { }) { - var cloned = cloneNode(this); - for ( var name in overrides ) { + let cloned = cloneNode(this); + for ( let name in overrides ) { cloned[name] = overrides[name]; } return cloned; } cloneBefore(overrides = { }) { - var cloned = this.clone(overrides); + let cloned = this.clone(overrides); this.parent.insertBefore(this, cloned); return cloned; } cloneAfter(overrides = { }) { - var cloned = this.clone(overrides); + let cloned = this.clone(overrides); this.parent.insertAfter(this, cloned); return cloned; } @@ -101,49 +101,53 @@ export default class Node { } moveTo(container) { - this.cleanStyles(this.root() == container.root()); + this.cleanStyles(this.root() === container.root()); this.removeSelf(); container.append(this); return this; } moveBefore(node) { - this.cleanStyles(this.root() == node.root()); + this.cleanStyles(this.root() === node.root()); this.removeSelf(); node.parent.insertBefore(node, this); return this; } moveAfter(node) { - this.cleanStyles(this.root() == node.root()); + this.cleanStyles(this.root() === node.root()); this.removeSelf(); node.parent.insertAfter(node, this); return this; } next() { - var index = this.parent.index(this); + let index = this.parent.index(this); return this.parent.nodes[index + 1]; } prev() { - var index = this.parent.index(this); + let index = this.parent.index(this); return this.parent.nodes[index - 1]; } toJSON() { - var fixed = { }; + let fixed = { }; - for ( var name in this ) { + for ( let name in this ) { if ( !this.hasOwnProperty(name) ) continue; - if ( name == 'parent' ) continue; - var value = this[name]; + if ( name === 'parent' ) continue; + let value = this[name]; if ( value instanceof Array ) { fixed[name] = value.map( (i) => { - return (typeof(i) == 'object' && i.toJSON) ? i.toJSON() : i; + if ( typeof i === 'object' && i.toJSON ) { + return i.toJSON(); + } else { + return i; + } }); - } else if ( typeof(value) == 'object' && value.toJSON ) { + } else if ( typeof value === 'object' && value.toJSON ) { fixed[name] = value.toJSON(); } else { fixed[name] = value; @@ -154,20 +158,20 @@ export default class Node { } style(own, detect) { - var value; + let value; if ( !detect ) detect = own; // Already had if ( own ) { value = this[own]; - if ( typeof(value) != 'undefined' ) return value; + if ( typeof value !== 'undefined' ) return value; } - var parent = this.parent; + let parent = this.parent; // Hack for first rule in CSS - if ( detect == 'before' ) { - if ( !parent || (parent.type == 'root' && parent.first == this) ) { + if ( detect === 'before' ) { + if ( !parent || parent.type === 'root' && parent.first === this ) { return ''; } } @@ -176,143 +180,143 @@ export default class Node { if ( !parent ) return defaultStyle[detect]; // Detect style by other nodes - var root = this.root(); + let root = this.root(); if ( !root.styleCache ) root.styleCache = { }; - if ( typeof(root.styleCache[detect]) != 'undefined' ) { + if ( typeof root.styleCache[detect] !== 'undefined' ) { return root.styleCache[detect]; } - if ( detect == 'semicolon' ) { + if ( detect === 'semicolon' ) { root.eachInside( (i) => { - if ( i.nodes && i.nodes.length && i.last.type == 'decl' ) { + if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { value = i.semicolon; - if ( typeof(value) != 'undefined' ) return false; + if ( typeof value !== 'undefined' ) return false; } }); - } else if ( detect == 'emptyBody' ) { + } else if ( detect === 'emptyBody' ) { root.eachInside( (i) => { if ( i.nodes && i.nodes.length === 0 ) { value = i.after; - if ( typeof(value) != 'undefined' ) return false; + if ( typeof value !== 'undefined' ) return false; } }); - } else if ( detect == 'indent' ) { + } else if ( detect === 'indent' ) { root.eachInside( (i) => { - var p = i.parent; - if ( p && p != root && p.parent && p.parent == root ) { - if ( typeof(i.before) != 'undefined' ) { - var parts = i.before.split('\n'); + let p = i.parent; + if ( p && p !== root && p.parent && p.parent === root ) { + if ( typeof i.before !== 'undefined' ) { + let parts = i.before.split('\n'); value = parts[parts.length - 1]; value = value.replace(/[^\s]/g, ''); return false; } } }); - } else if ( detect == 'beforeComment' ) { + } else if ( detect === 'beforeComment' ) { root.eachComment( (i) => { - if ( typeof(i.before) != 'undefined' ) { + if ( typeof i.before !== 'undefined' ) { value = i.before; - if ( value.indexOf('\n') != -1 ) { + if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } return false; } }); - if ( typeof(value) == 'undefined' ) { + if ( typeof value === 'undefined' ) { value = this.style(null, 'beforeDecl'); } - } else if ( detect == 'beforeDecl' ) { + } else if ( detect === 'beforeDecl' ) { root.eachDecl( (i) => { - if ( typeof(i.before) != 'undefined' ) { + if ( typeof i.before !== 'undefined' ) { value = i.before; - if ( value.indexOf('\n') != -1 ) { + if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } return false; } }); - if ( typeof(value) == 'undefined' ) { + if ( typeof value === 'undefined' ) { value = this.style(null, 'beforeRule'); } - } else if ( detect == 'beforeRule' ) { + } else if ( detect === 'beforeRule' ) { root.eachInside( (i) => { - if ( i.nodes && (i.parent != root || root.first != i) ) { - if ( typeof(i.before) != 'undefined' ) { + if ( i.nodes && (i.parent !== root || root.first !== i) ) { + if ( typeof i.before !== 'undefined' ) { value = i.before; - if ( value.indexOf('\n') != -1 ) { + if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } return false; } } }); - } else if ( detect == 'beforeClose' ) { + } else if ( detect === 'beforeClose' ) { root.eachInside( (i) => { if ( i.nodes && i.nodes.length > 0 ) { - if ( typeof(i.after) != 'undefined' ) { + if ( typeof i.after !== 'undefined' ) { value = i.after; - if ( value.indexOf('\n') != -1 ) { + if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } return false; } } }); - } else if ( detect == 'before' || detect == 'after' ) { - if ( this.type == 'decl' ) { + } else if ( detect === 'before' || detect === 'after' ) { + if ( this.type === 'decl' ) { value = this.style(null, 'beforeDecl'); - } else if ( this.type == 'comment' ) { + } else if ( this.type === 'comment' ) { value = this.style(null, 'beforeComment'); - } else if ( detect == 'before' ) { + } else if ( detect === 'before' ) { value = this.style(null, 'beforeRule'); } else { value = this.style(null, 'beforeClose'); } - var node = this.parent; - var depth = 0; - while ( node && node.type != 'root' ) { + let node = this.parent; + let depth = 0; + while ( node && node.type !== 'root' ) { depth += 1; node = node.parent; } - if ( value.indexOf('\n') != -1 ) { - var indent = this.style(null, 'indent'); + if ( value.indexOf('\n') !== -1 ) { + let indent = this.style(null, 'indent'); if ( indent.length ) { - for ( var step = 0; step < depth; step++ ) value += indent; + for ( let step = 0; step < depth; step++ ) value += indent; } } return value; - } else if ( detect == 'colon' ) { + } else if ( detect === 'colon' ) { root.eachDecl( (i) => { - if ( typeof(i.between) != 'undefined' ) { + if ( typeof i.between !== 'undefined' ) { value = i.between.replace(/[^\s:]/g, ''); return false; } }); - } else if ( detect == 'beforeOpen' ) { + } else if ( detect === 'beforeOpen' ) { root.eachInside( (i) => { - if ( i.type != 'decl' ) { + if ( i.type !== 'decl' ) { value = i.between; - if ( typeof(value) != 'undefined' ) return false; + if ( typeof value !== 'undefined' ) return false; } }); } else { root.eachInside( (i) => { value = i[own]; - if ( typeof(value) != 'undefined' ) return false; + if ( typeof value !== 'undefined' ) return false; }); } - if ( typeof(value) == 'undefined' ) value = defaultStyle[detect]; + if ( typeof value === 'undefined' ) value = defaultStyle[detect]; root.styleCache[detect] = value; return value; } root() { - var result = this; + let result = this; while ( result.parent ) result = result.parent; return result; } @@ -323,13 +327,13 @@ export default class Node { if ( !keepBetween ) delete this.between; if ( this.nodes ) { - for ( var node of this.nodes ) node.cleanStyles(keepBetween); + for ( let node of this.nodes ) node.cleanStyles(keepBetween); } } stringifyRaw(prop) { - var value = this[prop]; - var raw = this['_' + prop]; + let value = this[prop]; + let raw = this['_' + prop]; if ( raw && raw.value === value ) { return raw.raw; } else { diff --git a/lib/parse.js b/lib/parse.js index 4e57c1635..4ffdffbbd 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -1,10 +1,10 @@ import Parser from './parser'; import Input from './input'; -export default function (css, opts) { - var input = new Input(css, opts); +export default function parse(css, opts) { + let input = new Input(css, opts); - var parser = new Parser(input); + let parser = new Parser(input); parser.tokenize(); parser.loop(); diff --git a/lib/parser.js b/lib/parser.js index 33ccc4ea4..c5c3af341 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -24,7 +24,7 @@ export default class Parser { } loop() { - var token; + let token; while ( this.pos < this.tokens.length ) { token = this.tokens[this.pos]; @@ -61,17 +61,17 @@ export default class Parser { } comment(token) { - var node = new Comment(); + let node = new Comment(); this.init(node, token[2], token[3]); node.source.end = { line: token[4], column: token[5] }; - var text = token[1].slice(2, -2); + let text = token[1].slice(2, -2); if ( text.match(/^\s*$/) ) { node.left = text; node.text = ''; node.right = ''; } else { - var match = text.match(/^(\s*)([^]*[^\s])(\s*)$/); + let match = text.match(/^(\s*)([^]*[^\s])(\s*)$/); node.left = match[1]; node.text = match[2]; node.right = match[3]; @@ -79,7 +79,7 @@ export default class Parser { } emptyRule(token) { - var node = new Rule(); + let node = new Rule(); this.init(node, token[2], token[3]); node.between = ''; node.selector = ''; @@ -87,34 +87,29 @@ export default class Parser { } word() { - var token; - var end = false; - var type = null; - var colon = false; - var bracket = null; - var brackets = 0; - - var start = this.pos; + let token; + let end = false; + let type = null; + let colon = false; + let bracket = null; + let brackets = 0; + + let start = this.pos; this.pos += 1; - while ( true ) { + while ( this.pos < this.tokens.length ) { token = this.tokens[this.pos]; - if ( !token ) { - this.pos -= 1; - end = true; - break; - } type = token[0]; - if ( type == '(' ) { + if ( type === '(' ) { if ( !bracket ) bracket = token; brackets += 1; - } else if ( type == ')' ) { + } else if ( type === ')' ) { brackets -= 1; if ( brackets === 0 ) bracket = null; } else if ( brackets === 0 ) { - if ( type == ';' ) { + if ( type === ';' ) { if ( colon ) { this.decl(this.tokens.slice(start, this.pos + 1)); return; @@ -122,26 +117,30 @@ export default class Parser { break; } - } else if ( type == '{' ) { + } else if ( type === '{' ) { this.rule(this.tokens.slice(start, this.pos + 1)); return; - } else if ( type == '}' ) { + } else if ( type === '}' ) { this.pos -= 1; end = true; break; - } else if ( type == 'at-word' ) { + } else if ( type === 'at-word' ) { this.pos -= 1; break; } else { - if ( type == ':' ) colon = true; + if ( type === ':' ) colon = true; } } this.pos += 1; } + if ( this.pos === this.tokens.length ) { + this.pos -= 1; + end = true; + } if ( brackets > 0 && !this.input.safe ) { throw this.input.error('Unclosed bracket', bracket[2], bracket[3]); @@ -150,7 +149,7 @@ export default class Parser { if ( end && colon ) { while ( this.pos > start ) { token = this.tokens[this.pos][0]; - if ( token != 'space' && token != 'comment' ) break; + if ( token !== 'space' && token !== 'comment' ) break; this.pos -= 1; } this.decl(this.tokens.slice(start, this.pos + 1)); @@ -158,8 +157,8 @@ export default class Parser { } if ( this.input.safe ) { - var buffer = this.tokens.slice(start, this.pos + 1); - this.spaces += buffer.map(i => i[1]).join(''); + let buffer = this.tokens.slice(start, this.pos + 1); + this.spaces += buffer.map( i => i[1] ).join(''); } else { token = this.tokens[start]; throw this.input.error('Unknown word', token[2], token[3]); @@ -169,7 +168,7 @@ export default class Parser { rule(tokens) { tokens.pop(); - var node = new Rule(); + let node = new Rule(); this.init(node, tokens[0][2], tokens[0][3]); node.between = this.spacesFromEnd(tokens); @@ -178,11 +177,11 @@ export default class Parser { } decl(tokens) { - var node = new Declaration(); + let node = new Declaration(); this.init(node); - var last = tokens[ tokens.length - 1 ]; - if ( last[0] == ';' ) { + let last = tokens[ tokens.length - 1 ]; + if ( last[0] === ';' ) { this.semicolon = true; tokens.pop(); } @@ -192,7 +191,7 @@ export default class Parser { node.source.end = { line: last[2], column: last[3] }; } - while ( tokens[0][0] != 'word' ) { + while ( tokens[0][0] !== 'word' ) { node.before += tokens.shift()[1]; } node.source.start = { line: tokens[0][2], column: tokens[0][3] }; @@ -200,21 +199,21 @@ export default class Parser { node.prop = tokens.shift()[1]; node.between = ''; - var token; + let token; while ( tokens.length ) { token = tokens.shift(); - if ( token[0] == ':' ) { + if ( token[0] === ':' ) { node.between += token[1]; break; - } else if ( token[0] != 'space' && token[0] != 'comment' ) { + } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { this.unknownWord(node, token, tokens); } else { node.between += token[1]; } } - if ( node.prop[0] == '_' || node.prop[0] == '*' ) { + if ( node.prop[0] === '_' || node.prop[0] === '*' ) { node.before += node.prop[0]; node.prop = node.prop.slice(1); } @@ -222,28 +221,28 @@ export default class Parser { if ( this.input.safe ) this.checkMissedSemicolon(tokens); - for ( var i = tokens.length - 1; i > 0; i-- ) { + for ( let i = tokens.length - 1; i > 0; i-- ) { token = tokens[i]; - if ( token[1] == '!important' ) { + if ( token[1] === '!important' ) { node.important = true; - var string = this.stringFrom(tokens, i); + let string = this.stringFrom(tokens, i); string = this.spacesFromEnd(tokens) + string; - if ( string != ' !important' ) node._important = string; + if ( string !== ' !important' ) node._important = string; break; - } else if ( token[0] != 'space' && token[0] != 'comment' ) { + } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { break; } } this.raw(node, 'value', tokens); - if ( node.value.indexOf(':') != -1 && !this.input.safe ) { + if ( node.value.indexOf(':') !== -1 && !this.input.safe ) { this.checkMissedSemicolon(tokens); } } atrule(token) { - var node = new AtRule(); + let node = new AtRule(); node.name = token[1].slice(1); if ( node.name === '' ) { if ( this.input.safe ) { @@ -255,27 +254,29 @@ export default class Parser { } this.init(node, token[2], token[3]); - var next; - var last = false; - var open = false; - var params = []; - while ( true ) { - this.pos += 1; + let last = false; + let open = false; + let params = []; + + this.pos += 1; + while ( this.pos < this.tokens.length ) { token = this.tokens[this.pos]; - if ( !token ) { - last = true; - break; - } else if ( token[0] == ';' ) { + if ( token[0] === ';' ) { node.source.end = { line: token[2], column: token[3] }; this.semicolon = true; break; - } else if ( token[0] == '{' ) { + } else if ( token[0] === '{' ) { open = true; break; } else { params.push(token); } + + this.pos += 1; + } + if ( this.pos === this.tokens.length ) { + last = true; } node.between = this.spacesFromEnd(params); @@ -320,7 +321,7 @@ export default class Parser { endFile() { if ( this.current.parent && !this.input.safe ) { - var pos = this.current.source.start; + let pos = this.current.source.start; throw this.input.error('Unclosed block', pos.line, pos.column); } @@ -347,24 +348,24 @@ export default class Parser { } checkMissedSemicolon(tokens) { - var prev = null; - var colon = false; - var brackets = 0; - var type, token; - for ( var i = 0; i < tokens.length; i++ ) { + let prev = null; + let colon = false; + let brackets = 0; + let type, token; + for ( let i = 0; i < tokens.length; i++ ) { token = tokens[i]; type = token[0]; - if ( type == '(' ) { + if ( type === '(' ) { brackets += 1; - } else if ( type == ')' ) { + } else if ( type === ')' ) { brackets -= 0; - } else if ( brackets === 0 && type == ':' ) { + } else if ( brackets === 0 && type === ':' ) { if ( !prev && this.input.safe ) { continue; } else if ( !prev ) { throw this.input.error('Double colon', token[2], token[3]); - } else if ( prev[0] == 'word' && prev[1] == 'progid' ) { + } else if ( prev[0] === 'word' && prev[1] === 'progid' ) { continue; } else { colon = i; @@ -378,25 +379,25 @@ export default class Parser { if ( colon === false ) return; if ( this.input.safe ) { - var split; + let split; for ( split = colon - 1; split >= 0; split-- ) { - if ( tokens[split][0] == 'word' ) break; + if ( tokens[split][0] === 'word' ) break; } for ( split -= 1; split >= 0; split-- ) { - if ( tokens[split][0] != 'space' ) { + if ( tokens[split][0] !== 'space' ) { split += 1; break; } } - var other = tokens.splice(split, tokens.length - split); + let other = tokens.splice(split, tokens.length - split); this.decl(other); } else { - var founded = 0; - for ( var j = colon - 1; j >= 0; j-- ) { + let founded = 0; + for ( let j = colon - 1; j >= 0; j-- ) { token = tokens[j]; - if ( token[0] != 'space' ) { + if ( token[0] !== 'space' ) { founded += 1; - if ( founded == 2 ) break; + if ( founded === 2 ) break; } } throw this.input.error('Missed semicolon', token[4], token[5]); @@ -411,22 +412,22 @@ export default class Parser { node.source = { start: { line, column }, input: this.input }; node.before = this.spaces; this.spaces = ''; - if ( node.type != 'comment' ) this.semicolon = false; + if ( node.type !== 'comment' ) this.semicolon = false; } raw(node, prop, tokens) { - var token; - var value = ''; - var clean = true; + let token; + let value = ''; + let clean = true; for ( token of tokens ) { - if ( token[0] == 'comment' ) { + if ( token[0] === 'comment' ) { clean = false; } else { value += token[1]; } } if ( !clean ) { - var origin = ''; + let origin = ''; for ( token of tokens ) origin += token[1]; node['_' + prop] = { value: value, raw: origin }; } @@ -434,30 +435,30 @@ export default class Parser { } spacesFromEnd(tokens) { - var next; - var spaces = ''; + let next; + let spaces = ''; while ( tokens.length ) { next = tokens[ tokens.length - 1 ][0]; - if ( next != 'space' && next != 'comment' ) break; + if ( next !== 'space' && next !== 'comment' ) break; spaces += tokens.pop()[1]; } return spaces; } spacesFromStart(tokens) { - var next; - var spaces = ''; + let next; + let spaces = ''; while ( tokens.length ) { next = tokens[0][0]; - if ( next != 'space' && next != 'comment' ) break; + if ( next !== 'space' && next !== 'comment' ) break; spaces += tokens.shift()[1]; } return spaces; } stringFrom(tokens, from) { - var result = ''; - for ( var i = from; i < tokens.length; i++ ) { + let result = ''; + for ( let i = from; i < tokens.length; i++ ) { result += tokens[i][1]; } tokens.splice(from, tokens.length - from); diff --git a/lib/postcss.js b/lib/postcss.js index c622a1234..2c61b1067 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -8,16 +8,16 @@ import list from './list'; import Rule from './rule'; import Root from './root'; -var postcss = function (...plugins) { - if ( plugins.length == 1 && Array.isArray(plugins[0]) ) { +let postcss = function (...plugins) { + if ( plugins.length === 1 && Array.isArray(plugins[0]) ) { plugins = plugins[0]; } return new Processor(plugins); }; postcss.plugin = function (name, initializer) { - var creator = function () { - var transformer = initializer.apply(this, arguments); + let creator = function () { + let transformer = initializer.apply(this, arguments); transformer.postcssPlugin = name; transformer.postcssVersion = Processor.prototype.version; return transformer; diff --git a/lib/previous-map.js b/lib/previous-map.js index 39c7e8a6d..24c7a4250 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -8,8 +8,8 @@ export default class PreviousMap { this.loadAnnotation(css); this.inline = this.startWith(this.annotation, 'data:'); - var prev = opts.map ? opts.map.prev : undefined; - var text = this.loadMap(opts.from, prev); + let prev = opts.map ? opts.map.prev : undefined; + let text = this.loadMap(opts.from, prev); if ( text ) this.text = text; } @@ -27,17 +27,17 @@ export default class PreviousMap { startWith(string, start) { if ( !string ) return false; - return string.substr(0, start.length) == start; + return string.substr(0, start.length) === start; } loadAnnotation(css) { - var match = css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//); + let match = css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//); if ( match ) this.annotation = match[1].trim(); } decodeInline(text) { - var uri = 'data:application/json,'; - var base64 = 'data:application/json;base64,'; + let uri = 'data:application/json,'; + let base64 = 'data:application/json;base64,'; if ( this.startWith(text, uri) ) { return decodeURIComponent( text.substr(uri.length) ); @@ -46,23 +46,23 @@ export default class PreviousMap { return Base64.decode( text.substr(base64.length) ); } else { - var encoding = text.match(/data:application\/json;([^,]+),/)[1]; + let encoding = text.match(/data:application\/json;([^,]+),/)[1]; throw new Error('Unsupported source map encoding ' + encoding); } } loadMap(file, prev) { - if ( prev === false ) return; + if ( prev === false ) return false; if ( prev ) { - if ( typeof(prev) == 'string' ) { + if ( typeof prev === 'string' ) { return prev; } else if ( prev instanceof mozilla.SourceMapConsumer ) { return mozilla.SourceMapGenerator .fromSourceMap(prev).toString(); } else if ( prev instanceof mozilla.SourceMapGenerator ) { return prev.toString(); - } else if ( typeof(prev) == 'object' && prev.mappings ) { + } else if ( typeof prev === 'object' && prev.mappings ) { return JSON.stringify(prev); } else { throw new Error('Unsupported previous source map format: ' + @@ -73,12 +73,14 @@ export default class PreviousMap { return this.decodeInline(this.annotation); } else if ( this.annotation ) { - var map = this.annotation; + let map = this.annotation; if ( file ) map = path.join(path.dirname(file), map); this.root = path.dirname(map); if ( fs.existsSync && fs.existsSync(map) ) { return fs.readFileSync(map, 'utf-8').toString().trim(); + } else { + return false; } } } diff --git a/lib/processor.js b/lib/processor.js index b7a1564e4..3118dd9a6 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -1,5 +1,4 @@ -import LazyResult from './lazy-result'; -import { version } from '../package'; +import LazyResult from './lazy-result'; export default class Processor { constructor(plugins = []) { @@ -8,7 +7,7 @@ export default class Processor { use(plugin) { plugin = this.normalize(plugin); - if ( typeof(plugin) == 'object' && Array.isArray(plugin.plugins) ) { + if ( typeof plugin === 'object' && Array.isArray(plugin.plugins) ) { this.plugins = this.plugins.concat(plugin.plugins); } else { this.plugins.push(plugin); @@ -21,8 +20,8 @@ export default class Processor { } normalize(plugin) { - var type = typeof(plugin); - if ( (type == 'object' || type == 'function') && plugin.postcss ) { + let type = typeof plugin; + if ( (type === 'object' || type === 'function') && plugin.postcss ) { return plugin.postcss; } else { return plugin; @@ -31,4 +30,4 @@ export default class Processor { } -Processor.prototype.version = version; +Processor.prototype.version = require('../package').version; diff --git a/lib/result.js b/lib/result.js index 905c71642..8713ebed1 100644 --- a/lib/result.js +++ b/lib/result.js @@ -25,7 +25,7 @@ export default class Result { } warnings() { - return this.messages.filter( i => i.type == 'warning' ); + return this.messages.filter( i => i.type === 'warning' ); } } diff --git a/lib/root.js b/lib/root.js index fdf700905..7ca40b0cf 100644 --- a/lib/root.js +++ b/lib/root.js @@ -1,8 +1,4 @@ -import Declaration from './declaration'; -import Container from './container'; -import Comment from './comment'; -import AtRule from './at-rule'; -import Rule from './rule'; +import Container from './container'; export default class Root extends Container { constructor(defaults) { @@ -22,18 +18,18 @@ export default class Root extends Container { } normalize(child, sample, type) { - var nodes = super.normalize(child); + let nodes = super.normalize(child); if ( sample ) { - if ( type == 'prepend' ) { + if ( type === 'prepend' ) { if ( this.nodes.length > 1 ) { sample.before = this.nodes[1].before; } else { delete sample.before; } } else { - for ( var node of nodes ) { - if ( this.first != sample ) node.before = sample.before; + for ( let node of nodes ) { + if ( this.first !== sample ) node.before = sample.before; } } } @@ -47,10 +43,10 @@ export default class Root extends Container { } toResult(opts = { }) { - import LazyResult from './lazy-result'; - import Processor from './processor'; + let LazyResult = require('./lazy-result'); + let Processor = require('./processor'); - var lazy = new LazyResult(new Processor(), this, opts); + let lazy = new LazyResult(new Processor(), this, opts); return lazy.stringify(); } } diff --git a/lib/rule.js b/lib/rule.js index 008ae096e..fb9c39c95 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -1,6 +1,5 @@ -import Declaration from './declaration'; -import Container from './container'; -import list from './list'; +import Container from './container'; +import list from './list'; export default class Rule extends Container { constructor(defaults) { diff --git a/lib/tokenize.js b/lib/tokenize.js index 706ef6f74..6618e80c8 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -1,4 +1,4 @@ -var singleQuote = "'".charCodeAt(0), +let singleQuote = "'".charCodeAt(0), doubleQuote = '"'.charCodeAt(0), backslash = '\\'.charCodeAt(0), slash = '/'.charCodeAt(0), @@ -19,19 +19,27 @@ var singleQuote = "'".charCodeAt(0), wordEnd = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g, badBracket = /.[\\\/\("'\n]/; -export default function (input) { - var tokens = []; - var css = input.css.valueOf(); +var spaces = { + [cr]: true, + [tab]: true, + [feed]: true, + [space]: true, + [newline]: true +}; - var code, next, quote, lines, last, content, escape, - nextLine, nextOffset, escaped, escapePos, bad; +export default function tokenize(input) { + let tokens = []; + let css = input.css.valueOf(); - var length = css.length; - var offset = -1; - var line = 1; - var pos = 0; + let code, next, quote, lines, last, content, escape, + nextLine, nextOffset, escaped, escapePos; - var unclosed = function (what, end) { + let length = css.length; + let offset = -1; + let line = 1; + let pos = 0; + + let unclosed = function (what, end) { if ( input.safe ) { css += end; next = css.length - 1; @@ -43,7 +51,7 @@ export default function (input) { while ( pos < length ) { code = css.charCodeAt(pos); - if ( code == newline ) { + if ( code === newline ) { offset = pos; line += 1; } @@ -58,15 +66,11 @@ export default function (input) { do { next += 1; code = css.charCodeAt(next); - if ( code == newline ) { + if ( code === newline ) { offset = next; line += 1; } - } while ( code == space || - code == newline || - code == tab || - code == cr || - code == feed ); + } while ( spaces[code] ); tokens.push(['space', css.slice(pos, next)]); pos = next - 1; @@ -92,7 +96,7 @@ export default function (input) { next = css.indexOf(')', pos + 1); content = css.slice(pos, next + 1); - if ( next == -1 || badBracket.test(content) ) { + if ( next === -1 || badBracket.test(content) ) { tokens.push(['(', '(', line, pos - offset]); } else { tokens.push(['brackets', content, @@ -110,14 +114,14 @@ export default function (input) { case singleQuote: case doubleQuote: - quote = code == singleQuote ? "'" : '"'; + quote = code === singleQuote ? "'" : '"'; next = pos; do { escaped = false; next = css.indexOf(quote, next + 1); - if ( next == -1 ) unclosed('quote', quote); + if ( next === -1 ) unclosed('quote', quote); escapePos = next; - while ( css.charCodeAt(escapePos - 1) == backslash ) { + while ( css.charCodeAt(escapePos - 1) === backslash ) { escapePos -= 1; escaped = !escaped; } @@ -148,19 +152,12 @@ export default function (input) { case backslash: next = pos; escape = true; - while ( css.charCodeAt(next + 1) == backslash ) { + while ( css.charCodeAt(next + 1) === backslash ) { next += 1; escape = !escape; } code = css.charCodeAt(next + 1); - if ( escape && (code != slash && - code != space && - code != newline && - code != tab && - code != cr && - code != feed ) ) { - next += 1; - } + if ( escape && !spaces[code] ) next += 1; tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset @@ -169,7 +166,7 @@ export default function (input) { break; default: - if ( code == slash && css.charCodeAt(pos + 1) == asterisk ) { + if ( code === slash && css.charCodeAt(pos + 1) === asterisk ) { next = css.indexOf('*/', pos + 2) + 1; if ( next === 0 ) unclosed('comment', '*/'); diff --git a/lib/vendor.js b/lib/vendor.js index 2a7d798a2..c074ae9fe 100644 --- a/lib/vendor.js +++ b/lib/vendor.js @@ -1,8 +1,8 @@ export default { prefix(prop) { - if ( prop[0] == '-' ) { - var sep = prop.indexOf('-', 1); + if ( prop[0] === '-' ) { + let sep = prop.indexOf('-', 1); return prop.substr(0, sep + 1); } else { return ''; @@ -10,8 +10,8 @@ export default { }, unprefixed(prop) { - if ( prop[0] == '-' ) { - var sep = prop.indexOf('-', 1); + if ( prop[0] === '-' ) { + let sep = prop.indexOf('-', 1); return prop.substr(sep + 1); } else { return prop; diff --git a/lib/warning.js b/lib/warning.js index f6d619c73..f9c7c9476 100644 --- a/lib/warning.js +++ b/lib/warning.js @@ -2,7 +2,7 @@ export default class Warning { constructor(text, opts = { }) { this.type = 'warning'; this.text = text; - for ( var opt in opts ) { + for ( let opt in opts ) { this[opt] = opts[opt]; } } diff --git a/package.json b/package.json index c6a9db14a..640caafe0 100644 --- a/package.json +++ b/package.json @@ -13,15 +13,14 @@ "dependencies": { "source-map": "~0.4.1", "js-base64": "~2.1.7", - "babel": "4.6.6" + "babel": "4.7.7" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-bench-summary": "0.1.0", "gulp-json-editor": "2.2.1", - "jshint-stylish": "1.0.1", - "gulp-jshint": "1.9.2", "gonzales-pe": "3.0.0-26", + "gulp-eslint": "0.6.0", "browserify": "9.0.3", "gulp-babel": "4.0.0", "gulp-bench": "1.1.0", @@ -29,17 +28,18 @@ "node-sass": "2.0.1", "gulp-util": "3.0.4", "execSync": "1.0.2", - "fs-extra": "0.16.4", + "fs-extra": "0.16.5", "gonzales": "1.0.7", "through2": "0.6.3", "stylecow": "4.2.4", "request": "2.53.0", - "cssnext": "1.0.1", + "cssnext": "1.1.0", "rework": "1.0.1", "mensch": "0.3.1", "stylus": "0.50.0", - "sinon": "1.12.2", - "mocha": "2.1.0", + "eslint": "0.16.1", + "sinon": "1.13.0", + "mocha": "2.2.1", "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.4.0", diff --git a/tasks/compare.js b/tasks/compare.js index d58f4e010..ab5a89fc4 100644 --- a/tasks/compare.js +++ b/tasks/compare.js @@ -29,8 +29,8 @@ function result(buff) { function pipe(file, alldone) { var current = result(file); - return through.obj(function (file, type, done) { - var prev = result(file); + return through.obj(function (prevFile, type, done) { + var prev = result(prevFile); compare(prev, current); done(); }, function (callback) { diff --git a/tasks/get.js b/tasks/get.js index ecb6d9e89..1549c9859 100644 --- a/tasks/get.js +++ b/tasks/get.js @@ -17,13 +17,15 @@ module.exports = function (url, callback) { res.on('end', function () { var buffer = Buffer.concat(chunks); - if ( res.headers['content-encoding'] == 'gzip' ) { + if ( res.headers['content-encoding'] === 'gzip' ) { zlib.gunzip(buffer, function (err, decoded) { + if ( err ) throw err; callback(decoded.toString()); }); - } else if ( res.headers['content-encoding'] == 'deflate' ) { + } else if ( res.headers['content-encoding'] === 'deflate' ) { zlib.inflate(buffer, function (err, decoded) { + if ( err ) throw err; callback(decoded.toString()); }); diff --git a/tasks/styles.js b/tasks/styles.js index d47fb239f..d3dbf4a77 100644 --- a/tasks/styles.js +++ b/tasks/styles.js @@ -22,8 +22,10 @@ var findStyles = function (url, callback) { }; module.exports = function (sites, callbacks) { + var nextLink, nextSite; + var links = []; - var nextLink = function () { + nextLink = function () { if ( links.length === 0 ) { nextSite(); return; @@ -37,7 +39,7 @@ module.exports = function (sites, callbacks) { }); }; - var nextSite = function () { + nextSite = function () { if ( sites.length === 0 ) { callbacks.done(); return; diff --git a/test/at-rule.js b/test/at-rule.js index b42191c3e..cf0f78adb 100644 --- a/test/at-rule.js +++ b/test/at-rule.js @@ -1,14 +1,12 @@ -import Declaration from '../lib/declaration'; -import AtRule from '../lib/at-rule'; -import parse from '../lib/parse'; -import Rule from '../lib/rule'; +import AtRule from '../lib/at-rule'; +import parse from '../lib/parse'; import { expect } from 'chai'; describe('AtRule', () => { it('initializes with properties', () => { - var rule = new AtRule({ name: 'encoding', params: '"utf-8"' }); + let rule = new AtRule({ name: 'encoding', params: '"utf-8"' }); expect(rule.name).to.eql('encoding'); expect(rule.params).to.eql('"utf-8"'); @@ -19,13 +17,13 @@ describe('AtRule', () => { describe('toString()', () => { it('inserts default spaces', () => { - var rule = new AtRule({ name: 'page', params: 1, nodes: [] }); + let rule = new AtRule({ name: 'page', params: 1, nodes: [] }); expect(rule.toString()).to.eql('@page 1 {}'); }); it('clone spaces from another at-rule', () => { - var root = parse('@page{}a{}'); - var rule = new AtRule({ name: 'page', params: 1, nodes: [] }); + let root = parse('@page{}a{}'); + let rule = new AtRule({ name: 'page', params: 1, nodes: [] }); root.append(rule); expect(rule.toString()).to.eql('@page 1{}'); diff --git a/test/comment.js b/test/comment.js index 44a0f92bb..348292b77 100644 --- a/test/comment.js +++ b/test/comment.js @@ -8,13 +8,13 @@ describe('Comment', () => { describe('toString()', () => { it('inserts default spaces', () => { - var comment = new Comment({ text: 'hi' }); + let comment = new Comment({ text: 'hi' }); expect(comment.toString()).to.eql('/* hi */'); }); it('clone spaces from another comment', () => { - var root = parse('a{} /*hello*/'); - var comment = new Comment({ text: 'world' }); + let root = parse('a{} /*hello*/'); + let comment = new Comment({ text: 'world' }); root.append(comment); expect(comment.toString()).to.eql(' /*world*/'); diff --git a/test/container.js b/test/container.js index d1a18755d..ae545f4a9 100644 --- a/test/container.js +++ b/test/container.js @@ -1,12 +1,11 @@ import Declaration from '../lib/declaration'; -import Container from '../lib/container'; import parse from '../lib/parse'; import Rule from '../lib/rule'; import Root from '../lib/root'; import { expect } from 'chai'; -var example = 'a { a: 1; b: 2 }' + +let example = 'a { a: 1; b: 2 }' + '/* a */' + '@keyframes anim {' + '/* b */' + @@ -25,7 +24,7 @@ describe('Container', () => { describe('push()', () => { it('adds child without checks', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.push(new Declaration({ prop: 'c', value: '3' })); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); expect(rule.nodes.length).to.eql(3); @@ -37,10 +36,10 @@ describe('Container', () => { describe('each()', () => { it('iterates', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var indexes = []; + let rule = parse('a { a: 1; b: 2 }').first; + let indexes = []; - var result = rule.each( (decl, i) => { + let result = rule.each( (decl, i) => { indexes.push(i); expect(decl).to.eql(rule.nodes[i]); }); @@ -50,8 +49,8 @@ describe('Container', () => { }); it('iterates with prepend', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var size = 0; + let rule = parse('a { a: 1; b: 2 }').first; + let size = 0; rule.each( () => { rule.prepend({ prop: 'color', value: 'aqua' }); @@ -62,11 +61,11 @@ describe('Container', () => { }); it('iterates with prepend insertBefore', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var size = 0; + let rule = parse('a { a: 1; b: 2 }').first; + let size = 0; rule.each( (decl) => { - if ( decl.prop == 'a' ) { + if ( decl.prop === 'a' ) { rule.insertBefore(decl, { prop: 'c', value: '3' }); } size += 1; @@ -76,11 +75,11 @@ describe('Container', () => { }); it('iterates with append insertBefore', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var size = 0; + let rule = parse('a { a: 1; b: 2 }').first; + let size = 0; rule.each( (decl, i) => { - if ( decl.prop == 'a' ) { + if ( decl.prop === 'a' ) { rule.insertBefore(i + 1, { prop: 'c', value: '3' }); } size += 1; @@ -90,8 +89,8 @@ describe('Container', () => { }); it('iterates with prepend insertAfter', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var size = 0; + let rule = parse('a { a: 1; b: 2 }').first; + let size = 0; rule.each( (decl, i) => { rule.insertAfter(i - 1, { prop: 'c', value: '3' }); @@ -102,11 +101,11 @@ describe('Container', () => { }); it('iterates with append insertAfter', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var size = 0; + let rule = parse('a { a: 1; b: 2 }').first; + let size = 0; rule.each( (decl, i) => { - if ( decl.prop == 'a' ) { + if ( decl.prop === 'a' ) { rule.insertAfter(i, { prop: 'c', value: '3' }); } size += 1; @@ -116,8 +115,8 @@ describe('Container', () => { }); it('iterates with remove', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var size = 0; + let rule = parse('a { a: 1; b: 2 }').first; + let size = 0; rule.each( () => { rule.remove(0); @@ -128,10 +127,10 @@ describe('Container', () => { }); it('breaks iteration', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var indexes = []; + let rule = parse('a { a: 1; b: 2 }').first; + let indexes = []; - var result = rule.each( (decl, i) => { + let result = rule.each( (decl, i) => { indexes.push(i); return false; }); @@ -141,10 +140,10 @@ describe('Container', () => { }); it('allows to change children', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var props = []; + let rule = parse('a { a: 1; b: 2 }').first; + let props = []; - var result = rule.each( (decl, i) => { + rule.each( (decl) => { props.push(decl.prop); rule.nodes = [rule.last, rule.first]; }); @@ -157,10 +156,10 @@ describe('Container', () => { describe('eachInside()', () => { it('iterates', () => { - var types = []; - var indexes = []; + let types = []; + let indexes = []; - var result = parse(example).eachInside( (node, i) => { + let result = parse(example).eachInside( (node, i) => { types.push(node.type); indexes.push(i); }); @@ -173,9 +172,9 @@ describe('Container', () => { }); it('breaks iteration', () => { - var indexes = []; + let indexes = []; - var result = parse(example).eachInside( (decl, i) => { + let result = parse(example).eachInside( (decl, i) => { indexes.push(i); return false; }); @@ -189,10 +188,10 @@ describe('Container', () => { describe('eachDecl()', () => { it('iterates', () => { - var props = []; - var indexes = []; + let props = []; + let indexes = []; - var result = parse(example).eachDecl( (decl, i) => { + let result = parse(example).eachDecl( (decl, i) => { props.push(decl.prop); indexes.push(i); }); @@ -203,7 +202,7 @@ describe('Container', () => { }); it('iterates with changes', () => { - var size = 0; + let size = 0; parse(example).eachDecl( (decl, i) => { decl.parent.remove(i); size += 1; @@ -212,9 +211,9 @@ describe('Container', () => { }); it('breaks iteration', () => { - var indexes = []; + let indexes = []; - var result = parse(example).eachDecl( (decl, i) => { + let result = parse(example).eachDecl( (decl, i) => { indexes.push(i); return false; }); @@ -224,8 +223,8 @@ describe('Container', () => { }); it('filters declarations by property name', () => { - var css = parse('@page{a{one:1}}b{one:1;two:2}'); - var size = 0; + let css = parse('@page{a{one:1}}b{one:1;two:2}'); + let size = 0; css.eachDecl('one', (decl) => { expect(decl.prop).to.eql('one'); @@ -236,8 +235,8 @@ describe('Container', () => { }); it('filters declarations by property regexp', () => { - var css = parse('@page{a{one:1}}b{one-x:1;two:2}'); - var size = 0; + let css = parse('@page{a{one:1}}b{one-x:1;two:2}'); + let size = 0; css.eachDecl(/one(-x)?/, () => size += 1 ); @@ -249,10 +248,10 @@ describe('Container', () => { describe('eachComment()', () => { it('iterates', () => { - var texts = []; - var indexes = []; + let texts = []; + let indexes = []; - var result = parse(example).eachComment( (comment, i) => { + let result = parse(example).eachComment( (comment, i) => { texts.push(comment.text); indexes.push(i); }); @@ -263,7 +262,7 @@ describe('Container', () => { }); it('iterates with changes', () => { - var size = 0; + let size = 0; parse(example).eachComment( (comment, i) => { comment.parent.remove(i); size += 1; @@ -272,9 +271,9 @@ describe('Container', () => { }); it('breaks iteration', () => { - var indexes = []; + let indexes = []; - var result = parse(example).eachComment( (comment, i) => { + let result = parse(example).eachComment( (comment, i) => { indexes.push(i); return false; }); @@ -288,10 +287,10 @@ describe('Container', () => { describe('eachRule()', () => { it('iterates', () => { - var selectors = []; - var indexes = []; + let selectors = []; + let indexes = []; - var result = parse(example).eachRule( (rule, i) => { + let result = parse(example).eachRule( (rule, i) => { selectors.push(rule.selector); indexes.push(i); }); @@ -302,7 +301,7 @@ describe('Container', () => { }); it('iterates with changes', () => { - var size = 0; + let size = 0; parse(example).eachRule( (rule, i) => { rule.parent.remove(i); size += 1; @@ -311,9 +310,9 @@ describe('Container', () => { }); it('breaks iteration', () => { - var indexes = []; + let indexes = []; - var result = parse(example).eachRule( (rule, i) => { + let result = parse(example).eachRule( (rule, i) => { indexes.push(i); return false; }); @@ -327,10 +326,10 @@ describe('Container', () => { describe('eachAtRule()', () => { it('iterates', () => { - var names = []; - var indexes = []; + let names = []; + let indexes = []; - var result = parse(example).eachAtRule( (atrule, i) => { + let result = parse(example).eachAtRule( (atrule, i) => { names.push(atrule.name); indexes.push(i); }); @@ -341,7 +340,7 @@ describe('Container', () => { }); it('iterates with changes', () => { - var size = 0; + let size = 0; parse(example).eachAtRule( (atrule, i) => { atrule.parent.remove(i); size += 1; @@ -350,9 +349,9 @@ describe('Container', () => { }); it('breaks iteration', () => { - var indexes = []; + let indexes = []; - var result = parse(example).eachAtRule( (atrule, i) => { + let result = parse(example).eachAtRule( (atrule, i) => { indexes.push(i); return false; }); @@ -362,8 +361,8 @@ describe('Container', () => { }); it('filters at-rules by name', () => { - var css = parse('@page{@page 2{}}@media print{@page{}}'); - var size = 0; + let css = parse('@page{@page 2{}}@media print{@page{}}'); + let size = 0; css.eachAtRule('page', (atrule) => { expect(atrule.name).to.eql('page'); @@ -374,8 +373,8 @@ describe('Container', () => { }); it('filters at-rules by name regexp', () => { - var css = parse('@page{@page 2{}}@media print{@page{}}'); - var size = 0; + let css = parse('@page{@page 2{}}@media print{@page{}}'); + let size = 0; css.eachAtRule(/page/, () => size += 1 ); @@ -387,52 +386,52 @@ describe('Container', () => { describe('append()', () => { it('appends child', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); expect(rule.last.before).to.eql(' '); }); it('has declaration shortcut', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); }); it('has rule shortcut', () => { - var root = new Root(); + let root = new Root(); root.append({ selector: 'a' }); expect(root.first.toString()).to.eql('a {}'); }); it('has at-rule shortcut', () => { - var root = new Root(); + let root = new Root(); root.append({ name: 'encoding', params: '"utf-8"' }); expect(root.first.toString()).to.eql('@encoding "utf-8"'); }); it('has comment shortcut', () => { - var root = new Root(); + let root = new Root(); root.append({ text: 'ok' }); expect(root.first.toString()).to.eql('/* ok */'); }); it('receives root', () => { - var css = parse('a {}'); + let css = parse('a {}'); css.append( parse('b {}') ); expect(css.toString()).to.eql('a {}\nb {}'); }); it('reveives string', () => { - var root = new Root(); + let root = new Root(); root.append('a{}b{}'); root.first.append('color:black'); expect(root.toString()).to.eql('a {\n color: black\n}\nb {}'); }); it('receives array', () => { - var a = parse('a{ z-index: 1 }'); - var b = parse('b{width:1px;height:2px}'); + let a = parse('a{ z-index: 1 }'); + let b = parse('b{width:1px;height:2px}'); a.first.append( b.first.nodes ); expect(a.toString()).to.eql( @@ -441,8 +440,8 @@ describe('Container', () => { }); it('clones node on insert', () => { - var a = parse('a{}'); - var b = parse('b{}'); + let a = parse('a{}'); + let b = parse('b{}'); b.append(a.first); b.last.selector = 'b a'; @@ -456,33 +455,33 @@ describe('Container', () => { describe('prepend()', () => { it('prepends child', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { c: 3; a: 1; b: 2 }'); expect(rule.first.before).to.eql(' '); }); it('receive hash instead of declaration', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { c: 3; a: 1; b: 2 }'); }); it('receives root', () => { - var css = parse('a {}'); + let css = parse('a {}'); css.prepend( parse('b {}') ); expect(css.toString()).to.eql('b {}\na {}'); }); it('receives root', () => { - var css = parse('a {}'); + let css = parse('a {}'); css.prepend('b {}'); expect(css.toString()).to.eql('b {}\na {}'); }); it('receives array', () => { - var a = parse('a{ z-index: 1 }'); - var b = parse('b{width:1px;height:2px}'); + let a = parse('a{ z-index: 1 }'); + let b = parse('b{width:1px;height:2px}'); a.first.prepend( b.first.nodes ); expect(a.toString()).to.eql( @@ -490,7 +489,7 @@ describe('Container', () => { }); it('works on empty container', () => { - var root = parse(''); + let root = parse(''); root.prepend( new Rule({ selector: 'a' }) ); expect(root.toString()).to.eql('a {}'); }); @@ -500,27 +499,27 @@ describe('Container', () => { describe('insertBefore()', () => { it('inserts child', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.insertBefore(1, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); expect(rule.nodes[1].before).to.eql(' '); }); it('works with nodes too', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.insertBefore(rule.nodes[1], { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); }); it('receive hash instead of declaration', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.insertBefore(1, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); }); it('receives array', () => { - var a = parse('a{ color: red; z-index: 1 }'); - var b = parse('b{width:1;height:2}'); + let a = parse('a{ color: red; z-index: 1 }'); + let b = parse('b{width:1;height:2}'); a.first.insertBefore(1, b.first.nodes); expect(a.toString()).to.eql( @@ -532,27 +531,27 @@ describe('Container', () => { describe('insertAfter()', () => { it('inserts child', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.insertAfter(0, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); expect(rule.nodes[1].before).to.eql(' '); }); it('works with nodes too', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.insertAfter(rule.first, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); }); it('receive hash instead of declaration', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.insertAfter(0, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); }); it('receives array', () => { - var a = parse('a{ color: red; z-index: 1 }'); - var b = parse('b{width:1;height:2}'); + let a = parse('a{ color: red; z-index: 1 }'); + let b = parse('b{width:1;height:2}'); a.first.insertAfter(0, b.first.nodes); expect(a.toString()).to.eql( @@ -564,20 +563,20 @@ describe('Container', () => { describe('remove()', () => { it('removes by index', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.remove(1); expect(rule.toString()).to.eql('a { a: 1 }'); }); it('removes by node', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.remove(rule.last); expect(rule.toString()).to.eql('a { a: 1 }'); }); it('cleans parent in removed node', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var decl = rule.first; + let rule = parse('a { a: 1; b: 2 }').first; + let decl = rule.first; rule.remove(decl); expect(decl.parent).to.not.exist; }); @@ -587,8 +586,8 @@ describe('Container', () => { describe('removeAll()', () => { it('removes all children', () => { - var rule = parse('a { a: 1; b: 2 }').first; - var decl = rule.first; + let rule = parse('a { a: 1; b: 2 }').first; + let decl = rule.first; rule.removeAll(); expect(decl.parent).to.not.exist; @@ -600,27 +599,27 @@ describe('Container', () => { describe('replaceValues()', () => { it('replaces strings', () => { - var css = parse('a{one:1}b{two:1 2}'); - var result = css.replaceValues('1', 'A'); + let css = parse('a{one:1}b{two:1 2}'); + let result = css.replaceValues('1', 'A'); expect(result).to.eql(css); expect(css.toString()).to.eql('a{one:A}b{two:A 2}'); }); it('replaces regpexp', () => { - var css = parse('a{one:1}b{two:1 2}'); + let css = parse('a{one:1}b{two:1 2}'); css.replaceValues(/\d/g, i => i + 'A'); expect(css.toString()).to.eql('a{one:1A}b{two:1A 2A}'); }); it('filters properties', () => { - var css = parse('a{one:1}b{two:1 2}'); + let css = parse('a{one:1}b{two:1 2}'); css.replaceValues('1', { props: ['one'] }, 'A'); expect(css.toString()).to.eql('a{one:A}b{two:1 2}'); }); it('uses fast check', () => { - var css = parse('a{one:1}b{two:1 2}'); + let css = parse('a{one:1}b{two:1 2}'); css.replaceValues('1', { fast: '2' }, 'A'); expect(css.toString()).to.eql('a{one:1}b{two:A 2}'); }); @@ -630,7 +629,7 @@ describe('Container', () => { describe('any()', () => { it('return true if all children return true', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; expect(rule.every( i => i.prop.match(/a|b/) )).to.be.true; expect(rule.every( i => i.prop.match(/b/) )).to.be.false; }); @@ -640,9 +639,9 @@ describe('Container', () => { describe('some()', () => { it('return true if all children return true', () => { - var rule = parse('a { a: 1; b: 2 }').first; - expect(rule.some( i => i.prop == 'b' )).to.be.true; - expect(rule.some( i => i.prop == 'c' )).to.be.false; + let rule = parse('a { a: 1; b: 2 }').first; + expect(rule.some( i => i.prop === 'b' )).to.be.true; + expect(rule.some( i => i.prop === 'c' )).to.be.false; }); }); @@ -650,12 +649,12 @@ describe('Container', () => { describe('index()', () => { it('returns child index', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; expect(rule.index( rule.nodes[1] )).to.eql(1); }); it('returns argument if it(is number', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; expect(rule.index(2)).to.eql(2); }); @@ -664,7 +663,7 @@ describe('Container', () => { describe('first', () => { it('returns first child', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; expect(rule.first.prop).to.eql('a'); }); @@ -673,7 +672,7 @@ describe('Container', () => { describe('last', () => { it('returns last child', () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; expect(rule.last.prop).to.eql('b'); }); @@ -682,7 +681,7 @@ describe('Container', () => { describe('normalize()', () => { it("doesn't normalize new children with exists before", () => { - var rule = parse('a { a: 1; b: 2 }').first; + let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3', before: '\n ' }); expect(rule.toString()).to.eql('a { a: 1; b: 2;\n c: 3 }'); }); diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index d932c0ffd..45a08797d 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -5,8 +5,8 @@ import Concat from 'concat-with-sourcemaps'; import { expect } from 'chai'; import path from 'path'; -var parseError = function (css, opts) { - var error; +let parseError = function (css, opts) { + let error; try { parse(css, opts); } catch (e) { @@ -22,7 +22,7 @@ var parseError = function (css, opts) { describe('CssSyntaxError', () => { it('saves source', () => { - var error = parseError('a {\n content: "\n}'); + let error = parseError('a {\n content: "\n}'); expect(error).to.be.a.instanceOf(CssSyntaxError); expect(error.name).to.eql('CssSyntaxError'); @@ -59,24 +59,24 @@ describe('CssSyntaxError', () => { it('prints with colored CSS', () => { expect(parseError('a {').toString()).to.eql( - "CssSyntaxError: :1:1: Unclosed block\n" + + 'CssSyntaxError: :1:1: Unclosed block\n' + 'a {\n' + '\u001b[1;31m^\u001b[0m'); }); it('misses highlights without source', () => { - var error = parseError('a {'); + let error = parseError('a {'); error.source = null; expect(error.toString()).to.eql( 'CssSyntaxError: :1:1: Unclosed block'); }); it('uses source map', () => { - var concat = new Concat(true, 'all.css'); + let concat = new Concat(true, 'all.css'); concat.add('a.css', 'a { }\n'); concat.add('b.css', '\nb {\n'); - var error = parseError(concat.content, { + let error = parseError(concat.content, { from: 'build/all.css', map: { prev: concat.sourceMap } }); @@ -94,7 +94,7 @@ describe('CssSyntaxError', () => { }); it('does not uses wrong source map', () => { - var error = parseError('a { }\nb {', { + let error = parseError('a { }\nb {', { from: 'build/all.css', map: { prev: { @@ -109,7 +109,7 @@ describe('CssSyntaxError', () => { }); it('set source plugin', () => { - var error = parse('a{}').first.error('Error', { plugin: 'test' }); + let error = parse('a{}').first.error('Error', { plugin: 'test' }); expect(error.plugin).to.eql('test'); expect(error.toString()).to.match( /^CssSyntaxError: test::1:1: Error/); diff --git a/test/declaration.js b/test/declaration.js index 766e1ce75..8910c6c1a 100644 --- a/test/declaration.js +++ b/test/declaration.js @@ -7,7 +7,7 @@ import { expect } from 'chai'; describe('Declaration', () => { it('initializes with properties', () => { - var decl = new Declaration({ prop: 'color', value: 'black' }); + let decl = new Declaration({ prop: 'color', value: 'black' }); expect(decl.prop).to.eql('color'); expect(decl.value).to.eql('black'); @@ -16,7 +16,7 @@ describe('Declaration', () => { describe('important', () => { it('returns boolean', () => { - var decl = new Declaration({ prop: 'color', value: 'black' }); + let decl = new Declaration({ prop: 'color', value: 'black' }); decl.important = true; expect(decl.toString()).to.eql('color: black !important'); }); @@ -26,15 +26,15 @@ describe('Declaration', () => { describe('toString()', () => { it('inserts default spaces', () => { - var decl = new Declaration({ prop: 'color', value: 'black' }); - var rule = new Rule({ selector: 'a' }); + let decl = new Declaration({ prop: 'color', value: 'black' }); + let rule = new Rule({ selector: 'a' }); rule.append(decl); - expect(decl.toString()).to.eql("\n color: black"); + expect(decl.toString()).to.eql('\n color: black'); }); it('clone spaces from another declaration', () => { - var root = parse('a{color:black}'); - var decl = new Declaration({ prop: 'margin', value: '0' }); + let root = parse('a{color:black}'); + let decl = new Declaration({ prop: 'margin', value: '0' }); root.first.append(decl); expect(decl.toString()).to.eql('margin:0'); diff --git a/test/lazy-result.js b/test/lazy-result.js index cd2f9abc2..d1c1cdce2 100644 --- a/test/lazy-result.js +++ b/test/lazy-result.js @@ -1,18 +1,17 @@ import LazyResult from '../lib/lazy-result'; import Processor from '../lib/processor'; -import parse from '../lib/parse'; import mozilla from 'source-map'; import { expect } from 'chai'; -var processor = new Processor(); +let processor = new Processor(); describe('LazyResult', () => { describe('root', () => { it('contains AST', () => { - var result = new LazyResult(processor, 'a {}', { }); + let result = new LazyResult(processor, 'a {}', { }); expect(result.root.type).to.eql('root'); }); @@ -21,12 +20,12 @@ describe('LazyResult', () => { describe('css', () => { it('will be stringified', () => { - var result = new LazyResult(processor, 'a {}', { }); + let result = new LazyResult(processor, 'a {}', { }); expect(result.css).to.eql('a {}'); }); it('stringifies', () => { - var result = new LazyResult(processor, 'a {}', { }); + let result = new LazyResult(processor, 'a {}', { }); expect('' + result).to.eql(result.css); }); @@ -35,7 +34,7 @@ describe('LazyResult', () => { describe('map', () => { it('exists only if necessary', () => { - var result = new LazyResult(processor, '', { }); + let result = new LazyResult(processor, '', { }); expect(result.map).to.not.exist; result = new LazyResult(processor, '', { }); @@ -50,7 +49,7 @@ describe('LazyResult', () => { describe('warnings()', () => { it('contains warnings', () => { - var result = new LazyResult(processor, 'a {}', { }); + let result = new LazyResult(processor, 'a {}', { }); expect(result.warnings()).to.eql([]); }); @@ -59,7 +58,7 @@ describe('LazyResult', () => { describe('messages', () => { it('contains messages', () => { - var result = new LazyResult(processor, 'a {}', { }); + let result = new LazyResult(processor, 'a {}', { }); expect(result.messages).to.eql([]); }); diff --git a/test/map.js b/test/map.js index e525f41be..b3dc1080b 100644 --- a/test/map.js +++ b/test/map.js @@ -6,19 +6,19 @@ import fs from 'fs-extra'; import { expect } from 'chai'; import path from 'path'; -var consumer = map => new mozilla.SourceMapConsumer.fromSourceMap(map); +let consumer = map => mozilla.SourceMapConsumer.fromSourceMap(map); -var read = function (result) { - var prev = new PreviousMap(result.css, { }); +let read = function (result) { + let prev = new PreviousMap(result.css, { }); return prev.consumer(); }; -var dir = __dirname + '/fixtures'; +let dir = path.join(__dirname, 'fixtures'); -var doubler = postcss( (css) => { +let doubler = postcss( (css) => { css.eachDecl( decl => decl.parent.prepend(decl.clone()) ); }); -var lighter = postcss( (css) => { +let lighter = postcss( (css) => { css.eachDecl( decl => decl.value = 'white' ); }); @@ -32,27 +32,27 @@ describe('source maps', () => { }); it('return map generator', () => { - var map = postcss().process('a {}', { map: { inline: false } }).map; + let map = postcss().process('a {}', { map: { inline: false } }).map; expect(map).to.be.instanceOf(mozilla.SourceMapGenerator); }); it('generate right source map', () => { - var css = "a {\n color: black;\n }"; - var processor = postcss( (css) => { - css.eachRule( (rule) => { + let css = 'a {\n color: black;\n }'; + let processor = postcss( (root) => { + root.eachRule( (rule) => { rule.selector = 'strong'; }); - css.eachDecl( (decl) => { + root.eachDecl( (decl) => { decl.parent.prepend( decl.clone({ prop: 'background' }) ); }); }); - var result = processor.process(css, { + let result = processor.process(css, { from: 'a.css', to: 'b.css', map: true }); - var map = read(result); + let map = read(result); expect(map.file).to.eql('b.css'); @@ -77,21 +77,21 @@ describe('source maps', () => { }); it('changes previous source map', () => { - var css = 'a { color: black }'; + let css = 'a { color: black }'; - var doubled = doubler.process(css, { + let doubled = doubler.process(css, { from: 'a.css', to: 'b.css', map: { inline: false } }); - var lighted = lighter.process(doubled.css, { + let lighted = lighter.process(doubled.css, { from: 'b.css', to: 'c.css', map: { prev: doubled.map } }); - var map = consumer(lighted.map); + let map = consumer(lighted.map); expect(map.originalPositionFor({ line: 1, column: 18 })).to.eql({ source: 'a.css', line: 1, @@ -101,19 +101,19 @@ describe('source maps', () => { }); it('adds source map annotation', () => { - var css = 'a { }/*# sourceMappingURL=a.css.map */'; - var result = postcss().process(css, { + let css = 'a { }/*# sourceMappingURL=a.css.map */'; + let result = postcss().process(css, { from: 'a.css', to: 'b.css', map: { inline: false } }); - expect(result.css).to.eql("a { }\n/*# sourceMappingURL=b.css.map */"); + expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); }); it('misses source map annotation, if user ask', () => { - var css = 'a { }'; - var result = postcss().process(css, { + let css = 'a { }'; + let result = postcss().process(css, { from: 'a.css', to: 'b.css', map: { annotation: false } @@ -123,15 +123,15 @@ describe('source maps', () => { }); it('misses source map annotation, if previous map missed it', () => { - var css = 'a { }'; + let css = 'a { }'; - var step1 = postcss().process(css, { + let step1 = postcss().process(css, { from: 'a.css', to: 'b.css', map: { annotation: false } }); - var step2 = postcss().process(step1.css, { + let step2 = postcss().process(step1.css, { from: 'b.css', to: 'c.css', map: { prev: step1.map } @@ -141,14 +141,14 @@ describe('source maps', () => { }); it('uses user path in annotation, relative to options.to', () => { - var result = postcss().process('a { }', { + let result = postcss().process('a { }', { from: 'source/a.css', to: 'build/b.css', map: { annotation: 'maps/b.map' } }); - expect(result.css).to.eql("a { }\n/*# sourceMappingURL=maps/b.map */"); - var map = consumer(result.map); + expect(result.css).to.eql('a { }\n/*# sourceMappingURL=maps/b.map */'); + let map = consumer(result.map); expect(map.file).to.eql('../b.css'); expect(map.originalPositionFor({ line: 1, column: 0 }).source) @@ -156,9 +156,9 @@ describe('source maps', () => { }); it('generates inline map', () => { - var css = 'a { }'; + let css = 'a { }'; - var inline = postcss().process(css, { + let inline = postcss().process(css, { from: 'a.css', to: 'b.css', map: { inline: true } @@ -167,18 +167,18 @@ describe('source maps', () => { expect(inline.map).to.not.exist; expect(inline.css).to.match(/# sourceMappingURL=data:/); - var separated = postcss().process(css, { + let separated = postcss().process(css, { from: 'a.css', to: 'b.css', map: { inline: false } }); - var base64 = new Buffer(separated.map).toString('base64'); + let base64 = new Buffer(separated.map).toString('base64'); expect(inline.css.endsWith(base64 + ' */')).to.be.true; }); it('generates inline map by default', () => { - var inline = postcss().process('a { }', { + let inline = postcss().process('a { }', { from: 'a.css', to: 'b.css', map: true @@ -188,12 +188,12 @@ describe('source maps', () => { }); it('generates separated map if previous map was not inlined', () => { - var step1 = doubler.process('a { color: black }', { + let step1 = doubler.process('a { color: black }', { from: 'a.css', to: 'b.css', map: { inline: false } }); - var step2 = lighter.process(step1.css, { + let step2 = lighter.process(step1.css, { from: 'b.css', to: 'c.css', map: { prev: step1.map } @@ -203,7 +203,7 @@ describe('source maps', () => { }); it('generates separated map on annotation option', () => { - var result = postcss().process('a { }', { + let result = postcss().process('a { }', { from: 'a.css', to: 'b.css', map: { annotation: false } @@ -213,13 +213,13 @@ describe('source maps', () => { }); it('allows change map type', () => { - var step1 = postcss().process('a { }', { + let step1 = postcss().process('a { }', { from: 'a.css', to: 'b.css', map: { inline: true } }); - var step2 = postcss().process(step1.css, { + let step2 = postcss().process(step1.css, { from: 'b.css', to: 'c.css', map: { inline: false } @@ -230,15 +230,17 @@ describe('source maps', () => { }); it('misses check files on requires', () => { - var step1 = doubler.process('a { }', { + let file = path.join(dir, 'a.css'); + + let step1 = doubler.process('a { }', { from: 'a.css', - to: dir + '/a.css', + to: file, map: true }); - fs.outputFileSync(dir + '/a.css.map', step1.map); - var step2 = lighter.process(step1.css, { - from: dir + '/a.css', + fs.outputFileSync(file + '.map', step1.map); + let step2 = lighter.process(step1.css, { + from: file, to: 'b.css', map: false }); @@ -247,7 +249,7 @@ describe('source maps', () => { }); it('works in subdirs', () => { - var result = doubler.process('a { }', { + let result = doubler.process('a { }', { from: 'from/a.css', to: 'out/b.css', map: { inline: false } @@ -255,29 +257,29 @@ describe('source maps', () => { expect(result.css).to.match(/sourceMappingURL=b.css.map/); - var map = consumer(result.map); + let map = consumer(result.map); expect(map.file).to.eql('b.css'); expect(map.sources).to.eql(['../from/a.css']); }); it('uses map from subdir', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', map: { inline: false } }); - var step2 = doubler.process(step1.css, { + let step2 = doubler.process(step1.css, { from: 'out/b.css', to: 'out/two/c.css', map: { prev: step1.map } }); - var source = consumer(step2.map) + let source = consumer(step2.map) .originalPositionFor({ line: 1, column: 0 }).source; expect(source).to.eql('../../a.css'); - var step3 = doubler.process(step2.css, { + let step3 = doubler.process(step2.css, { from: 'c.css', to: 'd.css', map: { prev: step2.map } @@ -289,39 +291,40 @@ describe('source maps', () => { }); it('uses map from subdir if it inlined', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', map: true }); - var step2 = doubler.process(step1.css, { + let step2 = doubler.process(step1.css, { from: 'out/b.css', to: 'out/two/c.css', map: { inline: false } }); - var source = consumer(step2.map) + let source = consumer(step2.map) .originalPositionFor({ line: 1, column: 0 }).source; expect(source).to.eql('../../a.css'); }); it('uses map from subdir if it written as a file', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'source/a.css', to: 'one/b.css', map: { annotation: 'maps/b.css.map', inline: false } }); - var source = consumer(step1.map) + let source = consumer(step1.map) .originalPositionFor({ line: 1, column: 0 }).source; expect(source).to.eql('../../source/a.css'); - fs.outputFileSync(dir + '/one/maps/b.css.map', step1.map); + let file = path.join(dir, 'one', 'maps', 'b.css.map'); + fs.outputFileSync(file, step1.map); - var step2 = doubler.process(step1.css, { - from: dir + '/one/b.css', - to: dir + '/two/c.css', + let step2 = doubler.process(step1.css, { + from: path.join(dir, 'one', 'b.css'), + to: path.join(dir, 'two', 'c.css'), map: true }); @@ -331,29 +334,29 @@ describe('source maps', () => { }); it('works with different types of maps', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'a.css', to: 'b.css', map: { inline: false } }); - var map = step1.map; - var maps = [map, consumer(map), map.toJSON(), map.toString()]; + let map = step1.map; + let maps = [map, consumer(map), map.toJSON(), map.toString()]; - for ( var i of maps ) { - var step2 = doubler.process(step1.css, { + for ( let i of maps ) { + let step2 = doubler.process(step1.css, { from: 'b.css', to: 'c.css', map: { prev: i } }); - var source = consumer(step2.map) + let source = consumer(step2.map) .originalPositionFor({ line: 1, column: 0 }).source; expect(source).to.eql('a.css'); } }); it('sets source content by default', () => { - var result = doubler.process('a { }', { + let result = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', map: true @@ -363,7 +366,7 @@ describe('source maps', () => { }); it('misses source content on request', () => { - var result = doubler.process('a { }', { + let result = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', map: { sourcesContent: false } @@ -373,84 +376,85 @@ describe('source maps', () => { }); it('misses source content if previous not have', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/a.css', map: { sourcesContent: false } }); - var file1 = postcss.parse(step1.css, { + let file1 = postcss.parse(step1.css, { from: 'a.css', map: { prev: step1.map } }); - var file2 = postcss.parse('b { }', { from: 'b.css', map: true }); + let file2 = postcss.parse('b { }', { from: 'b.css', map: true }); file2.append( file1.first.clone() ); - var step2 = file2.toResult({ to: 'c.css', map: true }); + let step2 = file2.toResult({ to: 'c.css', map: true }); expect(read(step2).sourceContentFor('b.css')).to.not.exist; }); it('misses source content on request', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/a.css', map: { sourcesContent: true } }); - var file1 = postcss.parse(step1.css, { + let file1 = postcss.parse(step1.css, { from: 'a.css', map: { prev: step1.map } }); - var file2 = postcss.parse('b { }', { from: 'b.css', map: true }); + let file2 = postcss.parse('b { }', { from: 'b.css', map: true }); file2.append( file1.first.clone() ); - var step2 = file2.toResult({ + let step2 = file2.toResult({ to: 'c.css', map: { sourcesContent: false } }); - var map = read(step2); + let map = read(step2); expect(map.sourceContentFor('b.css')).to.not.exist; expect(map.sourceContentFor('../a.css')).to.not.exist; }); it('detects input file name from map', () => { - var one = doubler.process('a { }', { to: 'a.css', map: true }); - var two = doubler.process(one.css, { map: { prev: one.map } }); + let one = doubler.process('a { }', { to: 'a.css', map: true }); + let two = doubler.process(one.css, { map: { prev: one.map } }); expect(two.root.first.source.input.file).to.eql(path.resolve('a.css')); }); it('works without file names', () => { - var step1 = doubler.process('a { }', { map: true }); - var step2 = doubler.process(step1.css); + let step1 = doubler.process('a { }', { map: true }); + let step2 = doubler.process(step1.css); + expect(step2.css).to.match(/a \{ \}\n\/\*/); }); it('supports UTF-8', () => { - var step1 = doubler.process('a { }', { + let step1 = doubler.process('a { }', { from: 'вход.css', to: 'шаг1.css', map: true }); - var step2 = doubler.process(step1.css, { + let step2 = doubler.process(step1.css, { from: 'шаг1.css', - to: 'выход.css', + to: 'выход.css' }); expect(read(step2).file).to.eql('выход.css'); }); it('generates map for node created manually', () => { - var contenter = postcss( (css) => { + let contenter = postcss( (css) => { css.first.prepend({ prop: 'content', value: '""' }); }); - var result = contenter.process('a:after{\n}', { map: true }); + let result = contenter.process('a:after{\n}', { map: true }); expect(read(result).originalPositionFor({ line: 2, column: 0 })) .to.eql({ source: null, line: null, column: null, name: null }); }); it('uses input file name as output file name', () => { - var result = doubler.process('a{}', { + let result = doubler.process('a{}', { from: 'a.css', map: { inline: false } }); @@ -458,30 +462,30 @@ describe('source maps', () => { }); it('uses to.css as default output name', () => { - var result = doubler.process('a{}', { map: { inline: false } }); + let result = doubler.process('a{}', { map: { inline: false } }); expect(result.map.toJSON().file).to.eql('to.css'); }); it('supports annotation comment in any place', () => { - var css = '/*# sourceMappingURL=a.css.map */a { }'; - var result = postcss().process(css, { + let css = '/*# sourceMappingURL=a.css.map */a { }'; + let result = postcss().process(css, { from: 'a.css', to: 'b.css', map: { inline: false } }); - expect(result.css).to.eql("a { }\n/*# sourceMappingURL=b.css.map */"); + expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); }); it('does not update annotation on request', () => { - var css = 'a { }/*# sourceMappingURL=a.css.map */'; - var result = postcss().process(css, { + let css = 'a { }/*# sourceMappingURL=a.css.map */'; + let result = postcss().process(css, { from: 'a.css', to: 'b.css', map: { annotation: false, inline: false } }); - expect(result.css).to.eql("a { }/*# sourceMappingURL=a.css.map */"); + expect(result.css).to.eql('a { }/*# sourceMappingURL=a.css.map */'); }); }); diff --git a/test/node.js b/test/node.js index 3d9c9496d..b187065fa 100644 --- a/test/node.js +++ b/test/node.js @@ -13,15 +13,15 @@ describe('Node', () => { describe('error()', () => { it('generates custom error', () => { - var css = parse('a{}', { from: '/a.css' }); - var error = css.first.error('Test'); + let css = parse('a{}', { from: '/a.css' }); + let error = css.first.error('Test'); expect(error).to.be.instanceOf(CssSyntaxError); expect(error.message).to.eql('/a.css:1:1: Test'); }); it('generates custom error for nodes without source', () => { - var rule = new Rule({ selector: 'a' }); - var error = rule.error('Test'); + let rule = new Rule({ selector: 'a' }); + let error = rule.error('Test'); expect(error.message).to.eql(': Test'); }); @@ -30,8 +30,8 @@ describe('Node', () => { describe('removeSelf()', () => { it('removes node from parent', () => { - var rule = new Rule({ selector: 'a' }); - var decl = new Declaration({ prop: 'color', value: 'black' }); + let rule = new Rule({ selector: 'a' }); + let decl = new Declaration({ prop: 'color', value: 'black' }); rule.append(decl); decl.removeSelf(); @@ -44,14 +44,14 @@ describe('Node', () => { describe('replace()', () => { it('inserts new node', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); rule.append({ prop: 'color', value: 'black' }); rule.append({ prop: 'width', value: '1px' }); rule.append({ prop: 'height', value: '1px' }); - var node = new Declaration({ prop: 'min-width', value: '1px' }); - var width = rule.nodes[1]; - var result = width.replace(node); + let node = new Declaration({ prop: 'min-width', value: '1px' }); + let width = rule.nodes[1]; + let result = width.replace(node); expect(result).to.eql(width); @@ -63,10 +63,10 @@ describe('Node', () => { }); it('inserts new root', () => { - var root = new Root(); + let root = new Root(); root.append( new AtRule({ name: 'import', params: '"a.css"' }) ); - var a = new Root(); + let a = new Root(); a.append( new Rule({ selector: 'a' }) ); a.append( new Rule({ selector: 'b' }) ); @@ -79,10 +79,10 @@ describe('Node', () => { describe('clone()', () => { it('clones nodes', () => { - var rule = new Rule({ selector: 'a', after: '' }); + let rule = new Rule({ selector: 'a', after: '' }); rule.append({ prop: 'color', value: '/**/black', before: '' }); - var clone = rule.clone(); + let clone = rule.clone(); expect(clone.parent).to.not.exist; @@ -94,13 +94,13 @@ describe('Node', () => { }); it('overrides properties', () => { - var rule = new Rule({ selector: 'a' }); - var clone = rule.clone({ selector: 'b' }); + let rule = new Rule({ selector: 'a' }); + let clone = rule.clone({ selector: 'b' }); expect(clone.selector).to.eql('b'); }); it('cleans code style', () => { - var css = parse('@page 1{a{color:black;}}'); + let css = parse('@page 1{a{color:black;}}'); expect(css.clone().toString()).to.eql('@page 1 {\n' + ' a {\n' + ' color: black\n' + @@ -113,10 +113,10 @@ describe('Node', () => { describe('cloneBefore()', () => { it('clones and insert before current node', () => { - var rule = new Rule({ selector: 'a', after: '' }); + let rule = new Rule({ selector: 'a', after: '' }); rule.append({ prop: 'z-index', value: '1', before: '' }); - var result = rule.first.cloneBefore({ value: '2' }); + let result = rule.first.cloneBefore({ value: '2' }); expect(result).to.equal(rule.first); expect(rule.toString()).to.eql('a {z-index: 2;z-index: 1}'); @@ -127,10 +127,10 @@ describe('Node', () => { describe('cloneAfter()', () => { it('clones and insert after current node', () => { - var rule = new Rule({ selector: 'a', after: '' }); + let rule = new Rule({ selector: 'a', after: '' }); rule.append({ prop: 'z-index', value: '1', before: '' }); - var result = rule.first.cloneAfter({ value: '2' }); + let result = rule.first.cloneAfter({ value: '2' }); expect(result).to.equal(rule.last); expect(rule.toString()).to.eql('a {z-index: 1;z-index: 2}'); @@ -141,7 +141,7 @@ describe('Node', () => { describe('next()', () => { it('returns next node', () => { - var css = parse('a{one:1;two:2}'); + let css = parse('a{one:1;two:2}'); expect(css.first.first.next()).to.equal(css.first.last); expect(css.first.last.next()).to.not.exist; }); @@ -151,7 +151,7 @@ describe('Node', () => { describe('prev()', () => { it('returns previous node', () => { - var css = parse('a{one:1;two:2}'); + let css = parse('a{one:1;two:2}'); expect(css.first.last.prev()).to.equal(css.first.first); expect(css.first.first.prev()).to.not.exist; }); @@ -161,9 +161,9 @@ describe('Node', () => { describe('replaceWith()', () => { it('replaces node', () => { - var css = parse('a{one:1;two:2}'); - var decl = { prop: 'fix', value: 'fixed' }; - var result = css.first.first.replaceWith(decl); + let css = parse('a{one:1;two:2}'); + let decl = { prop: 'fix', value: 'fixed' }; + let result = css.first.first.replaceWith(decl); expect(result.prop).to.eql('one'); expect(result.parent).to.not.exist; @@ -175,8 +175,8 @@ describe('Node', () => { describe('moveTo()', () => { it('moves node between roots', () => { - var css1 = parse('a{one:1}b{two:2}'); - var css2 = parse('c {\n thr: 3\n}'); + let css1 = parse('a{one:1}b{two:2}'); + let css2 = parse('c {\n thr: 3\n}'); css1.first.moveTo(css2); expect(css1.toString()).to.eql('b{two:2}'); @@ -184,7 +184,7 @@ describe('Node', () => { }); it('moves node inside one root', () => { - var css = parse('a{\n one:1}\n@page {\n b {\n two: 2\n }\n}'); + let css = parse('a{\n one:1}\n@page {\n b {\n two: 2\n }\n}'); css.first.moveTo(css.last); expect(css.toString()) @@ -196,8 +196,8 @@ describe('Node', () => { describe('moveBefore()', () => { it('moves node between roots', () => { - var css1 = parse('a{one:1}b{two:2}'); - var css2 = parse('c {\n thr: 3\n}'); + let css1 = parse('a{one:1}b{two:2}'); + let css2 = parse('c {\n thr: 3\n}'); css1.first.moveBefore(css2.first); expect(css1.toString()).to.eql('b{two:2}'); @@ -205,7 +205,7 @@ describe('Node', () => { }); it('moves node inside one root', () => { - var css = parse('a{\n one:1}\n@page {\n b {\n two: 2\n }\n}'); + let css = parse('a{\n one:1}\n@page {\n b {\n two: 2\n }\n}'); css.first.moveBefore(css.last.first); expect(css.toString()) @@ -217,8 +217,8 @@ describe('Node', () => { describe('moveAfter()', () => { it('moves node between roots', () => { - var css1 = parse('a{one:1}b{two:2}'); - var css2 = parse('c {\n thr: 3\n}'); + let css1 = parse('a{one:1}b{two:2}'); + let css2 = parse('c {\n thr: 3\n}'); css1.first.moveAfter(css2.first); expect(css1.toString()).to.eql('b{two:2}'); @@ -226,7 +226,7 @@ describe('Node', () => { }); it('moves node inside one root', () => { - var css = parse('a{\n one:1}\n@page {\n b {\n two: 2\n }\n}'); + let css = parse('a{\n one:1}\n@page {\n b {\n two: 2\n }\n}'); css.first.moveAfter(css.last.first); expect(css.toString()) @@ -238,10 +238,10 @@ describe('Node', () => { describe('toJSON()', () => { it('cleans parents inside', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); rule.append({ prop: 'color', value: 'b' }); - var json = rule.toJSON(); + let json = rule.toJSON(); expect(json.parent).to.not.exist; expect(json.nodes[0].parent).to.not.exist; @@ -256,32 +256,32 @@ describe('Node', () => { describe('style()', () => { it('uses node style', () => { - var rule = new Rule({ selector: 'a', between: '\n' }); + let rule = new Rule({ selector: 'a', between: '\n' }); expect(rule.style('between', 'beforeOpen')).to.eql('\n'); }); it('hacks before for nodes without parent', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); expect(rule.style('before')).to.eql(''); }); it('hacks before for first node', () => { - var root = new Root(); + let root = new Root(); root.append(new Rule({ selector: 'a' })); expect(root.first.style('before')).to.eql(''); }); it('hacks before for first decl', () => { - var decl = new Declaration({ prop: 'color', value: 'black' }); + let decl = new Declaration({ prop: 'color', value: 'black' }); expect(decl.style('before')).to.eql(''); - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); rule.append(decl); expect(decl.style('before')).to.eql('\n '); }); it('detects after style', () => { - var root = new Root(); + let root = new Root(); root.append({ selector: 'a', after: ' ' }); root.first.append({ prop: 'color', value: 'black' }); root.append({ selector: 'a' }); @@ -289,18 +289,18 @@ describe('Node', () => { }); it('uses defaults without parent', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); expect(rule.style('between', 'beforeOpen')).to.eql(' '); }); it('uses defaults for unique node', () => { - var root = new Root(); + let root = new Root(); root.append(new Rule({ selector: 'a' })); expect(root.first.style('between', 'beforeOpen')).to.eql(' '); }); it('clones style from first node', () => { - var root = new Root(); + let root = new Root(); root.append( new Rule({ selector: 'a', between: '' }) ); root.append( new Rule({ selector: 'b' }) ); @@ -308,7 +308,7 @@ describe('Node', () => { }); it('indents by default', () => { - var root = new Root(); + let root = new Root(); root.append( new AtRule({ name: 'page' }) ); root.first.append( new Rule({ selector: 'a' }) ); root.first.first.append({ prop: 'color', value: 'black' }); @@ -321,8 +321,8 @@ describe('Node', () => { }); it('clones indent', () => { - var compress = parse('@page{ a{ } }'); - var spaces = parse('@page {\n a {\n }\n}'); + let compress = parse('@page{ a{ } }'); + let spaces = parse('@page {\n a {\n }\n}'); compress.first.first.append({ prop: 'color', value: 'black' }); expect(compress.toString()).to.eql('@page{ a{ color: black } }'); @@ -333,7 +333,7 @@ describe('Node', () => { }); it('clones indent by types', () => { - var css = parse('a {\n color: black\n}\n\nb {\n}'); + let css = parse('a {\n color: black\n}\n\nb {\n}'); css.append(new Rule({ selector: 'em' })); css.last.append({ prop: 'z-index', value: '1' }); @@ -341,7 +341,7 @@ describe('Node', () => { }); it('clones indent by before and after', () => { - var css = parse('@page{\n\n a{\n color: black}}'); + let css = parse('@page{\n\n a{\n color: black}}'); css.first.append(new Rule({ selector: 'b' })); css.first.last.append({ prop: 'z-index', value: '1' }); @@ -349,12 +349,12 @@ describe('Node', () => { }); it('clones semicolon only from rules with children', () => { - var css = parse('a{}b{one:1;}'); + let css = parse('a{}b{one:1;}'); expect(css.first.style('semicolon')).to.be.true; }); it('clones only spaces in before', () => { - var css = parse('a{*one:1}'); + let css = parse('a{*one:1}'); css.first.append({ prop: 'two', value: '2' }); css.append({ name: 'keyframes', params: 'a' }); css.last.append({ selector: 'from'}); @@ -363,7 +363,7 @@ describe('Node', () => { }); it('clones only spaces in between', () => { - var css = parse('a{one/**/:1}'); + let css = parse('a{one/**/:1}'); css.first.append({ prop: 'two', value: '2' }); expect(css.toString()).to.eql('a{one/**/:1;two:2}'); }); @@ -373,18 +373,18 @@ describe('Node', () => { describe('root()', () => { it('returns root', () => { - var css = parse('@page{a{color:black}}'); + let css = parse('@page{a{color:black}}'); expect(css.first.first.first.root()).to.equal(css); }); it('returns parent of parents', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); rule.append({ prop: 'color', value: 'black' }); expect(rule.first.root()).to.equal(rule); }); it('returns self on root', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); expect(rule.root()).to.equal(rule); }); @@ -393,7 +393,7 @@ describe('Node', () => { describe('cleanStyles()', () => { it('cleans style recursivelly', () => { - var css = parse('@page{a{color:black}}'); + let css = parse('@page{a{color:black}}'); css.cleanStyles(); expect(css.toString()) @@ -406,7 +406,7 @@ describe('Node', () => { }); it('keeps between on request', () => { - var css = parse('@page{a{color:black}}'); + let css = parse('@page{a{color:black}}'); css.cleanStyles(true); expect(css.toString()) @@ -422,10 +422,10 @@ describe('Node', () => { describe('stringifyRaw()', () => { it('creates trimmed/raw property', () => { - var b = new Node(); - - b.one = 'trim'; - b._one = { value: 'trim', raw: 'raw' }; + let b = new Node({ + one: 'trim', + _one: { value: 'trim', raw: 'raw' } + }); expect(b.stringifyRaw('one')).to.eql('raw'); b.one = 'trim1'; @@ -433,7 +433,7 @@ describe('Node', () => { }); it('works without magic', () => { - var b = new Node(); + let b = new Node(); b.one = '1'; expect(b.one).to.eql('1'); expect(b.stringifyRaw('one')).to.eql('1'); diff --git a/test/parse.js b/test/parse.js index 0df787222..7363258fe 100644 --- a/test/parse.js +++ b/test/parse.js @@ -6,19 +6,20 @@ import { expect } from 'chai'; import path from 'path'; import fs from 'fs'; -var read = file => fs.readFileSync(__dirname + '/cases/' + file); +let read = name => fs.readFileSync(path.join(__dirname, 'cases', name)); describe('postcss.parse()', () => { it('works with file reads', () => { - var css = fs.readFileSync(__dirname + '/cases/atrule-empty.css'); - expect(parse(css)).to.be.instanceOf(Root); + let file = path.join(__dirname, 'cases', 'atrule-empty.css'); + let css = fs.readFileSync(file); + expect(parse(css, { from: file })).to.be.instanceOf(Root); }); describe('empty file', () => { it('parses UTF-8 BOM', () => { - var css = parse('\uFEFF@host { a {\f} }'); + let css = parse('\uFEFF@host { a {\f} }'); expect(css.first.before).to.eql(''); }); @@ -42,32 +43,32 @@ describe('postcss.parse()', () => { }); - fs.readdirSync(__dirname + '/cases/').forEach( (file) => { - if ( !file.match(/\.css$/) ) return; + fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { + if ( !name.match(/\.css$/) ) return; - it('parses ' + file, () => { - var css = parse(read(file), { from: '/' + file }); - var json = read(file.replace(/\.css$/, '.json')).toString().trim(); + it('parses ' + name, () => { + let css = parse(read(name), { from: '/' + name }); + let json = read(name.replace(/\.css$/, '.json')).toString().trim(); expect(JSON.stringify(css, null, 4)).to.eql(json); }); }); it('saves source file', () => { - var css = parse('a {}', { from: 'a.css' }); + let css = parse('a {}', { from: 'a.css' }); expect(css.first.source.input.file).to.eql(path.resolve('a.css')); expect(css.first.source.input.from).to.eql(path.resolve('a.css')); }); it('saves source file on previous map', () => { - var root1 = parse('a {}', { map: { inline: true } }); - var css = root1.toResult({ map: { inline: true } }).css; - var root2 = parse(css); + let root1 = parse('a {}', { map: { inline: true } }); + let css = root1.toResult({ map: { inline: true } }).css; + let root2 = parse(css); expect(root2.first.source.input.file).to.eql(path.resolve('to.css')); }); it('sets unique ID for file without name', () => { - var css1 = parse('a {}'); - var css2 = parse('a {}'); + let css1 = parse('a {}'); + let css2 = parse('a {}'); expect(css1.first.source.input.id).to.match(/^$/); expect(css1.first.source.input.from).to.match(/^$/); expect(css2.first.source.input.id) @@ -75,12 +76,12 @@ describe('postcss.parse()', () => { }); it('sets parent node', () => { - var css = parse(read('atrule-rules.css')); + let css = parse(read('atrule-rules.css')); - var support = css.first; - var keyframes = support.first; - var from = keyframes.first; - var decl = from.first; + let support = css.first; + let keyframes = support.first; + let from = keyframes.first; + let decl = from.first; expect(decl.parent).to.equal(from); expect(from.parent).to.equal(keyframes); @@ -110,7 +111,7 @@ describe('postcss.parse()', () => { }); it('fixes unnecessary block close in safe mode', () => { - var root = parse('a {\n} }', { safe: true }); + let root = parse('a {\n} }', { safe: true }); expect(root.first.toString()).to.eql('a {\n}'); expect(root.after).to.eql(' }'); }); @@ -120,7 +121,7 @@ describe('postcss.parse()', () => { }); it('fixes unclosed comment in safe mode', () => { - var root = parse('a { /* b ', { safe: true }); + let root = parse('a { /* b ', { safe: true }); expect(root.toString()).to.eql('a { /* b */}'); expect(root.first.first.text).to.eql('b'); }); @@ -145,19 +146,19 @@ describe('postcss.parse()', () => { }); it('throws on property without value', () => { - expect( () => parse("a { b;}") ).to.throw(/:1:5: Unknown word/); - expect( () => parse("a { b b }") ).to.throw(/:1:5: Unknown word/); + expect( () => parse('a { b;}') ).to.throw(/:1:5: Unknown word/); + expect( () => parse('a { b b }') ).to.throw(/:1:5: Unknown word/); }); it('fixes property without value in safe mode', () => { - var root = parse('a { color: white; one }', { safe: true }); + let root = parse('a { color: white; one }', { safe: true }); expect(root.first.nodes.length).to.eql(1); expect(root.first.semicolon).to.be.true; expect(root.first.after).to.eql(' one '); }); it('fixes 2 properties in safe mode', () => { - var root = parse('a { one color: white; one }', { safe: true }); + let root = parse('a { one color: white; one }', { safe: true }); expect(root.first.nodes.length).to.eql(1); expect(root.first.first.prop).to.eql('color'); expect(root.first.first.before).to.eql(' one '); @@ -168,7 +169,7 @@ describe('postcss.parse()', () => { }); it('fixes nameless at-rule in safe mode', () => { - var root = parse('@', { safe: true }); + let root = parse('@', { safe: true }); expect(root.first.type).to.eql('atrule'); expect(root.first.name).to.eql(''); }); @@ -179,7 +180,7 @@ describe('postcss.parse()', () => { }); it('fixes property without semicolon in safe mode', () => { - var root = parse('a { one: 1 two: 2 }', { safe: true }); + let root = parse('a { one: 1 two: 2 }', { safe: true }); expect(root.first.nodes.length).to.eql(2); expect(root.toString()).to.eql('a { one: 1; two: 2 }'); }); @@ -190,7 +191,7 @@ describe('postcss.parse()', () => { }); it('fixes double colon in safe mode', () => { - var root = parse('a { one:: 1 }', { safe: true }); + let root = parse('a { one:: 1 }', { safe: true }); expect(root.first.first.value).to.eql(': 1'); }); }); diff --git a/test/postcss.js b/test/postcss.js index 219bccabe..8f1d29dff 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -1,52 +1,51 @@ import Processor from '../lib/processor'; import postcss from '../lib/postcss'; -import Result from '../lib/result'; import { expect } from 'chai'; describe('postcss()', () => { it('creates plugins list', () => { - var processor = postcss(); + let processor = postcss(); expect(processor).to.be.instanceOf(Processor); expect(processor.plugins).to.eql([]); }); it('saves plugins list', () => { - var a = () => 1; - var b = () => 2; + let a = () => 1; + let b = () => 2; expect(postcss(a, b).plugins).to.eql([a, b]); }); it('saves plugins list as array', () => { - var a = () => 1; - var b = () => 2; + let a = () => 1; + let b = () => 2; expect(postcss([a, b]).plugins).to.eql([a, b]); }); describe('.plugin()', () => { it('creates plugin', () => { - var plugin = postcss.plugin('test', (filter) => { - return function (css, processor) { + let plugin = postcss.plugin('test', (filter) => { + return function (css) { css.eachDecl(filter || 'two', function (decl) { decl.removeSelf(); }); }; }); - var func1 = postcss(plugin).plugins[0]; + let func1 = postcss(plugin).plugins[0]; expect(func1.postcssPlugin).to.eql('test'); expect(func1.postcssVersion).to.match(/\d+.\d+.\d+/); - var func2 = postcss(plugin()).plugins[0]; + let func2 = postcss(plugin()).plugins[0]; expect(func2.postcssPlugin).to.eql(func1.postcssPlugin); expect(func2.postcssVersion).to.eql(func1.postcssVersion); - var result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }'); + let result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }'); expect(result1.css).to.eql('a{ two: 2 }'); - var result2 = postcss(plugin).process('a{ one: 1; two: 2 }'); + let result2 = postcss(plugin).process('a{ one: 1; two: 2 }'); expect(result2.css).to.eql('a{ one: 1 }'); }); @@ -63,12 +62,12 @@ describe('postcss()', () => { describe('.root()', () => { it('allows to build own CSS', () => { - var root = postcss.root(); - var rule = postcss.rule({ selector: 'a' }); + let root = postcss.root(); + let rule = postcss.rule({ selector: 'a' }); rule.append( postcss.decl({ prop: 'color', value: 'black' }) ); root.append( rule ); - expect(root.toString()).to.eql("a {\n color: black\n}"); + expect(root.toString()).to.eql('a {\n color: black\n}'); }); }); diff --git a/test/previous-map.js b/test/previous-map.js index 33921a9b3..6258a71e6 100644 --- a/test/previous-map.js +++ b/test/previous-map.js @@ -2,10 +2,11 @@ import parse from '../lib/parse'; import mozilla from 'source-map'; import fs from 'fs-extra'; +import path from 'path' import { expect } from 'chai'; -var dir = __dirname + '/fixtures'; -var map = JSON.stringify({ +let dir = path.join(__dirname, 'fixtures'); +let map = JSON.stringify({ version: 3, file: null, sources: [], @@ -32,14 +33,14 @@ describe('PreviousMap', () => { }); it('sets annotation property', () => { - var map2 = { map: { prev: map } }; + let map2 = { map: { prev: map } }; expect(parse('a{}', map2).prevMap).to.not.have.property('annotation'); - var root = parse('a{}/*# sourceMappingURL=a.css.map */', map2); + let root = parse('a{}/*# sourceMappingURL=a.css.map */', map2); expect(root.prevMap.annotation).to.eql('a.css.map'); }); it('checks previous sources content', () => { - var map2 = { + let map2 = { version: 3, file: 'b', sources: ['a'], @@ -47,7 +48,7 @@ describe('PreviousMap', () => { mappings: [] }; - var opts = { map: { prev: map2 } }; + let opts = { map: { prev: map2 } }; expect(parse('a{}', opts).prevMap.withContent()).to.be.false; map2.sourcesContent = ['a{}']; @@ -55,32 +56,31 @@ describe('PreviousMap', () => { }); it('decodes base64 maps', () => { - var b64 = new Buffer(map).toString('base64'); - var css = "a{}\n" + + let b64 = new Buffer(map).toString('base64'); + let css = 'a{}\n' + `/*# sourceMappingURL=data:application/json;base64,${b64} */`; expect(parse(css).prevMap.text).to.eql(map); }); it('decodes URI maps', () => { - var uri = 'data:application/json,' + decodeURI(map); - var css = "a{}\n/*# sourceMappingURL=" + uri + " */"; + let uri = 'data:application/json,' + decodeURI(map); + let css = `a{}\n/*# sourceMappingURL=${ uri } */`; expect(parse(css).prevMap.text).to.eql(map); }); it('removes map on request', () => { - var uri = 'data:application/json,' + decodeURI(map); - var css = "a{}\n/*# sourceMappingURL=" + uri + " */"; + let uri = 'data:application/json,' + decodeURI(map); + let css = `a{}\n/*# sourceMappingURL=${ uri } */`; expect(parse(css, { map: { prev: false } })) .to.not.have.property('prevMap'); }); it('raises on unknown inline encoding', () => { - var css = "a { }\n" + - "/*# sourceMappingURL=data:application/json;" + - "md5,68b329da9893e34099c7d8ad5cb9c940*/"; + let css = 'a { }\n/*# sourceMappingURL=data:application/json;' + + 'md5,68b329da9893e34099c7d8ad5cb9c940*/'; expect( () => parse(css) ) .to.throw('Unsupported source map encoding md5'); @@ -92,25 +92,24 @@ describe('PreviousMap', () => { }); it('reads map from annotation', () => { - fs.outputFileSync(dir + '/a.map', map); - root = parse("a{}\n/*# sourceMappingURL=a.map */", { - from: dir + '/a.css' - }); + let file = path.join(dir, 'a.map'); + fs.outputFileSync(file, map); + let root = parse('a{}\n/*# sourceMappingURL=a.map */', { from: file }); expect(root.prevMap.text).to.eql(map); expect(root.prevMap.root).to.eql(dir); }); it('sets uniq name for inline map', () => { - var map2 = { + let map2 = { version: 3, sources: ['a'], names: [], mappings: [] }; - var opts = { map: { prev: map2 } }; - var prev = parse('a{}', opts).prevMap; + let opts = { map: { prev: map2 } }; + let prev = parse('a{}', opts).prevMap; expect(prev.file).to.match(/^$/); expect(prev.file).to.not.eql( parse('a{}', opts).prevMap.file ); diff --git a/test/processor.js b/test/processor.js index 023b81850..4e178afcd 100644 --- a/test/processor.js +++ b/test/processor.js @@ -15,40 +15,40 @@ describe('Processor', () => { describe('use()', () => { it('adds new plugins', () => { - var a = () => 1; - var processor = new Processor(); + let a = () => 1; + let processor = new Processor(); processor.use(a); expect(processor.plugins).to.eql([a]); }); it('adds new plugin by object', () => { - var a = () => 1; - var processor = new Processor(); + let a = () => 1; + let processor = new Processor(); processor.use({ postcss: a }); expect(processor.plugins).to.eql([a]); }); it('adds new plugin by object-function', () => { - var a = () => 1; - var obj = () => 2; + let a = () => 1; + let obj = () => 2; obj.postcss = a; - var processor = new Processor(); + let processor = new Processor(); processor.use(obj); expect(processor.plugins).to.eql([a]); }); it('adds new processors of another postcss instance', () => { - var a = () => 1; - var processor = new Processor(); - var other = new Processor([a]); + let a = () => 1; + let processor = new Processor(); + let other = new Processor([a]); processor.use(other); expect(processor.plugins).to.eql([a]); }); it('returns itself', () => { - var a = () => 1; - var b = () => 2; - var processor = new Processor(); + let a = () => 1; + let b = () => 2; + let processor = new Processor(); expect(processor.use(a).use(b).plugins).to.eql([a, b]); }); @@ -63,39 +63,39 @@ describe('Processor', () => { console.warn.restore(); }); - var processor = new Processor([ (css) => { + let beforeFix = new Processor([ (css) => { css.eachRule( (rule) => { if ( !rule.selector.match(/::(before|after)/) ) return; - if ( !rule.some( i => i.prop == 'content' ) ) { + if ( !rule.some( i => i.prop === 'content' ) ) { rule.prepend({ prop: 'content', value: '""' }); } }); }]); it('processes CSS', () => { - var result = processor.process('a::before{top:0}'); + let result = beforeFix.process('a::before{top:0}'); expect(result.css).to.eql('a::before{content:"";top:0}'); }); it('processes parsed AST', () => { - var root = parse('a::before{top:0}'); - var result = processor.process(root); + let root = parse('a::before{top:0}'); + let result = beforeFix.process(root); expect(result.css).to.eql('a::before{content:"";top:0}'); }); it('processes previous result', () => { - var result = (new Processor()).process('a::before{top:0}'); - result = processor.process(result); + let result = (new Processor()).process('a::before{top:0}'); + result = beforeFix.process(result); expect(result.css).to.eql('a::before{content:"";top:0}'); }); it('takes maps from previous result', () => { - var one = (new Processor()).process('a{}', { + let one = (new Processor()).process('a{}', { from: 'a.css', to: 'b.css', map: { inline: false } }); - var two = (new Processor()).process(one, { + let two = (new Processor()).process(one, { to: 'c.css', map: { inline: false } }); @@ -103,7 +103,7 @@ describe('Processor', () => { }); it('throws with file name', () => { - var error; + let error; try { (new Processor()).process('a {', { from: 'a.css' }); } catch (e) { @@ -119,23 +119,23 @@ describe('Processor', () => { }); it('allows to replace Root', () => { - var processor = new Processor([ () => new Root() ]); + let processor = new Processor([ () => new Root() ]); expect(processor.process('a {}').css).to.eql(''); }); it('returns LazyResult object', () => { - var result = (new Processor()).process('a{}'); + let result = (new Processor()).process('a{}'); expect(result).to.be.an.instanceOf(LazyResult); expect(result.css).to.eql( 'a{}'); expect(result.toString()).to.eql('a{}'); }); it('calls all plugins once', (done) => { - var calls = ''; - var a = () => calls += 'a'; - var b = () => calls += 'b'; + let calls = ''; + let a = () => calls += 'a'; + let b = () => calls += 'b'; - var result = new Processor([a, b]).process(''); + let result = new Processor([a, b]).process(''); result.css; result.map; result.root; @@ -146,13 +146,13 @@ describe('Processor', () => { }); it('parses, converts and stringifies CSS', () => { - var a = (css) => expect(css).to.be.an.instanceof(Root); + let a = (css) => expect(css).to.be.an.instanceof(Root); expect((new Processor([a])).process('a {}').css).to.be.a('string'); }); it('send result to plugins', () => { - var processor = new Processor(); - var a = (css, result) => { + let processor = new Processor(); + let a = (css, result) => { expect(result).to.be.an.instanceof(Result); expect(result.processor).to.eql(processor); expect(result.opts).to.eql({ map: true }); @@ -162,12 +162,12 @@ describe('Processor', () => { }); it('accepts source map from PostCSS', () => { - var one = (new Processor()).process('a{}', { + let one = (new Processor()).process('a{}', { from: 'a.css', to: 'b.css', map: { inline: false } }); - var two = (new Processor()).process(one.css, { + let two = (new Processor()).process(one.css, { from: 'b.css', to: 'c.css', map: { prev: one.map, inline: false } @@ -176,7 +176,7 @@ describe('Processor', () => { }); it('supports async plugins', (done) => { - var async = (css) => { + let async = (css) => { return new Promise( (resolve) => { setTimeout(() => { css.append({ selector: 'a' }); @@ -198,8 +198,8 @@ describe('Processor', () => { }); it('runs async plugin only once', (done) => { - var calls = 0; - var async = (css) => { + let calls = 0; + let async = () => { return new Promise( (resolve) => { setTimeout(() => { calls += 1; @@ -208,7 +208,7 @@ describe('Processor', () => { }); }; - var result = (new Processor([async])).process('a {}'); + let result = (new Processor([async])).process('a {}'); result.then( () => { }); result.then( () => { result.then( () => { @@ -219,35 +219,35 @@ describe('Processor', () => { }); it('supports async errors', (done) => { - var error = new Error('Async'); - var async = (css) => { + let error = new Error('Async'); + let async = () => { return new Promise( (resolve, reject) => { reject(error); }); }; (new Processor([async])).process('').then( () => { done('should not run then callback'); - }).catch(function (error) { - expect(error).to.eql(error); + }).catch(function (err) { + expect(err).to.eql(error); done(); }); }); it('supports sync errors in async mode', (done) => { - var error = new Error('Async'); - var async = (css) => { + let error = new Error('Async'); + let async = () => { throw error; }; (new Processor([async])).process('').then( () => { done('should not run then callback'); - }).catch(function (error) { - expect(error).to.eql(error); + }).catch(function (err) { + expect(err).to.eql(error); done(); }); }); it('throws error on sync method to async plugin', () => { - var async = (css) => { + let async = () => { return new Promise( (resolve) => resolve() ); }; expect(() => { @@ -256,16 +256,16 @@ describe('Processor', () => { }); it('checks plugin compatibility', () => { - var plugin = postcss.plugin('test', function () { - return function (css) { + let plugin = postcss.plugin('test', function () { + return function () { throw 'Er'; }; }); - var func = plugin(); + let func = plugin(); func.postcssVersion = '2.1.5'; - var processBy = (version) => { - var processor = new Processor([func]); + let processBy = (version) => { + let processor = new Processor([func]); processor.version = version; processor.process('a{}').css; }; @@ -287,14 +287,14 @@ describe('Processor', () => { }); it('sets last plugin to result', (done) => { - var plugin1 = function (css, result) { + let plugin1 = function (css, result) { expect(result.lastPlugin).to.equal(plugin1); }; - var plugin2 = function (css, result) { + let plugin2 = function (css, result) { expect(result.lastPlugin).to.equal(plugin2); }; - var processor = new Processor([plugin1, plugin2]); + let processor = new Processor([plugin1, plugin2]); processor.process('a{}').then( (result) => { expect(result.lastPlugin).to.equal(plugin2); done(); diff --git a/test/result.js b/test/result.js index 62f4c3101..a2eb49355 100644 --- a/test/result.js +++ b/test/result.js @@ -9,7 +9,7 @@ describe('Result', () => { describe('toString()', () => { it('stringifies', () => { - var result = new Result(); + let result = new Result(); result.css = 'a{}'; expect('' + result).to.eql(result.css); }); @@ -19,12 +19,12 @@ describe('Result', () => { describe('warn()', () => { it('adds warning', () => { - var plugin = postcss.plugin('test-plugin', () => { - return (css, result) => { - result.warn('test', { node: css.first }); + let plugin = postcss.plugin('test-plugin', () => { + return (css, res) => { + res.warn('test', { node: css.first }); }; }); - var result = postcss([plugin]).process('a{}').sync(); + let result = postcss([plugin]).process('a{}').sync(); expect(result.messages).to.eql([ new Warning('test', { @@ -35,12 +35,12 @@ describe('Result', () => { }); it('allows to override plugin', () => { - var plugin = postcss.plugin('test-plugin', () => { - return (css, result) => { - result.warn('test', { plugin: 'test-plugin#one' }); + let plugin = postcss.plugin('test-plugin', () => { + return (css, res) => { + res.warn('test', { plugin: 'test-plugin#one' }); }; }); - var result = postcss([plugin]).process('a{}').sync(); + let result = postcss([plugin]).process('a{}').sync(); expect(result.messages[0].plugin).to.eql('test-plugin#one'); }); @@ -50,7 +50,7 @@ describe('Result', () => { describe('warnings()', () => { it('returns only warnings', () => { - var result = new Result(); + let result = new Result(); result.messages = [{ type: 'warning', text: 'a' }, { type: 'custom' }, { type: 'warning', text: 'b' }]; diff --git a/test/root.js b/test/root.js index 5d82b8dfb..4fb0e87ef 100644 --- a/test/root.js +++ b/test/root.js @@ -1,22 +1,21 @@ import Result from '../lib/result'; import parse from '../lib/parse'; -import Root from '../lib/root'; -import Rule from '../lib/rule'; import { expect } from 'chai'; +import path from 'path'; import fs from 'fs'; describe('Root', () => { describe('toString()', () => { - fs.readdirSync(__dirname + '/cases/').forEach( file => { - if ( !file.match(/\.css$/) ) return; + fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { + if ( !name.match(/\.css$/) ) return; - it('stringify ' + file, () => { - var path = __dirname + '/cases/' + file; - var css = fs.readFileSync(path).toString(); - expect(parse(css).toString()).to.eql(css); + it('stringify ' + name, () => { + let file = path.join(__dirname, 'cases', name); + let css = fs.readFileSync(file).toString(); + expect(parse(css, { from: file }).toString()).to.eql(css); }); }); @@ -25,15 +24,15 @@ describe('Root', () => { describe('prepend()', () => { it('fixes spaces on insert before first', () => { - var css = parse("a {} b {}"); + let css = parse('a {} b {}'); css.prepend({ selector: 'em' }); - expect(css.toString()).to.eql("em {} a {} b {}"); + expect(css.toString()).to.eql('em {} a {} b {}'); }); it('uses default spaces on only first', () => { - var css = parse("a {}"); + let css = parse('a {}'); css.prepend({ selector: 'em' }); - expect(css.toString()).to.eql("em {}\na {}"); + expect(css.toString()).to.eql('em {}\na {}'); }); }); @@ -41,22 +40,22 @@ describe('Root', () => { describe('append()', () => { it('sets new line between rules in multiline files', () => { - var a = parse('a {}\n\na {}\n'); - var b = parse('b {}\n'); + let a = parse('a {}\n\na {}\n'); + let b = parse('b {}\n'); expect(a.append(b).toString()).to.eql('a {}\n\na {}\n\nb {}\n'); }); it('sets new line between rules on last newline', () => { - var a = parse('a {}\n'); - var b = parse('b {}\n'); + let a = parse('a {}\n'); + let b = parse('b {}\n'); expect(a.append(b).toString()).to.eql('a {}\nb {}\n'); }); it('saves compressed style', () => { - var a = parse('a{}a{}'); - var b = parse('b {\n}\n'); + let a = parse('a{}a{}'); + let b = parse('b {\n}\n'); expect(a.append(b).toString()).to.eql('a{}a{}b{}'); }); @@ -65,7 +64,7 @@ describe('Root', () => { describe('insertAfter()', () => { it('does not use before of first rule', () => { - var css = parse('a{} b{}'); + let css = parse('a{} b{}'); css.insertAfter(0, { selector: '.a' }); css.insertAfter(2, { selector: '.b' }); @@ -79,7 +78,7 @@ describe('Root', () => { describe('remove()', () => { it('fixes spaces on removing first rule', () => { - var css = parse('a{}\nb{}\n'); + let css = parse('a{}\nb{}\n'); css.first.removeSelf(); expect(css.toString()).to.eql('b{}\n'); }); @@ -89,8 +88,8 @@ describe('Root', () => { describe('toResult()', () => { it('generates result with map', () => { - var root = parse('a {}'); - var result = root.toResult({ map: true }); + let root = parse('a {}'); + let result = root.toResult({ map: true }); expect(result).to.be.a.instanceOf(Result); expect(result.css).to.match(/a \{\}\n\/\*# sourceMappingURL=/); diff --git a/test/rule.js b/test/rule.js index 6dc6c632c..ed222a3e0 100644 --- a/test/rule.js +++ b/test/rule.js @@ -6,26 +6,26 @@ import { expect } from 'chai'; describe('Rule', () => { it('initializes with properties', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); expect(rule.selector).to.eql('a'); }); describe('selectors', () => { it('returns array', () => { - var rule = new Rule({ selector: 'a,b' }); + let rule = new Rule({ selector: 'a,b' }); expect(rule.selectors).to.eql(['a', 'b']); }); it('trims selectors', () => { - var rule = new Rule({ selector: ".a\n, .b , .c" }); + let rule = new Rule({ selector: '.a\n, .b , .c' }); expect(rule.selectors).to.eql(['.a', '.b', '.c']); }); it('is smart about commas', () => { // Note: We don’t have to care about unquoted attribute values // (such as `[foo=a,b]`), because that is invalid CSS. - var rule = new Rule({ + let rule = new Rule({ selector: "[foo='a, b'], a:-moz-any(:focus, [href*=','])" }); expect(rule.selectors).to.eql([ @@ -34,7 +34,7 @@ describe('Rule', () => { }); it('receive array', () => { - var rule = new Rule({ selector: 'a,b' }); + let rule = new Rule({ selector: 'a,b' }); rule.selectors = ['em', 'strong']; expect(rule.selector).to.eql('em, strong'); }); @@ -44,29 +44,29 @@ describe('Rule', () => { describe('toString()', () => { it('inserts default spaces', () => { - var rule = new Rule({ selector: 'a' }); + let rule = new Rule({ selector: 'a' }); expect(rule.toString()).to.eql('a {}'); rule.append({ prop: 'color', value: 'black' }); expect(rule.toString()).to.eql('a {\n color: black\n}'); }); it('clones spaces from another rule', () => { - var root = parse("a{\n }b{\n }"); - var rule = new Rule({ selector: 'em' }); + let root = parse('a{\n }b{\n }'); + let rule = new Rule({ selector: 'em' }); root.append(rule); - expect(rule.toString()).to.eql("em{\n }"); + expect(rule.toString()).to.eql('em{\n }'); }); it('uses different spaces for empty rules', () => { - var root = parse("a { }\nb {\n color: black\n}"); - var rule = new Rule({ selector: 'em' }); + let root = parse('a { }\nb {\n color: black\n}'); + let rule = new Rule({ selector: 'em' }); root.append(rule); - expect(rule.toString()).to.eql("\nem { }"); + expect(rule.toString()).to.eql('\nem { }'); rule.append({ prop: 'top', value: '0' }); - expect(rule.toString()).to.eql("\nem {\n top: 0\n}"); + expect(rule.toString()).to.eql('\nem {\n top: 0\n}'); }); }); diff --git a/test/tokenize.js b/test/tokenize.js index a58c25bbc..fa8020c29 100644 --- a/test/tokenize.js +++ b/test/tokenize.js @@ -3,8 +3,8 @@ import Input from '../lib/input'; import { expect } from 'chai'; -var test = (css, opts, tokens) => { - if ( typeof(tokens) == 'undefined' ) [tokens, opts] = [opts, tokens]; +let test = (css, opts, tokens) => { + if ( typeof tokens === 'undefined' ) [tokens, opts] = [opts, tokens]; expect(tokenize(new Input(css, opts))).to.eql(tokens); }; @@ -63,7 +63,7 @@ describe('tokenize', () => { }); it('tokenizes simple brackets', () => { - test('(ab)', [ ['brackets', '(ab)', 1, 1, 1, 4] ]); + test('(ab)', [ ['brackets', '(ab)', 1, 1, 1, 4] ]); }); it('tokenizes complicated brackets', () => { @@ -130,7 +130,7 @@ describe('tokenize', () => { }); it('tokenizes CSS', () => { - var css = 'a {\n' + + let css = 'a {\n' + ' content: "a";\n' + ' width: calc(1px;)\n' + ' }\n' + diff --git a/test/vendor.js b/test/vendor.js index 9da82ae7b..fb365f618 100644 --- a/test/vendor.js +++ b/test/vendor.js @@ -6,7 +6,7 @@ describe('vendor', () => { describe('.prefix()', () => { - it('returns prefix',() => { + it('returns prefix', () => { expect(vendor.prefix('-moz-color')).to.eql('-moz-'); expect(vendor.prefix('color' )).to.eql(''); }); diff --git a/test/warning.js b/test/warning.js index 981a3d700..4f111578f 100644 --- a/test/warning.js +++ b/test/warning.js @@ -8,18 +8,18 @@ describe('Warning', () => { describe('toString()', () => { it('outputs simple warning', () => { - var warning = new Warning('text'); + let warning = new Warning('text'); expect(warning.toString()).to.eql('text'); }); it('outputs warning with plugin', () => { - var warning = new Warning('text', { plugin: 'plugin' }); + let warning = new Warning('text', { plugin: 'plugin' }); expect(warning.toString()).to.eql('plugin: text'); }); it('outputs warning with plugin and node', () => { - var root = parse('a{}', { from: '/a.css' }); - var warning = new Warning('text', { + let root = parse('a{}', { from: '/a.css' }); + let warning = new Warning('text', { plugin: 'plugin', node: root.first }); From 82e5f15be8f305667d877e417b5873b4b77a1301 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 10 Mar 2015 23:10:21 +0300 Subject: [PATCH 0066/3047] Fix benchmarks --- benchmark/parsers.js | 6 ++++-- benchmark/processors.js | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/benchmark/parsers.js b/benchmark/parsers.js index db98f3db8..f8a20e786 100644 --- a/benchmark/parsers.js +++ b/benchmark/parsers.js @@ -24,8 +24,10 @@ module.exports = { }, { name: 'PostCSS', - fn: function () { - postcss().parse(css, { from: example }).toResult(); + defer: true, + fn: function (done) { + postcss.parse(css, { from: example }).toResult(); + done.resolve(); } }, { diff --git a/benchmark/processors.js b/benchmark/processors.js index bb2d12ba8..d3ab4720e 100644 --- a/benchmark/processors.js +++ b/benchmark/processors.js @@ -13,9 +13,14 @@ fs.writeFileSync(scss, css); var postcss = require('../build'); var cssnext = require('cssnext'); var stylus = require('stylus'); -var sass = require('node-sass'); var less = require('less'); +try { + var sass = require('node-sass'); +} catch (e) { + console.error(e.toString()); +} + module.exports = { name: 'Bootstrap', maxTime: 15, From 0c0335de8018207dbe86914e47ddb6dd084ea06a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 10 Mar 2015 23:14:46 +0300 Subject: [PATCH 0067/3047] More strict linting --- .eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index e3415b677..d24d89bdb 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,7 +9,7 @@ "no-reserved-keys": [2], "no-multi-spaces": [0], "no-extra-parens": [2], - "no-unused-vars": [1], + "no-unused-vars": [2], "no-loop-func": [0], "key-spacing": [0], "max-len": [2], From 7f9398181da4744b4d5e295b6a5b23f1255c77fa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 10 Mar 2015 23:40:29 +0300 Subject: [PATCH 0068/3047] Remove execSync dependency --- gulpfile.js | 4 ++-- package.json | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 861a92b4b..b9e7975a4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -85,9 +85,9 @@ gulp.task('bench:clean', function (done) { gulp.task('bench:' + type, ['build:lib'], function() { var compare = require('./tasks/compare'); var bench = require('gulp-bench'); - var sh = require('execSync'); + var child = require('child_process'); - var status = sh.exec('git status --porcelain').stdout.trim(); + var status = child.execSync('git status --porcelain').toString().trim(); var name = status === '' ? 'master' : 'current'; return gulp.src('./benchmark/' + type + '.js', { read: false }) diff --git a/package.json b/package.json index 640caafe0..f7e8c6c03 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "gulp-mocha": "2.0.0", "node-sass": "2.0.1", "gulp-util": "3.0.4", - "execSync": "1.0.2", "fs-extra": "0.16.5", "gonzales": "1.0.7", "through2": "0.6.3", From bd671cfec742215da89ed615e85892575dacdc9b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 11 Mar 2015 00:39:27 +0300 Subject: [PATCH 0069/3047] Speed up tokenizer --- lib/tokenize.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index 6618e80c8..09a7a920a 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -19,14 +19,6 @@ let singleQuote = "'".charCodeAt(0), wordEnd = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g, badBracket = /.[\\\/\("'\n]/; -var spaces = { - [cr]: true, - [tab]: true, - [feed]: true, - [space]: true, - [newline]: true -}; - export default function tokenize(input) { let tokens = []; let css = input.css.valueOf(); @@ -70,7 +62,11 @@ export default function tokenize(input) { offset = next; line += 1; } - } while ( spaces[code] ); + } while ( code == space || + code == newline || + code == tab || + code == cr || + code == feed ); tokens.push(['space', css.slice(pos, next)]); pos = next - 1; @@ -157,7 +153,14 @@ export default function tokenize(input) { escape = !escape; } code = css.charCodeAt(next + 1); - if ( escape && !spaces[code] ) next += 1; + if ( escape && (code != slash && + code != space && + code != newline && + code != tab && + code != cr && + code != feed ) ) { + next += 1; + } tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset From 49895ce77112d94a16417f9043f5c95ddbecf087 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 11 Mar 2015 00:44:04 +0300 Subject: [PATCH 0070/3047] Fix eslint warnings --- lib/tokenize.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index 09a7a920a..e3538745a 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -62,11 +62,11 @@ export default function tokenize(input) { offset = next; line += 1; } - } while ( code == space || - code == newline || - code == tab || - code == cr || - code == feed ); + } while ( code === space || + code === newline || + code === tab || + code === cr || + code === feed ); tokens.push(['space', css.slice(pos, next)]); pos = next - 1; @@ -153,12 +153,12 @@ export default function tokenize(input) { escape = !escape; } code = css.charCodeAt(next + 1); - if ( escape && (code != slash && - code != space && - code != newline && - code != tab && - code != cr && - code != feed ) ) { + if ( escape && (code !== slash && + code !== space && + code !== newline && + code !== tab && + code !== cr && + code !== feed ) ) { next += 1; } tokens.push(['word', css.slice(pos, next + 1), From 6d598da2d74483b3d41bf140b09d620fb28b0bc2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 13 Mar 2015 12:11:01 +0300 Subject: [PATCH 0071/3047] Rename CssSyntaxError#highlight to showSourceCode --- API.md | 10 +++++----- lib/css-syntax-error.js | 4 ++-- test/css-syntax-error.js | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/API.md b/API.md index 7ad936126..e0cbbc127 100644 --- a/API.md +++ b/API.md @@ -660,15 +660,15 @@ error.toString() //=> CssSyntaxError: app.css:1:1: Unclosed block // ^ ``` -### `error.highlight(color)` +### `error.showSourceCode(color)` Returns a few lines of CSS source, which generates this error. ```js -error.highlight() //=> a { - // bad - // ^ - // } +error.showSourceCode() //=> a { + // bad + // ^ + // } ``` Arguments: diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index d79fcdda4..87697e28e 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -21,7 +21,7 @@ export default class CssSyntaxError extends SyntaxError { } } - highlight(color) { + showSourceCode(color) { let num = this.line - 1; let lines = this.source.split('\n'); @@ -60,7 +60,7 @@ export default class CssSyntaxError extends SyntaxError { toString() { let text = this.message; - if ( this.source ) text += '\n' + this.highlight(); + if ( this.source ) text += '\n' + this.showSourceCode(); return this.name + ': ' + text; } } diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 45a08797d..3277ebfb5 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -45,7 +45,7 @@ describe('CssSyntaxError', () => { }); it('highlights broken line', () => { - expect(parseError('a {\n content: "\n}').highlight()).to.eql( + expect(parseError('a {\n content: "\n}').showSourceCode()).to.eql( 'a {\n' + ' content: "\n' + ' \u001b[1;31m^\u001b[0m\n' + @@ -53,8 +53,8 @@ describe('CssSyntaxError', () => { }); it('highlights without colors on request', () => { - expect(parseError('a {').highlight(false)).to.eql('a {\n' + - '^'); + expect(parseError('a {').showSourceCode(false)).to.eql('a {\n' + + '^'); }); it('prints with colored CSS', () => { From bd45c5431401e7391214c93c970c5723eadeb27f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 13 Mar 2015 12:17:14 +0300 Subject: [PATCH 0072/3047] Add sourceContent check to CssSyntaxError#showSourceCode --- API.md | 6 +++++- lib/css-syntax-error.js | 8 ++++---- test/css-syntax-error.js | 7 +++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/API.md b/API.md index e0cbbc127..ac256ccf5 100644 --- a/API.md +++ b/API.md @@ -665,7 +665,8 @@ error.toString() //=> CssSyntaxError: app.css:1:1: Unclosed block Returns a few lines of CSS source, which generates this error. ```js -error.showSourceCode() //=> a { +error.showSourceCode() //=> + // a { // bad // ^ // } @@ -677,6 +678,9 @@ Arguments: color codes. By default, PostCSS will use `process.stdout.isTTY` and `process.env.NODE_DISABLE_COLORS`. +If CSS has input source map without `sourceContent`, this method will return +empty string. + ### `error.message` Contains full error text by GNU error format. diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 87697e28e..5a8fd86ea 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -22,6 +22,8 @@ export default class CssSyntaxError extends SyntaxError { } showSourceCode(color) { + if ( !this.source ) return ''; + let num = this.line - 1; let lines = this.source.split('\n'); @@ -47,7 +49,7 @@ export default class CssSyntaxError extends SyntaxError { mark += '^'; } - return prev + broken + mark + next; + return '\n' + prev + broken + mark + next; } setMozillaProps() { @@ -59,9 +61,7 @@ export default class CssSyntaxError extends SyntaxError { } toString() { - let text = this.message; - if ( this.source ) text += '\n' + this.showSourceCode(); - return this.name + ': ' + text; + return this.name + ': ' + this.message + this.showSourceCode(); } } diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 3277ebfb5..34fb100a6 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -46,6 +46,7 @@ describe('CssSyntaxError', () => { it('highlights broken line', () => { expect(parseError('a {\n content: "\n}').showSourceCode()).to.eql( + '\n' + 'a {\n' + ' content: "\n' + ' \u001b[1;31m^\u001b[0m\n' + @@ -53,8 +54,10 @@ describe('CssSyntaxError', () => { }); it('highlights without colors on request', () => { - expect(parseError('a {').showSourceCode(false)).to.eql('a {\n' + - '^'); + expect(parseError('a {').showSourceCode(false)).to.eql( + '\n' + + 'a {\n' + + '^'); }); it('prints with colored CSS', () => { From 1f2edfa20dc061c1aa5abf3d9e1144021e654802 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 14 Mar 2015 23:02:02 +0300 Subject: [PATCH 0073/3047] Add automatically spellchecker --- .yaspellerrc | 76 ++++++++++++++++ API.md | 47 +++++----- ChangeLog.md | 14 +-- README.md | 241 ++++++++++++++++++++++++++------------------------- package.json | 7 +- 5 files changed, 231 insertions(+), 154 deletions(-) create mode 100644 .yaspellerrc diff --git a/.yaspellerrc b/.yaspellerrc new file mode 100644 index 000000000..ee1a7c68b --- /dev/null +++ b/.yaspellerrc @@ -0,0 +1,76 @@ +{ + "lang": "en", + "format": "markdown", + "fileExtensions": [".md"], + "excludeFiles": [".git", "node_modules", "benchmark/.bundle"], + "ignoreCapitalization": true, + "dictionary": [ + "6to5", + "AtCSS", + "Autoprefixer", + "Base64", + "cssnext", + "Browserhacks", + "CoffeeScript", + "GitHub", + "Traceur", + "PostCSS", + "PostCSS’s", + "postcss", + "Shopify", + "W3C", + "WebP", + "IE8", + "IE9", + "ES6", + "Sass", + "Sass’s", + "Weibo", + "libsass", + "CSSOM", + "Modernizr", + "npm", + "webpack", + "Amdusias", + "Andres", + "Andromalius", + "Andrealphus", + "Dantalion", + "Decarabia", + "Dvornov", + "Flauros", + "Josiah", + "Lydell", + "Maxime", + "Mohammad", + "Nikitenko", + "Savary", + "Seere", + "Suarez", + "Thirouin", + "Younes", + "Cimeies", + "Autodetect", + "autodetect", + "codebases", + "regexp", + "Transpiler", + "transpiler", + "transpile", + "transpiles", + "transpiling", + "tokenizer", + "linters", + "rebases", + "minifier", + "minifiers", + "mixins", + "inlined", + "inlines", + "stylesheet", + "stylesheets", + "stringifier", + "CLI", + "JS" + ] +} diff --git a/API.md b/API.md index ac256ccf5..7a71fc62f 100644 --- a/API.md +++ b/API.md @@ -1,21 +1,21 @@ # PostCSS API -* [postcss function](#postcss-function) -* [Processor class](#processor-class) -* [LazyResult class](#lazy-result-class) -* [Result class](#result-class) -* [Warning class](#warning-class) -* [CssSyntaxError class](#csssyntaxerror-class) +* [`postcss` function](#postcss-function) +* [`Processor` class](#processor-class) +* [`LazyResult` class](#lazy-result-class) +* [`Result` class](#result-class) +* [`Warning` class](#warning-class) +* [`CssSyntaxError` class](#csssyntaxerror-class) * [Vendor module](#vendor-module) * [List module](#list-module) -* [Input class](#input-class) +* [`Input` class](#input-class) * [Nodes common methods](#nodes-common-methods) * [Containers common methods](#containers-common-methods) -* [Root node](#root-node) -* [AtRule node](#atrule-node) -* [Rule node](#rule-node) -* [Declaration node](#declaration-node) -* [Comment node](#comment-node) +* [`Root` node](#root-node) +* [`AtRule` node](#atrule-node) +* [`Rule` node](#rule-node) +* [`Declaration` node](#declaration-node) +* [`Comment` node](#comment-node) ## `postcss` function @@ -253,9 +253,9 @@ Arguments: from that instance to this one. Plugins can also be added by passing them as arguments when creating -a `postcss` instance (cf. [`postcss(plugins)`]). +a `postcss` instance (see [`postcss(plugins)`]). -Asynchronous pluugin should return `Promise` instance. +Asynchronous plugin should return `Promise` instance. ### `processor.process(css, opts)` @@ -345,7 +345,7 @@ Alias for `LazyResult#css` property. ### `lazy.css` -Processes input CSS through synchronous plugins, stringify `Root` +Processes input CSS through synchronous plugins, convert `Root` to CSS string and returns [`Result#css`]. ```js @@ -551,7 +551,7 @@ root.toResult().root == root; ### `result.messages` Contains messages from plugins. For example, warnings or custom messages -to pluugins communication. +to plugins communication. Each message should has `type` and `plugin` properties. @@ -1174,8 +1174,7 @@ Arguments: ### `container.every(callback)` -Returns `true` if `callback` returns a truthy value for all -of the container’s children. +Returns `true` if `callback` returns a true for all of the container’s children. ```js var noPrefixes = rule.every(function (decl) { @@ -1189,8 +1188,8 @@ Arguments: ### `container.some(callback)` -Return `true` if `callback` returns a truthy value -for (at least) one of the container’s children. +Return `true` if `callback` returns a true value for (at least) one +of the container’s children. ```js var hasPrefix = rule.some(function (decl) { @@ -1245,7 +1244,7 @@ rule.each(function (decl) { ``` `container.each()` only iterates through the container’s immediate children. -If you need to recursively iterate through all the container’s descendents, +If you need to recursively iterate through all the container’s nodes, use `container.eachInside()`. ### `container.eachInside(callback)` @@ -1424,7 +1423,7 @@ Arguments: * `node (Node|object|string)`: new node. Because each node class is identifiable by unique properties, you can use -the following shortcuts to create nodes to prepend/append: +the following shortcuts to create nodes in insert methods: ```js root.append({ name: '@charset', params: '"UTF-8"' }); // at-rule @@ -1433,7 +1432,7 @@ rule.append({ prop: 'color', value: 'black' }); // declaration rule.append({ text: 'Comment' }) // comment ``` Also you can use string with CSS of new element. But it will be a little bit -slower, that shorcuts above. +slower, that shortcuts above. ```js root.append('a {}'); @@ -1565,7 +1564,7 @@ contained comments, those comments will be available in the `_params.raw` property. If you have not changed the parameters, calling `atrule.toString()` -will stringify the original raw value (comments and all). +will use the original raw value (comments and all). ```js var root = postcss.parse('@media print, /**/ screen {}'); diff --git a/ChangeLog.md b/ChangeLog.md index 736bf8dbd..e5ebffe5d 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -23,7 +23,7 @@ * Add `Node#replaceValues()` method. * Add `Node#moveTo()`, `moveBefore()` and `moveAfter()` methods. * Add `Node#cloneBefore()` and `cloneAfter()` shortcuts. -* Add `Node#next()`, `prev()` and `root()` shorcuts. +* Add `Node#next()`, `prev()` and `root()` shortcuts. * Add `Node#replaceWith()` method. * Add `Node#error()` method. * Add `Container#removeAll()` method. @@ -126,7 +126,7 @@ * Project was rewritten from CoffeeScript to ES6. * Add Safe Mode to works with live input or with hacks from legacy code. * More safer parser to pass all hacks from Browserhacks.com. -* Use real properties instead of magic getter/setter for raw propeties. +* Use real properties instead of magic getter/setter for raw properties. ## 1.0 “Marquis Decarabia” * Save previous source map for each node to support CSS concatenation @@ -137,8 +137,8 @@ * Allow to use arrays and `Root` in `Container#append` and same methods. * Add `Root#prevMap` with information about previous map. * Allow to use latest PostCSS from GitHub by npm. -* `Result` now is lazy and it will stringify output CSS only if you use `css` or - `map` property. +* `Result` now is lazy and it will generate output CSS only if you use `css` + or `map` property. * Use separated `map.prev` option to set previous map. * Rename `inlineMap` option to `map.inline`. * Rename `mapAnnotation` option to `map.annotation`. @@ -170,13 +170,13 @@ * Add source map annotation comment to output CSS. * Allow to inline source map to annotation comment by data:uri. * Fix source maps on Windows. -* Fix source maps for styles in subdirectory (by @nDmitry and @lydell). +* Fix source maps for subdirectory (by Dmitry Nikitenko and Simon Lydell). * Autodetect previous source map. * Add `first` and `last` shortcuts to container nodes. * Parse `!important` to separated property in `Declaration`. * Allow to break iteration by returning `false`. * Copy code style to new nodes. -* Add `eachInside` method to recursivelly iterate all nodes. +* Add `eachInside` method to recursively iterate all nodes. * Add `selectors` shortcut to get selectors array. * Add `toResult` method to `Rule` to simplify work with several input files. * Clean declaration’s `value`, rule’s `selector` and at-rule’s `params` @@ -190,7 +190,7 @@ * Rename `Node#remove()` method to `removeSelf()` to fix name conflict. * Node source was moved to `source` property with origin file and node end position. -* You can set own stringify function. +* You can set own CSS generate function. ## 0.1 “Count Andromalius” * Initial release. diff --git a/README.md b/README.md index ac94485cb..4e55c6ad0 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Its most popular plugin, [Autoprefixer], is one of the most universally praised CSS processors available. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. -But PostCSS is modular, 4-40x faster, and much more powerful. +But PostCSS is modular, 4-40 times faster, and much more powerful. PostCSS itself is very small. It includes only a CSS parser, a CSS node tree API, a source map generator, and a node tree stringifier. @@ -44,8 +44,8 @@ You can use the [cssnext] plugin pack and write future CSS code right now: ``` Or if you like the power provided by preprocessors like Sass, -you could combine [postcss-nested], [postcss-mixins], [postcss-easings] -and [postcss-media-minmax]: +you could combine [`postcss-nested`], [`postcss-mixins`], [`postcss-easings`] +and [`postcss-media-minmax`]: ```css $mobile: width <= 640px; @@ -82,8 +82,10 @@ Weibo account: [postcss]. Sponsored by Evil Martians +[Autoprefixer]: https://github.com/postcss/autoprefixer [@postcss]: https://twitter.com/postcss [postcss]: http://weibo.com/postcss +[cssnext]: https://github.com/cssnext/cssnext ## How PostCSS differs from Preprocessors @@ -103,20 +105,20 @@ Each plugin does one thing well. ### Modularity -Without any plugins, PostCSS will parse your CSS and stringify it back -to you without changing a single byte. All of the processing that enables -special features and syntax in your stylesheets is made possible -by PostCSS plugins, which are nothing more than JS functions. +Without any plugins, PostCSS will parse your CSS and convert it back +to the string without changing a single byte. All of the processing that enables +special features and syntax in your stylesheets is made possible by PostCSS +plugins, which are nothing more than JS functions. Because each PostCSS plugin is an independent module, different plugins can take different approaches. This flexibility allows plugin authors to create whatever features they can imagine, while empowering PostCSS users to add only those features that they want to their workflow. -Some plugins, like [postcss-custom-properties], [postcss-media-minmax], -and [postcss-calc], implement syntax from present and future W3C specs, +Some plugins, like [`postcss-custom-properties`], [`postcss-media-minmax`], +and [`postcss-calc`], implement syntax from present and future W3C specs, transpiling it to cross-browser-compatible output. Other plugins, -like [postcss-mixins] and [postcss-simple-extend], add new powers +like [`postcss-mixins`] and [`postcss-simple-extend`], add new powers to your stylesheets that are not yet part of any spec. With PostCSS, you can decide for yourself which plugins match your own needs and preferences. @@ -125,7 +127,7 @@ to the PostCSS ecosystem. Plugins are simple npm packages; so there are no barriers to writing your own plugins, or contributing ideas and bug fixes to the plugins that you use. -### Perfomance +### Performance PostCSS is one of the fastest CSS parsers written in JS. (Only [CSSOM] is faster, and only because it is less accurate.) So PostCSS will read your CSS @@ -147,17 +149,17 @@ to build into preprocessors (like [Autoprefixer]). PostCSS-powered tools can do much more than transform special syntax into browser-friendly CSS. PostCSS plugin authors have built linters -(like [doiuse] and [postcss-bem-linter]), code review tools -(like [list-selectors]), and minifiers (like [csswring]). -With [postcss-data-packer], you can create a cacheable “sprite” -by moving all `data:uri` values to separate file. - -One unique example of PostCSS’s power is [RTLCSS]. As you know, -in Arabic and Hebrew, writing moves from right-to-left (RTL), instead -of the more widespread left-to-right convention. Because a language’s -directionality affects its readers’ perspective, an international site’s layout -needs to change for RTL users, not just its text. (Check out [Arabic Wikipedia] -as an example.) The [RTLCSS] plugin effectively “mirrors” your stylesheet +(like [`doiuse`] and [`postcss-bem-linter`]), code review tools +(like [`list-selectors`]), and minifiers (like [`csswring`]). +With [`postcss-data-packer`], you can create a CSS-sprite by moving all +`data:uri` values to separate file. + +One unique example of PostCSS’s power is [`rtlcss`]. As you know, +in Arabic and Hebrew, writing moves from right-to-left, instead of the more +widespread left-to-right convention. Because a language’s directionality affects +its readers’ perspective, an international site’s layout needs to change +for Jews and Arabs, not just its text. (Check out [Arabic Wikipedia] +as an example.) The [`rtlcss`] plugin effectively “mirrors” your stylesheet by swapping `left` and `right`, changing the value order in `margin` shorthands, and more. @@ -165,7 +167,7 @@ and more. ### Use the CSS of the Future -CSS3 added valuable features, but some of them are not yet available in all +CSS 3 added valuable features, but some of them are not yet available in all of the browsers that developers need to support. And exciting future CSS modules are being drafted now — some even implemented in cutting-edge browsers — that will not be widely available for quite a while. But PostCSS plugins @@ -207,138 +209,137 @@ a specialized language for a specialized tool (as with preprocessors). ### Future CSS Syntax -* [postcss-color-function] supports functions to transform colors. -* [postcss-color-gray] supports the `gray()` function. -* [postcss-color-hex-alpha] supports `#rrggbbaa` and `#rgba` notation. -* [postcss-color-hwb] transforms `hwb()` to widely compatible `rgb()`. -* [postcss-color-rebeccapurple] supports the `rebeccapurple` color. -* [postcss-custom-media] supports custom aliases for media queries. -* [postcss-custom-properties] supports variables, using syntax from +* [`postcss-color-function`] supports functions to transform colors. +* [`postcss-color-gray`] supports the `gray()` function. +* [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. +* [`postcss-color-hwb`] transforms `hwb()` to widely compatible `rgb()`. +* [`postcss-color-rebeccapurple`] supports the `rebeccapurple` color. +* [`postcss-custom-media`] supports custom aliases for media queries. +* [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. -* [postcss-custom-selectors] adds custom aliases for selectors. -* [postcss-font-variant] transpiles human-readable `font-variant` to more widely - supported CSS. -* [postcss-host] makes the Shadow DOM’s `:host` selector work properly +* [`postcss-custom-selectors`] adds custom aliases for selectors. +* [`postcss-font-variant`] transpiles human-readable `font-variant` to more + widely supported CSS. +* [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. -* [postcss-media-minmax] adds `<=` and `=>` statements to media queries. -* [mq4-hover-shim] supports the `@media (hover)` feature. +* [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. +* [`mq4-hover-shim`] supports the `@media (hover)` feature. ### Fallbacks -* [postcss-color-hex] transforms `rgb()` and `rgba()` to hex. -* [postcss-epub] adds the `-epub-` prefix to relevant properties. -* [postcss-opacity] adds opacity filter for IE8. -* [postcss-vmin] generates `vm` fallback for `vmin` unit in IE9. -* [postcss-will-change] inserts 3D hack before `will-change` property. -* [Autoprefixer] adds vendor prefixes for you, using data from Can I Use. -* [cssgrace] provides various helpers and transpiles CSS3 for IE +* [`postcss-color-hex`] transforms `rgb()` and `rgba()` to hex. +* [`postcss-epub`] adds the `-epub-` prefix to relevant properties. +* [`postcss-opacity`] adds opacity filter for IE8. +* [`postcss-vmin`] generates `vm` fallback for `vmin` unit in IE9. +* [`postcss-will-change`] inserts 3D hack before `will-change` property. +* [`autoprefixer`] adds vendor prefixes for you, using data from Can I Use. +* [`cssgrace`] provides various helpers and transpiles CSS 3 for IE and other old browsers. -* [pixrem] generates pixel fallbacks for `rem` units. +* [`pixrem`] generates pixel fallbacks for `rem` units. ### Language Extensions -* [postcss-mixins] enables mixins more powerful than Sass’s, +* [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. -* [postcss-map] enables configuation maps. -* [postcss-nested] unwraps nested rules, as Sass does. -* [postcss-quantity-queries] enables quantity queries. -* [postcss-simple-extend] supports extending of silent classes, +* [`postcss-map`] enables configuration maps. +* [`postcss-nested`] unwraps nested rules. +* [`postcss-quantity-queries`] enables quantity queries. +* [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. -* [postcss-simple-vars] supports for Sass-style variables. -* [csstyle] adds components workflow to your styles. +* [`postcss-simple-vars`] supports for Sass-style variables. +* [`csstyle`] adds components workflow to your styles. ### Optimizations -* [postcss-assets] allows you to simplify URLs, insert image dimensions, +* [`postcss-assets`] allows you to simplify URLs, insert image dimensions, and inline files. -* [postcss-calc] reduces `calc()` to values +* [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). -* [postcss-data-packer] moves embedded Base64 data out of the stylesheet +* [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. -* [postcss-import] inlines the stylesheets referred to by `@import` rules. -* [postcss-normalize-url] normalizes `url()`s and trims quotes where they are +* [`postcss-import`] inlines the stylesheets referred to by `@import` rules. +* [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. -* [postcss-url] rebases or inlines `url()`s. -* [csswring] is a CSS minifier. -* [css-byebye] removes the CSS rules that you don’t want. -* [css-mqpacker] joins matching CSS media queries into a single statement. -* [webpcss] adds URLs for WebP images, so they can be used by browsers +* [`postcss-url`] rebases or inlines `url()`s. +* [`csswring`] is a CSS minifier. +* [`css-byebye`] removes the CSS rules that you don’t want. +* [`css-mqpacker`] joins matching CSS media queries into a single statement. +* [`webpcss`] adds URLs for WebP images, so they can be used by browsers that support WebP. ### Shortcuts -* [postcss-easings] replaces easing names from easings.net +* [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. -* [postcss-size] adds a `size` shortcut that sets width and height +* [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. ### Others -* [postcss-brand-colors] inserts company brand colors +* [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. -* [postcss-color-palette] transforms CSS2 color keywords to a custom palette. -* [postcss-single-charset] ensures that there is one +* [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. +* [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. -* [rtlcss] mirrors styles for right-to-left locales. +* [`rtlcss`] mirrors styles for right-to-left locales. ### Analysis -* [postcss-bem-linter] lints CSS for conformance to SUIT CSS methodology. -* [css2modernizr] creates a Modernizr config file +* [`postcss-bem-linter`] lints CSS for conformance to SUIT CSS methodology. +* [`css2modernizr`] creates a Modernizr config file that requires only the tests that your CSS uses. -* [doiuse] lints CSS for browser support, using data from Can I Use. -* [list-selectors] lists and categorizes the selectors used in your CSS, +* [`doiuse`] lints CSS for browser support, using data from Can I Use. +* [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review and analysis. -[postcss-color-rebeccapurple]: https://github.com/postcss/postcss-color-rebeccapurple -[postcss-custom-properties]: https://github.com/postcss/postcss-custom-properties -[postcss-custom-selectors]: https://github.com/postcss/postcss-custom-selectors -[postcss-color-hex-alpha]: https://github.com/postcss/postcss-color-hex-alpha -[postcss-color-function]: https://github.com/postcss/postcss-color-function -[postcss-single-charset]: https://github.com/hail2u/postcss-single-charset -[postcss-color-palette]: https://github.com/zaim/postcss-color-palette -[postcss-simple-extend]: https://github.com/davidtheclark/postcss-simple-extend -[postcss-media-minmax]: https://github.com/postcss/postcss-media-minmax -[postcss-custom-media]: https://github.com/postcss/postcss-custom-media -[postcss-brand-colors]: https://github.com/postcss/postcss-brand-colors -[postcss-font-variant]: https://github.com/postcss/postcss-font-variant -[postcss-will-change]: https://github.com/postcss/postcss-will-change -[postcss-simple-vars]: https://github.com/postcss/postcss-simple-vars -[postcss-data-packer]: https://github.com/Ser-Gen/postcss-data-packer -[postcss-bem-linter]: https://github.com/necolas/postcss-bem-linter -[postcss-color-gray]: https://github.com/postcss/postcss-color-gray -[postcss-color-hex]: https://github.com/TrySound/postcss-color-hex -[postcss-color-hwb]: https://github.com/postcss/postcss-color-hwb -[pleeease-filters]: https://github.com/iamvdo/pleeease-filters -[postcss-easings]: https://github.com/postcss/postcss-easings -[postcss-opacity]: https://github.com/iamvdo/postcss-opacity -[postcss-assets]: https://github.com/borodean/postcss-assets -[postcss-import]: https://github.com/postcss/postcss-import -[postcss-nested]: https://github.com/postcss/postcss-nested -[postcss-mixins]: https://github.com/postcss/postcss-mixins -[mq4-hover-shim]: https://github.com/twbs/mq4-hover-shim -[list-selectors]: https://github.com/davidtheclark/list-selectors -[css2modernizr]: https://github.com/vovanbo/css2modernizr -[Autoprefixer]: https://github.com/postcss/autoprefixer -[css-mqpacker]: https://github.com/hail2u/node-css-mqpacker -[postcss-epub]: https://github.com/Rycochet/postcss-epub -[postcss-calc]: https://github.com/postcss/postcss-calc -[postcss-size]: https://github.com/postcss/postcss-size -[postcss-host]: https://github.com/vitkarpov/postcss-host -[postcss-vmin]: https://github.com/iamvdo/postcss-vmin -[postcss-url]: https://github.com/postcss/postcss-url -[css-byebye]: https://github.com/AoDev/css-byebye -[cssgrace]: https://github.com/cssdream/cssgrace -[csswring]: https://github.com/hail2u/node-csswring -[csstyle]: https://github.com/geddski/csstyle -[webpcss]: https://github.com/lexich/webpcss -[rtlcss]: https://github.com/MohammadYounes/rtlcss -[RTLCSS]: https://github.com/MohammadYounes/rtlcss -[pixrem]: https://github.com/robwierzbowski/node-pixrem -[doiuse]: https://github.com/anandthakker/doiuse -[postcss-map]: https://github.com/pascalduez/postcss-map -[postcss-quantity-queries]: https://github.com/pascalduez/postcss-quantity-queries -[postcss-normalize-url]: https://github.com/ben-eb/postcss-normalize-url +[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties +[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors +[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette +[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax +[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media +[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors +[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-will-change`]: https://github.com/postcss/postcss-will-change +[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer +[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter +[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray +[`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex +[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-easings`]: https://github.com/postcss/postcss-easings +[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-import`]: https://github.com/postcss/postcss-import +[`postcss-nested`]: https://github.com/postcss/postcss-nested +[`postcss-mixins`]: https://github.com/postcss/postcss-mixins +[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim +[`list-selectors`]: https://github.com/davidtheclark/list-selectors +[`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`Autoprefixer`]: https://github.com/postcss/autoprefixer +[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker +[`postcss-epub`]: https://github.com/Rycochet/postcss-epub +[`postcss-calc`]: https://github.com/postcss/postcss-calc +[`postcss-size`]: https://github.com/postcss/postcss-size +[`postcss-host`]: https://github.com/vitkarpov/postcss-host +[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin +[`postcss-url`]: https://github.com/postcss/postcss-url +[`css-byebye`]: https://github.com/AoDev/css-byebye +[`cssgrace`]: https://github.com/cssdream/cssgrace +[`csswring`]: https://github.com/hail2u/node-csswring +[`csstyle`]: https://github.com/geddski/csstyle +[`webpcss`]: https://github.com/lexich/webpcss +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`pixrem`]: https://github.com/robwierzbowski/node-pixrem +[`doiuse`]: https://github.com/anandthakker/doiuse +[`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries +[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url ## Usage diff --git a/package.json b/package.json index f7e8c6c03..b41abc8f4 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,9 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "source-map": "~0.4.1", + "source-map": "~0.4.2", "js-base64": "~2.1.7", - "babel": "4.7.7" + "babel": "4.7.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -26,6 +26,7 @@ "gulp-bench": "1.1.0", "gulp-mocha": "2.0.0", "node-sass": "2.0.1", + "yaspeller": "1.0.2", "gulp-util": "3.0.4", "fs-extra": "0.16.5", "gonzales": "1.0.7", @@ -45,6 +46,6 @@ "chai": "2.1.1" }, "scripts": { - "test": "gulp" + "test": "gulp && yaspeller ." } } From 0ba3ccec05c301596c99cd6e4f979567f786f9c6 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 16 Mar 2015 10:26:18 +0000 Subject: [PATCH 0074/3047] Add postcss-font-family. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4e55c6ad0..7d867278f 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ a specialized language for a specialized tool (as with preprocessors). (when expressions involve the same units). * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. +* [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. @@ -340,6 +341,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url +[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family ## Usage From 3b4429da22edac17bc1c80e443ed4c3457ba29d6 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Tue, 17 Mar 2015 11:33:00 +0000 Subject: [PATCH 0075/3047] Add postcss-zindex. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7d867278f..4098657dc 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. * [`postcss-url`] rebases or inlines `url()`s. +* [`postcss-zindex`] rebases positive `z-index` values. * [`csswring`] is a CSS minifier. * [`css-byebye`] removes the CSS rules that you don’t want. * [`css-mqpacker`] joins matching CSS media queries into a single statement. @@ -342,6 +343,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family +[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex ## Usage From 14896931f699c55db3d46d1050cfe5be55bc3bad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 20 Mar 2015 18:36:23 +0300 Subject: [PATCH 0076/3047] Add Gitter chat to developers section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4098657dc..b4f63233e 100644 --- a/README.md +++ b/README.md @@ -453,3 +453,4 @@ the [Autoprefixer demo](http://jsfiddle.net/simevidas/udyTs/show/light/). * [PostCSS API](https://github.com/postcss/postcss/blob/master/API.md) * [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) +* [Ask questions](https://gitter.im/postcss/postcss) From b3857fa4c4dcf3cebfdd2fdab7da1146cd838185 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 22 Mar 2015 09:42:23 +0300 Subject: [PATCH 0077/3047] Clean all source map annontation comments --- lib/map-generator.js | 1 - test/map.js | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index a0230e868..44c982669 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -70,7 +70,6 @@ export default class { if ( node.type !== 'comment' ) continue; if ( node.text.match(/^# sourceMappingURL=/) ) { this.root.remove(i); - return; } } } diff --git a/test/map.js b/test/map.js index b3dc1080b..309d04db9 100644 --- a/test/map.js +++ b/test/map.js @@ -488,4 +488,16 @@ describe('source maps', () => { expect(result.css).to.eql('a { }/*# sourceMappingURL=a.css.map */'); }); + it('clears source map', () => { + let css1 = postcss.root().toResult({ map: true }).css; + let css2 = postcss.root().toResult({ map: true }).css; + + let root = postcss.root(); + root.append(css1); + root.append(css2); + + let css = root.toResult({ map: true }).css; + expect(css.match(/sourceMappingURL/g)).to.have.length(1); + }); + }); From 0d89d4148ece78f610276d07a01c3983ded440b1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 22 Mar 2015 09:44:27 +0300 Subject: [PATCH 0078/3047] Speed up source map annotation comment cleaning --- lib/map-generator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 44c982669..da7a6e8a3 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -68,7 +68,7 @@ export default class { for ( let i = this.root.nodes.length - 1; i >= 0; i-- ) { node = this.root.nodes[i]; if ( node.type !== 'comment' ) continue; - if ( node.text.match(/^# sourceMappingURL=/) ) { + if ( node.text.indexOf('# sourceMappingURL=') === 0 ) { this.root.remove(i); } } From 4a395c29d47950ffb64e81f687c4449af4299e34 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sun, 22 Mar 2015 17:49:37 +0000 Subject: [PATCH 0079/3047] Parse spaces & comments inside important. Fixes #253. --- lib/parser.js | 22 ++++- test/cases/important.css | 9 ++ test/cases/important.json | 182 +++++++++++++++++++++++++++++++++++++- 3 files changed, 208 insertions(+), 5 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index c5c3af341..f4cf3f75f 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -229,7 +229,17 @@ export default class Parser { string = this.spacesFromEnd(tokens) + string; if ( string !== ' !important' ) node._important = string; break; - } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { + } else if (token[1] === 'important') { + let tokensCache = tokens.slice(0); + let important = this.stringTo(tokensCache, i, '!'); + if (important.trim().indexOf('!') === 0) { + node.important = true; + node._important = important; + tokens = tokensCache.slice(0); + } + } + + if ( token[0] !== 'space' && token[0] !== 'comment' ) { break; } } @@ -464,4 +474,14 @@ export default class Parser { tokens.splice(from, tokens.length - from); return result; } + + stringTo(tokens, from, to) { + let result = ''; + + for ( let i = from; i > 0; i-- ) { + if (result.trim().indexOf(to) === 0 && tokens[i][0] !== 'space') break; + result = tokens.pop()[1] + result; + } + return result; + } } diff --git a/test/cases/important.css b/test/cases/important.css index 642ddb0ee..75bcc450f 100644 --- a/test/cases/important.css +++ b/test/cases/important.css @@ -2,3 +2,12 @@ a { width: 1px!important; color: black !important ; } + +p { + prop: important; + color: red important; + margin: 10px ! important; + padding: 20px ! /* test */ important; + width: 100px ! /*! test */ important; + height: 100px /*! test */ important; +} diff --git a/test/cases/important.json b/test/cases/important.json index 8cca3e7e0..b672fb7cd 100644 --- a/test/cases/important.json +++ b/test/cases/important.json @@ -12,7 +12,7 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n", + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, "file": "/important.css", "from": "/important.css" @@ -37,7 +37,7 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n", + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, "file": "/important.css", "from": "/important.css" @@ -61,7 +61,7 @@ "column": 1 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n", + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, "file": "/important.css", "from": "/important.css" @@ -76,11 +76,185 @@ "selector": "a", "semicolon": true, "after": "\n" + }, + { + "type": "rule", + "nodes": [ + { + "type": "decl", + "source": { + "start": { + "line": 7, + "column": 5 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 7, + "column": 20 + } + }, + "before": "\n ", + "prop": "prop", + "between": ": ", + "value": "important" + }, + { + "type": "decl", + "source": { + "start": { + "line": 8, + "column": 5 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 8, + "column": 25 + } + }, + "before": "\n ", + "prop": "color", + "between": ": ", + "value": "red important" + }, + { + "type": "decl", + "source": { + "start": { + "line": 9, + "column": 5 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 9, + "column": 39 + } + }, + "before": "\n ", + "prop": "margin", + "between": ": ", + "important": true, + "_important": " ! important", + "value": "10px" + }, + { + "type": "decl", + "source": { + "start": { + "line": 10, + "column": 5 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 10, + "column": 48 + } + }, + "before": "\n ", + "prop": "padding", + "between": ": ", + "important": true, + "_important": " ! /* test */ important", + "value": "20px" + }, + { + "type": "decl", + "source": { + "start": { + "line": 11, + "column": 5 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 11, + "column": 41 + } + }, + "before": "\n ", + "prop": "width", + "between": ": ", + "important": true, + "_important": " ! /*! test */ important", + "value": "100px" + }, + { + "type": "decl", + "source": { + "start": { + "line": 12, + "column": 5 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 12, + "column": 40 + } + }, + "before": "\n ", + "prop": "height", + "between": ": ", + "_value": { + "value": "100px important", + "raw": "100px /*! test */ important" + }, + "value": "100px important" + } + ], + "source": { + "start": { + "line": 6, + "column": 1 + }, + "input": { + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", + "safe": false, + "file": "/important.css", + "from": "/important.css" + }, + "end": { + "line": 13, + "column": 1 + } + }, + "before": "\n\n", + "between": " ", + "selector": "p", + "semicolon": true, + "after": "\n" } ], "source": { "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n", + "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, "file": "/important.css", "from": "/important.css" From 2c6dba548af6feb68b80dec989a9f760fa72a229 Mon Sep 17 00:00:00 2001 From: Simon Smith Date: Wed, 25 Mar 2015 10:19:34 +0000 Subject: [PATCH 0080/3047] Add postcss-at2x --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b4f63233e..8bc752d0a 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-assets`] allows you to simplify URLs, insert image dimensions, and inline files. +* [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet @@ -317,6 +318,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-nested`]: https://github.com/postcss/postcss-nested [`postcss-mixins`]: https://github.com/postcss/postcss-mixins From 9ce8d09a14a104714979714aa765f08413f342f3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 25 Mar 2015 15:15:35 +0300 Subject: [PATCH 0081/3047] Clean up important parsing --- lib/parser.js | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index f4cf3f75f..9a2840a60 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -229,13 +229,21 @@ export default class Parser { string = this.spacesFromEnd(tokens) + string; if ( string !== ' !important' ) node._important = string; break; + } else if (token[1] === 'important') { - let tokensCache = tokens.slice(0); - let important = this.stringTo(tokensCache, i, '!'); - if (important.trim().indexOf('!') === 0) { - node.important = true; - node._important = important; - tokens = tokensCache.slice(0); + let cache = tokens.slice(0); + let str = ''; + for ( let j = i; j > 0; j-- ) { + let type = cache[j][0]; + if ( str.trim().indexOf('!') === 0 && type !== 'space' ) { + break; + } + str = cache.pop()[1] + str; + } + if ( str.trim().indexOf('!') === 0 ) { + node.important = true; + node._important = str; + tokens = cache; } } @@ -474,14 +482,4 @@ export default class Parser { tokens.splice(from, tokens.length - from); return result; } - - stringTo(tokens, from, to) { - let result = ''; - - for ( let i = from; i > 0; i-- ) { - if (result.trim().indexOf(to) === 0 && tokens[i][0] !== 'space') break; - result = tokens.pop()[1] + result; - } - return result; - } } From ba010df07ba30813491e5599c78defcba83b69f6 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Wed, 25 Mar 2015 14:12:00 +0000 Subject: [PATCH 0082/3047] Add postcss-discard-comments. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8bc752d0a..e729fdead 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. +* [`postcss-discard-comments`] removes comments based on rules you specify. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. * [`rtlcss`] mirrors styles for right-to-left locales. @@ -346,6 +347,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex +[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments ## Usage From 4ad23f9405c7081980af48c34c08838cb5d121cd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 25 Mar 2015 17:37:55 +0300 Subject: [PATCH 0083/3047] Update npm packages --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b41abc8f4..21b9c8c8a 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "source-map": "~0.4.2", "js-base64": "~2.1.7", - "babel": "4.7.9" + "babel": "4.7.16" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -26,24 +26,24 @@ "gulp-bench": "1.1.0", "gulp-mocha": "2.0.0", "node-sass": "2.0.1", - "yaspeller": "1.0.2", + "yaspeller": "1.0.5", "gulp-util": "3.0.4", "fs-extra": "0.16.5", "gonzales": "1.0.7", "through2": "0.6.3", - "stylecow": "4.2.4", - "request": "2.53.0", + "stylecow": "4.2.6", + "request": "2.54.0", "cssnext": "1.1.0", "rework": "1.0.1", "mensch": "0.3.1", "stylus": "0.50.0", "eslint": "0.16.1", - "sinon": "1.13.0", + "sinon": "1.14.1", "mocha": "2.2.1", "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.4.0", - "chai": "2.1.1" + "chai": "2.1.2" }, "scripts": { "test": "gulp && yaspeller ." From c1a3ef4befa2ce4bddab68788579e58d8927fb68 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 25 Mar 2015 18:16:46 +0300 Subject: [PATCH 0084/3047] Resort plugins links --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index e729fdead..f8aa02d2c 100644 --- a/README.md +++ b/README.md @@ -299,9 +299,12 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors +[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments +[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax @@ -311,6 +314,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer +[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex @@ -319,14 +323,15 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets -[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-nested`]: https://github.com/postcss/postcss-nested +[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex [`postcss-mixins`]: https://github.com/postcss/postcss-mixins [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`list-selectors`]: https://github.com/davidtheclark/list-selectors [`css2modernizr`]: https://github.com/vovanbo/css2modernizr -[`Autoprefixer`]: https://github.com/postcss/autoprefixer +[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x +[`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker [`postcss-epub`]: https://github.com/Rycochet/postcss-epub [`postcss-calc`]: https://github.com/postcss/postcss-calc @@ -334,6 +339,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`postcss-url`]: https://github.com/postcss/postcss-url +[`postcss-map`]: https://github.com/pascalduez/postcss-map [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace [`csswring`]: https://github.com/hail2u/node-csswring @@ -342,12 +348,6 @@ a specialized language for a specialized tool (as with preprocessors). [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse -[`postcss-map`]: https://github.com/pascalduez/postcss-map -[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries -[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url -[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family -[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex -[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments ## Usage From 9c70b5ed4250442ea979e3bfc9c7618167f8011a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 25 Mar 2015 19:13:37 +0300 Subject: [PATCH 0085/3047] Add runner guidelines --- Runner Guidelines.md | 130 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Runner Guidelines.md diff --git a/Runner Guidelines.md b/Runner Guidelines.md new file mode 100644 index 000000000..0c257d66e --- /dev/null +++ b/Runner Guidelines.md @@ -0,0 +1,130 @@ +# PostCSS Runner Guidelines + +PostCSS runner is a tool, that takes plugins list from user and process +user’s CSS through this plugins. For example, [postcss-cli] or [gulp-postcss]. +This rules are mandatory for any PostCSS runners. + +This rules are not mandatory, but highly recommended for one-plugin tools +(like [gulp-autoprefixer]). + +See also ClojureWerkz’s [open source project recommendations]. + +[open source project recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ +[gulp-autoprefixer]: https://github.com/sindresorhus/gulp-autoprefixer +[gulp-postcss]: https://github.com/w0rm/gulp-postcss +[postcss-cli]: https://github.com/code42day/postcss-cli + +## 1. API + +### 1.1. Accept functions in plugin parameters + +Some plugins accept function in parameters. But JSON format can’t +contains function. Simple node.js module is a best format for plugin +list config. + +```js +module.exports = [ + require('postcss-assets')({ + cachebuster: function (file) { + return fs.statSync(file).mtime.getTime().toString(16); + } + }) +]; +``` + +## 2. Processing + +### 2.1. Set `from` and `to` processing options + +PostCSS needs `from` and `to` options to generate correct source map +and display better syntax errors. + +If your tool doesn’t save file to disk (as Gulp pipe for example), +you should set same `from` and `to` options. + +```js +processor.process({ from: file.path, to: file.path }); +``` + +### 2.2. Use only asynchronous API + +PostCSS has synchronous API only for debug. Synchronous API is slower +and can’t work with asynchronous plugins. + +```js +processor.process(opts).then(function (result) { + // processing is finished +}); +``` + +### 2.3. Use only public PostCSS API + +Public API is described in [API.md]. Any other methods and properties +are private and can be changed in any minor release. + +[API.md]: https://github.com/postcss/postcss/blob/master/API.md + +## 3. Output + +### 3.1. Don’t show JS stack for `CssSyntaxError` + +JS stacktrace is mostly irrelevant for CSS syntax errors. +PostCSS runner can be used by CSS developer, who didn’t know JS. + +```js +var CssSyntaxError = require('postcss/lib/css-syntax-error'); + +processor.process(opts).catch(function (error) { + if ( error instanceof CssSyntaxError ) { + process.stderr.write(error.message + error.showSourceCode()); + } else { + throw error; + } +}); +``` + +### 3.2. Display `result.warnings()` content + +Runner must output warnings from `result.warnings()`. + +```js +result.warnings().forEach(function (warn) { + process.stderr.write(warn.toString()); +}); +``` + +### 3.3. Save map from `result.map` to separated file + +By default, PostCSS will inline source map to CSS in `result.css`. +But you should be ready for separated file with map if user will ask it. + +```js +if ( result.map ) { + fs.writeFile(opts.to + '.map', result.map.toString()); +} +``` + +## 4. Documentation + +### 4.1. Use English in documentation + +Project description, `README.md` should be in English. Do not afraid your +English skills. Open source community will fix your errors. + +Of course you can have documentation on other languages. Just put it in file +like `README.ja.md`. + +### 4.2. Have Changelog file + +You should describe changes of all releases in `ChangeLog.md`, `History.md` +or some other separated file in project repository. + +[Keep A Changelog] contains advices to write good Changelog. + +[Keep A Changelog]: http://keepachangelog.com/ + +### 4.3. `postcssrunner` keyword in `package.json` + +Special keyword will be useful for feedback about PostCSS ecosystem. +This rule is not mandatory for non-npm packages, but it is still recommended +if package format has keywords field. From 24133a961ac1878086ba0fd2ea238ee41206f698 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 26 Mar 2015 00:54:22 +0800 Subject: [PATCH 0086/3047] Runner Guidelines - Allow using GitHub Releases Also simplified the language. --- Runner Guidelines.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Runner Guidelines.md b/Runner Guidelines.md index 0c257d66e..d4bce073f 100644 --- a/Runner Guidelines.md +++ b/Runner Guidelines.md @@ -114,10 +114,9 @@ English skills. Open source community will fix your errors. Of course you can have documentation on other languages. Just put it in file like `README.ja.md`. -### 4.2. Have Changelog file +### 4.2. Have Changelog -You should describe changes of all releases in `ChangeLog.md`, `History.md` -or some other separated file in project repository. +You should describe changes of all releases in a separate file like `ChangeLog.md`, `History.md`, etc, or with [GitHub Releases](https://help.github.com/articles/creating-releases/). [Keep A Changelog] contains advices to write good Changelog. From 5f2cc3cadf40f77982f6c378d445fba4c0a758fd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 25 Mar 2015 20:29:32 +0300 Subject: [PATCH 0087/3047] Fix speller warnings --- .yaspellerrc | 5 ++++- Runner Guidelines.md | 24 +++++++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index ee1a7c68b..515a13960 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -35,6 +35,7 @@ "Andres", "Andromalius", "Andrealphus", + "ClojureWerkz’s", "Dantalion", "Decarabia", "Dvornov", @@ -54,6 +55,7 @@ "autodetect", "codebases", "regexp", + "Changelog", "Transpiler", "transpiler", "transpile", @@ -71,6 +73,7 @@ "stylesheets", "stringifier", "CLI", - "JS" + "JS", + "js" ] } diff --git a/Runner Guidelines.md b/Runner Guidelines.md index d4bce073f..c7a4bd34b 100644 --- a/Runner Guidelines.md +++ b/Runner Guidelines.md @@ -1,25 +1,25 @@ # PostCSS Runner Guidelines PostCSS runner is a tool, that takes plugins list from user and process -user’s CSS through this plugins. For example, [postcss-cli] or [gulp-postcss]. -This rules are mandatory for any PostCSS runners. +user’s CSS through this plugins. For example, [`postcss-cli`] +or [`gulp-postcss`]. This rules are mandatory for any PostCSS runners. This rules are not mandatory, but highly recommended for one-plugin tools -(like [gulp-autoprefixer]). +(like [`gulp-autoprefixer`]). See also ClojureWerkz’s [open source project recommendations]. [open source project recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ -[gulp-autoprefixer]: https://github.com/sindresorhus/gulp-autoprefixer -[gulp-postcss]: https://github.com/w0rm/gulp-postcss -[postcss-cli]: https://github.com/code42day/postcss-cli +[`gulp-autoprefixer`]: https://github.com/sindresorhus/gulp-autoprefixer +[`gulp-postcss`]: https://github.com/w0rm/gulp-postcss +[`postcss-cli`]: https://github.com/code42day/postcss-cli ## 1. API ### 1.1. Accept functions in plugin parameters Some plugins accept function in parameters. But JSON format can’t -contains function. Simple node.js module is a best format for plugin +contains function. Simple Node.js module is a best format for plugin list config. ```js @@ -59,16 +59,16 @@ processor.process(opts).then(function (result) { ### 2.3. Use only public PostCSS API -Public API is described in [API.md]. Any other methods and properties +Public API is described in [`API.md`]. Any other methods and properties are private and can be changed in any minor release. -[API.md]: https://github.com/postcss/postcss/blob/master/API.md +[`API.md`]: https://github.com/postcss/postcss/blob/master/API.md ## 3. Output ### 3.1. Don’t show JS stack for `CssSyntaxError` -JS stacktrace is mostly irrelevant for CSS syntax errors. +JS stack trace is mostly irrelevant for CSS syntax errors. PostCSS runner can be used by CSS developer, who didn’t know JS. ```js @@ -116,11 +116,13 @@ like `README.ja.md`. ### 4.2. Have Changelog -You should describe changes of all releases in a separate file like `ChangeLog.md`, `History.md`, etc, or with [GitHub Releases](https://help.github.com/articles/creating-releases/). +You should describe changes of all releases in a separate file like +`ChangeLog.md`, `History.md`, etc, or with [GitHub Releases]. [Keep A Changelog] contains advices to write good Changelog. [Keep A Changelog]: http://keepachangelog.com/ +[GitHub Releases]: https://help.github.com/articles/creating-releases/ ### 4.3. `postcssrunner` keyword in `package.json` From aec41e92c423eb354a0076ac2e631aa2fd4f1185 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 25 Mar 2015 21:59:27 +0300 Subject: [PATCH 0088/3047] Cleaner 1.1 rule in Runner Guidelines --- Runner Guidelines.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Runner Guidelines.md b/Runner Guidelines.md index c7a4bd34b..13c97070f 100644 --- a/Runner Guidelines.md +++ b/Runner Guidelines.md @@ -18,9 +18,8 @@ See also ClojureWerkz’s [open source project recommendations]. ### 1.1. Accept functions in plugin parameters -Some plugins accept function in parameters. But JSON format can’t -contains function. Simple Node.js module is a best format for plugin -list config. +Some plugins accept function in parameters. If your runner has config file, +it should be a Node.js module, because JSON format doesn’t support functions. ```js module.exports = [ From 4e69aaa73a6029ee3576fb07e5dd73da9d3e6254 Mon Sep 17 00:00:00 2001 From: Philip Peterson Date: Wed, 25 Mar 2015 16:21:08 -0400 Subject: [PATCH 0089/3047] Throw an error if a declaration being added lacks a .prop or .value --- lib/container.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/container.js b/lib/container.js index 6d21d4c56..adfd61c7b 100644 --- a/lib/container.js +++ b/lib/container.js @@ -411,6 +411,9 @@ export default class Container extends Node { } else if ( nodes.type ) { nodes = [nodes]; } else if ( nodes.prop ) { + if (nodes.value === undefined) { + throw this.error("Could not construct declaration; 'value' field unspecified."); + } nodes = [new Declaration(nodes)]; } else if ( nodes.selector ) { import Rule from './rule'; @@ -420,6 +423,8 @@ export default class Container extends Node { nodes = [new AtRule(nodes)]; } else if ( nodes.text ) { nodes = [new Comment(nodes)]; + } else { + throw this.error("Could not infer node type. Try checking your field names?"); } } From d4c6b3aee5c6dd335c9f89f1f292839106ae41c3 Mon Sep 17 00:00:00 2001 From: Philip Peterson Date: Wed, 25 Mar 2015 17:36:55 -0400 Subject: [PATCH 0090/3047] Add test for malformed declaration being added to a container --- test/container.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/container.js b/test/container.js index 1c7eebd82..3dc6298e2 100644 --- a/test/container.js +++ b/test/container.js @@ -3,6 +3,7 @@ import Container from '../lib/container'; import parse from '../lib/parse'; import Rule from '../lib/rule'; import Root from '../lib/root'; +import postcss from '../lib/postcss'; import { expect } from 'chai'; @@ -22,6 +23,15 @@ var example = 'a { a: 1; b: 2 }' + describe('Container', () => { + describe('error', () => { + it('throws error when adding declaration with unspecified value', () => { + expect(() => { + var rule = postcss.rule(); + rule.append({prop: 'color', vlaue: 'black' }); + }).to.throw(Error, /'value' field unspecified/); + }); + }); + describe('push()', () => { it('adds child without checks', () => { From d955f5dc28a8fbbebb4924c96692f493dbeee0a1 Mon Sep 17 00:00:00 2001 From: Philip Peterson Date: Wed, 25 Mar 2015 17:44:49 -0400 Subject: [PATCH 0091/3047] Add test to ensure type of child can be inferred before adding to container --- test/container.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/container.js b/test/container.js index 3dc6298e2..e9163604c 100644 --- a/test/container.js +++ b/test/container.js @@ -30,6 +30,13 @@ describe('Container', () => { rule.append({prop: 'color', vlaue: 'black' }); }).to.throw(Error, /'value' field unspecified/); }); + + it('throws error when adding an object whose type cannot be determined', () => { + expect(() => { + var rule = postcss.rule(); + rule.append({ foo: 'bar' }); + }).to.throw(Error, /Could not infer node type./); + }); }); describe('push()', () => { From b0cfc8f1dddba948d64d13213bab506578d456c6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 Mar 2015 02:24:04 +0300 Subject: [PATCH 0092/3047] Clean up node checks --- lib/container.js | 6 +++--- test/container.js | 29 ++++++++++++++--------------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/lib/container.js b/lib/container.js index 95fd48932..d81efae91 100644 --- a/lib/container.js +++ b/lib/container.js @@ -276,8 +276,8 @@ export default class Container extends Node { } else if ( nodes.type ) { nodes = [nodes]; } else if ( nodes.prop ) { - if (nodes.value === undefined) { - throw this.error("Could not construct declaration; 'value' field unspecified."); + if ( typeof nodes.value === 'undefined' ) { + throw 'value field is missed in node creation'; } nodes = [new Declaration(nodes)]; } else if ( nodes.selector ) { @@ -289,7 +289,7 @@ export default class Container extends Node { } else if ( nodes.text ) { nodes = [new Comment(nodes)]; } else { - throw this.error("Could not infer node type. Try checking your field names?"); + throw 'Unknown node type in node creation'; } } diff --git a/test/container.js b/test/container.js index fd68e9fa9..1d3e8b7a0 100644 --- a/test/container.js +++ b/test/container.js @@ -2,7 +2,6 @@ import Declaration from '../lib/declaration'; import parse from '../lib/parse'; import Rule from '../lib/rule'; import Root from '../lib/root'; -import postcss from '../lib/postcss'; import { expect } from 'chai'; @@ -22,20 +21,20 @@ let example = 'a { a: 1; b: 2 }' + describe('Container', () => { - describe('error', () => { - it('throws error when adding declaration with unspecified value', () => { - expect(() => { - var rule = postcss.rule(); - rule.append({prop: 'color', vlaue: 'black' }); - }).to.throw(Error, /'value' field unspecified/); - }); - - it('throws error when adding an object whose type cannot be determined', () => { - expect(() => { - var rule = postcss.rule(); - rule.append({ foo: 'bar' }); - }).to.throw(Error, /Could not infer node type./); - }); + describe('errors', () => { + + it('throws error on declaration without value', () => { + expect( () => { + (new Rule()).append({prop: 'color', vlaue: 'black' }); + }).to.throw(/value field is missed/); + }); + + it('throws error on unknown node type', () => { + expect( () => { + (new Rule()).append({ foo: 'bar' }); + }).to.throw(/Unknown node type/); + }); + }); describe('push()', () => { From 10ac52f868b7e644a0b156ae94b5fed7a2d85a7c Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 26 Mar 2015 10:45:51 +0000 Subject: [PATCH 0093/3047] Add postcss-discard-duplicates. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f8aa02d2c..f4dba8e3c 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,7 @@ a specialized language for a specialized tool (as with preprocessors). (when expressions involve the same units). * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. +* [`postcss-discard-duplicates`] removes duplicate declarations and rules. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are @@ -297,6 +298,7 @@ a specialized language for a specialized tool (as with preprocessors). for code review and analysis. [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments From 0509f526a7227dc7a9949709442d023760e42949 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 28 Mar 2015 11:29:53 +0000 Subject: [PATCH 0094/3047] Add postcss-merge-rules. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index f4dba8e3c..276bbb387 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,8 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-discard-duplicates`] removes duplicate declarations and rules. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. +* [`postcss-merge-rules`] merges adjacent rules when selectors/properties + overlap. * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. * [`postcss-url`] rebases or inlines `url()`s. @@ -314,6 +316,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant [`postcss-will-change`]: https://github.com/postcss/postcss-will-change +[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family From 6627af705a9ebc347124727f01bca36ab0c6727a Mon Sep 17 00:00:00 2001 From: Sven Date: Sat, 28 Mar 2015 13:19:45 +0100 Subject: [PATCH 0095/3047] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f4dba8e3c..165025818 100644 --- a/README.md +++ b/README.md @@ -236,6 +236,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`cssgrace`] provides various helpers and transpiles CSS 3 for IE and other old browsers. * [`pixrem`] generates pixel fallbacks for `rem` units. +* [`postcss-pseudoelements`] Convert :: selectors into : selectors for IE 8 compatibility. ### Language Extensions @@ -350,6 +351,7 @@ a specialized language for a specialized tool (as with preprocessors). [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse +[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements ## Usage From 5d133c45091dd03f53da028f8dc58792574318f6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 28 Mar 2015 18:15:45 +0300 Subject: [PATCH 0096/3047] Clean up README.md --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 60e8c579e..1e9667955 100644 --- a/README.md +++ b/README.md @@ -230,13 +230,14 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-color-hex`] transforms `rgb()` and `rgba()` to hex. * [`postcss-epub`] adds the `-epub-` prefix to relevant properties. * [`postcss-opacity`] adds opacity filter for IE8. +* [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors + for IE 8 compatibility. * [`postcss-vmin`] generates `vm` fallback for `vmin` unit in IE9. * [`postcss-will-change`] inserts 3D hack before `will-change` property. * [`autoprefixer`] adds vendor prefixes for you, using data from Can I Use. * [`cssgrace`] provides various helpers and transpiles CSS 3 for IE and other old browsers. * [`pixrem`] generates pixel fallbacks for `rem` units. -* [`postcss-pseudoelements`] Convert :: selectors into : selectors for IE 8 compatibility. ### Language Extensions @@ -262,10 +263,10 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-discard-duplicates`] removes duplicate declarations and rules. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. -* [`postcss-merge-rules`] merges adjacent rules when selectors/properties - overlap. -* [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are - unnecessary. +* [`postcss-merge-rules`] merges adjacent rules when + selectors/properties overlap. +* [`postcss-normalize-url`] normalizes `url()`s and trims quotes + where they are unnecessary. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`csswring`] is a CSS minifier. @@ -308,6 +309,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette @@ -354,7 +356,6 @@ a specialized language for a specialized tool (as with preprocessors). [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse -[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements ## Usage From ac8c257ed5ae77ea688f2e5a20e88d743427250a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 28 Mar 2015 18:46:36 +0300 Subject: [PATCH 0097/3047] Parse wrong close bracket --- lib/parser.js | 12 ++++++------ test/parse.js | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 9a2840a60..25ea0168b 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -98,16 +98,12 @@ export default class Parser { this.pos += 1; while ( this.pos < this.tokens.length ) { token = this.tokens[this.pos]; + type = token[0]; - type = token[0]; if ( type === '(' ) { if ( !bracket ) bracket = token; brackets += 1; - } else if ( type === ')' ) { - brackets -= 1; - if ( brackets === 0 ) bracket = null; - } else if ( brackets === 0 ) { if ( type === ';' ) { if ( colon ) { @@ -133,6 +129,10 @@ export default class Parser { } else { if ( type === ':' ) colon = true; } + + } else if ( type === ')' ) { + brackets -= 1; + if ( brackets === 0 ) bracket = null; } this.pos += 1; @@ -418,7 +418,7 @@ export default class Parser { if ( founded === 2 ) break; } } - throw this.input.error('Missed semicolon', token[4], token[5]); + throw this.input.error('Missed semicolon', token[2], token[3]); } } diff --git a/test/parse.js b/test/parse.js index 7363258fe..b006ab262 100644 --- a/test/parse.js +++ b/test/parse.js @@ -89,6 +89,11 @@ describe('postcss.parse()', () => { expect(support.parent).to.equal(css); }); + it('ignores wrong close bracket', () => { + let root = parse('a { p: ()) }'); + expect(root.first.first.value).to.eql('())'); + }); + describe('errors', () => { it('throws on unclosed blocks', () => { From 899c655fe3fade0def42b4cbce95a7af285ebe3c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 28 Mar 2015 19:45:34 +0300 Subject: [PATCH 0098/3047] Fix map generation on the end of block --- lib/map-generator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index da7a6e8a3..071756cf8 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -221,7 +221,7 @@ export default class { }, generated: { line: line, - column: column + column: column - 1 } }); } From aaa2c9f0b7b736b5a1ac848e11efea02ec6223be Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 29 Mar 2015 15:16:11 +0300 Subject: [PATCH 0099/3047] Fix standalone build ignore --- .npmignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.npmignore b/.npmignore index 21e306af4..ed26106b3 100644 --- a/.npmignore +++ b/.npmignore @@ -10,7 +10,7 @@ test/ .travis.yml origin.css fail.css -postcss.js +/postcss.js gulpfile.js logo.svg From ca0a38232640340d8f35280469b2ef967fb26a9e Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sun, 29 Mar 2015 22:32:38 +0100 Subject: [PATCH 0100/3047] Add discard-empty, minify-selectors. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 1e9667955..308b5c33d 100644 --- a/README.md +++ b/README.md @@ -261,10 +261,12 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. * [`postcss-discard-duplicates`] removes duplicate declarations and rules. +* [`postcss-discard-empty`] removes empty rules and declarations. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-merge-rules`] merges adjacent rules when selectors/properties overlap. +* [`postcss-minify-selectors`] normalizes selectors for better compression. * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. * [`postcss-url`] rebases or inlines `url()`s. @@ -306,6 +308,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments +[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-color-function`]: https://github.com/postcss/postcss-color-function @@ -313,6 +316,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette +[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media From 2fddb6b2d5743639cb3419939d0cb9cf8fecc0ec Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 30 Mar 2015 12:42:55 +0300 Subject: [PATCH 0101/3047] Add space between plugin name and file source --- lib/css-syntax-error.js | 2 +- test/css-syntax-error.js | 2 +- test/warning.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 5a8fd86ea..a2224db94 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -2,7 +2,7 @@ export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file, plugin) { this.reason = message; - this.message = plugin ? plugin + ':' : ''; + this.message = plugin ? plugin + ': ' : ''; this.message += file ? file : ''; if ( typeof line !== 'undefined' && typeof column !== 'undefined' ) { this.line = line; diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 34fb100a6..4224a6652 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -115,7 +115,7 @@ describe('CssSyntaxError', () => { let error = parse('a{}').first.error('Error', { plugin: 'test' }); expect(error.plugin).to.eql('test'); expect(error.toString()).to.match( - /^CssSyntaxError: test::1:1: Error/); + /^CssSyntaxError: test: :1:1: Error/); }); }); diff --git a/test/warning.js b/test/warning.js index 4f111578f..071733f5f 100644 --- a/test/warning.js +++ b/test/warning.js @@ -23,7 +23,7 @@ describe('Warning', () => { plugin: 'plugin', node: root.first }); - expect(warning.toString()).to.eql('plugin:/a.css:1:1: text'); + expect(warning.toString()).to.eql('plugin: /a.css:1:1: text'); }); }); From 3af4fc2bbb56c70ac18be9cf8e41b2fa2241c77f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 30 Mar 2015 17:41:40 +0300 Subject: [PATCH 0102/3047] Fix 4.0 compatibility --- lib/lazy-result.js | 5 +---- lib/result.js | 13 +++++++++++++ lib/warn.js | 3 +++ 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 lib/warn.js diff --git a/lib/lazy-result.js b/lib/lazy-result.js index add8cb0c4..89978c0dc 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -2,10 +2,7 @@ import MapGenerator from './map-generator'; import Result from './result'; import parse from './parse'; import Root from './root'; - -let warn = (message) => { - if ( typeof console !== 'undefined' && console.warn ) console.warn(message); -}; +import warn from './warn'; export default class LazyResult { constructor(processor, css, opts) { diff --git a/lib/result.js b/lib/result.js index 8713ebed1..6cebce04b 100644 --- a/lib/result.js +++ b/lib/result.js @@ -1,4 +1,5 @@ import Warning from './warning'; +import warn from './warn'; export default class Result { constructor(processor, root, opts) { @@ -28,4 +29,16 @@ export default class Result { return this.messages.filter( i => i.type === 'warning' ); } + get from() { + warn('result.from was deprecated and will be remove in 5.0. ' + + 'Use result.opts.from instead.'); + return this.opts.from; + } + + get to() { + warn('result.to was deprecated and will be remove in 5.0. ' + + 'Use result.opts.to instead.'); + return this.opts.to; + } + } diff --git a/lib/warn.js b/lib/warn.js new file mode 100644 index 000000000..9b0eb4235 --- /dev/null +++ b/lib/warn.js @@ -0,0 +1,3 @@ +export default function warn(message) { + if ( typeof console !== 'undefined' && console.warn ) console.warn(message); +} From feb41155947a847d87f4003e91c0bddb0d16e0a2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 30 Mar 2015 18:16:31 +0300 Subject: [PATCH 0103/3047] Update npm packages --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 21b9c8c8a..fb2f1edfd 100644 --- a/package.json +++ b/package.json @@ -22,16 +22,16 @@ "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.6.0", "browserify": "9.0.3", - "gulp-babel": "4.0.0", + "gulp-babel": "4.0.1", "gulp-bench": "1.1.0", - "gulp-mocha": "2.0.0", - "node-sass": "2.0.1", - "yaspeller": "1.0.5", + "gulp-mocha": "2.0.1", + "node-sass": "2.1.1", + "yaspeller": "1.1.0", "gulp-util": "3.0.4", - "fs-extra": "0.16.5", + "fs-extra": "0.17.0", "gonzales": "1.0.7", "through2": "0.6.3", - "stylecow": "4.2.6", + "stylecow": "5.0.0", "request": "2.54.0", "cssnext": "1.1.0", "rework": "1.0.1", @@ -43,7 +43,7 @@ "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.4.0", - "chai": "2.1.2" + "chai": "2.2.0" }, "scripts": { "test": "gulp && yaspeller ." From 5cd3aed26b1b4229a937453e28fe8b3639c8ba12 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 30 Mar 2015 18:32:20 +0300 Subject: [PATCH 0104/3047] Add CssSyntaxError#highlight alias --- lib/css-syntax-error.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index a2224db94..0ef662c65 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,3 +1,5 @@ +import warn from './warn'; + export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file, plugin) { this.reason = message; @@ -52,6 +54,12 @@ export default class CssSyntaxError extends SyntaxError { return '\n' + prev + broken + mark + next; } + highlight(color) { + warn('CssSyntaxError#highlight was deprecated and will be remove ' + + 'in 5.0. Use error.showSourceCode instead.'); + return showSourceCode(color).replace(/^\n/, ''); + } + setMozillaProps() { let sample = Error.call(this, this.message); if ( sample.columnNumber ) this.columnNumber = this.column; From 50c0f9c29e8b2c46fb4e5a9b2895397c6897dcb2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 30 Mar 2015 18:36:06 +0300 Subject: [PATCH 0105/3047] Typo --- lib/css-syntax-error.js | 2 +- lib/result.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 0ef662c65..ad4f73928 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -55,7 +55,7 @@ export default class CssSyntaxError extends SyntaxError { } highlight(color) { - warn('CssSyntaxError#highlight was deprecated and will be remove ' + + warn('CssSyntaxError#highlight is deprecated and will be removed ' + 'in 5.0. Use error.showSourceCode instead.'); return showSourceCode(color).replace(/^\n/, ''); } diff --git a/lib/result.js b/lib/result.js index 6cebce04b..041d0f5ae 100644 --- a/lib/result.js +++ b/lib/result.js @@ -30,13 +30,13 @@ export default class Result { } get from() { - warn('result.from was deprecated and will be remove in 5.0. ' + + warn('result.from is deprecated and will be removed in 5.0. ' + 'Use result.opts.from instead.'); return this.opts.from; } get to() { - warn('result.to was deprecated and will be remove in 5.0. ' + + warn('result.to is deprecated and will be removed in 5.0. ' + 'Use result.opts.to instead.'); return this.opts.to; } From 0149cc131463a531ecd3a4e225fefbf38f1cb4ef Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 30 Mar 2015 18:43:05 +0300 Subject: [PATCH 0106/3047] Fix highlight alias --- lib/css-syntax-error.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index ad4f73928..58e68ecac 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -57,7 +57,7 @@ export default class CssSyntaxError extends SyntaxError { highlight(color) { warn('CssSyntaxError#highlight is deprecated and will be removed ' + 'in 5.0. Use error.showSourceCode instead.'); - return showSourceCode(color).replace(/^\n/, ''); + return this.showSourceCode(color).replace(/^\n/, ''); } setMozillaProps() { From abf3a2f029d8e135a6a6d08e732f6267fc3c5186 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 02:40:23 +0300 Subject: [PATCH 0107/3047] Better check promise --- lib/lazy-result.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 89978c0dc..6c0a66ce9 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -4,6 +4,10 @@ import parse from './parse'; import Root from './root'; import warn from './warn'; +function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then == 'function'; +} + export default class LazyResult { constructor(processor, css, opts) { this.stringified = false; @@ -76,7 +80,7 @@ export default class LazyResult { return new Promise( (resolve, reject) => { let promise = this.run(plugin); - if ( promise instanceof Promise ) { + if ( isPromise(promise) ) { promise.then( () => resolve() ) .catch( (error) => reject(error) ); } else { @@ -106,7 +110,7 @@ export default class LazyResult { for ( let plugin of this.result.processor.plugins ) { let promise = this.run(plugin); - if ( promise instanceof Promise ) { + if ( isPromise(promise) ) { throw 'Use process(css).then(cb) to work with async plugins'; } } From dc35300410390456d0d323d84dda2f6d4c7899a1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 02:43:46 +0300 Subject: [PATCH 0108/3047] Fix linting --- lib/lazy-result.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 6c0a66ce9..dc30379e4 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -5,7 +5,7 @@ import Root from './root'; import warn from './warn'; function isPromise(obj) { - return typeof obj === 'object' && typeof obj.then == 'function'; + return typeof obj === 'object' && typeof obj.then === 'function'; } export default class LazyResult { From 07b39147f1cde811699e2e4bce829a6e513fbd65 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 03:06:52 +0300 Subject: [PATCH 0109/3047] Fix async plugins running --- lib/lazy-result.js | 36 +++++++++++++++++++----------------- test/processor.js | 29 +++++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index dc30379e4..d25a365aa 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -68,6 +68,21 @@ export default class LazyResult { return this.async().catch(onRejected); } + asyncTick(plugins, resolve, reject) { + if ( plugins.length == 0 ) return resolve(); + + let promise = this.run(plugins.shift()); + if ( isPromise(promise) ) { + promise.then( () => { + this.asyncTick(plugins, resolve, reject); + }).catch( (error) => { + reject(error) + }); + } else { + this.asyncTick(plugins, resolve, reject); + } + } + async() { if ( this.processed ) { return Promise.resolve().then( () => this.stringify() ); @@ -76,23 +91,10 @@ export default class LazyResult { return this.processing; } - this.processing = this.processor.plugins.map( (plugin) => { - return new Promise( (resolve, reject) => { - - let promise = this.run(plugin); - if ( isPromise(promise) ) { - promise.then( () => resolve() ) - .catch( (error) => reject(error) ); - } else { - resolve(); - } - - }); - }) - .reduce( (sequence, promise) => { - return sequence.then( () => promise ); - }, Promise.resolve()) - .then( () => { + let plugins = this.processor.plugins.slice(0); + this.processing = new Promise( (resolve, reject) => { + this.asyncTick(plugins, resolve, reject); + }).then( () => { this.processed = true; return this.stringify(); }); diff --git a/test/processor.js b/test/processor.js index 4e178afcd..d92b8b1ad 100644 --- a/test/processor.js +++ b/test/processor.js @@ -176,16 +176,37 @@ describe('Processor', () => { }); it('supports async plugins', (done) => { - let async = (css) => { + let starts = 0; + let finish = 0; + let async1 = (css) => { return new Promise( (resolve) => { + starts += 1; setTimeout(() => { - css.append({ selector: 'a' }); + expect(starts).to.eql(1); + + css.append('a {}'); + finish += 1; resolve(); }, 1); }); }; - (new Processor([async])).process('').then( (result) => { - expect(result.css).to.eql('a {}'); + let async2 = (css) => { + return new Promise( (resolve) => { + expect(starts).to.eql(1); + expect(finish).to.eql(1); + + starts += 1; + setTimeout(() => { + css.append('b {}'); + finish += 1; + resolve(); + }, 1); + }); + }; + (new Processor([async1, async2])).process('').then( (result) => { + expect(starts).to.eql(2); + expect(finish).to.eql(2); + expect(result.css).to.eql('a {}\nb {}'); done(); }).catch( (error) => done(error) ); }); From 51caa9f235ab5dabe082d2ac0952ec9ef831018b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 03:11:02 +0300 Subject: [PATCH 0110/3047] Fix linting --- lib/lazy-result.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index d25a365aa..cdd2ef321 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -69,14 +69,14 @@ export default class LazyResult { } asyncTick(plugins, resolve, reject) { - if ( plugins.length == 0 ) return resolve(); + if ( plugins.length === 0 ) return resolve(); let promise = this.run(plugins.shift()); if ( isPromise(promise) ) { promise.then( () => { this.asyncTick(plugins, resolve, reject); }).catch( (error) => { - reject(error) + reject(error); }); } else { this.asyncTick(plugins, resolve, reject); From 905078c1823d6b7c6059b1c21f6fca3db02796ff Mon Sep 17 00:00:00 2001 From: Ivan Vlasenko Date: Wed, 1 Apr 2015 13:28:05 +0300 Subject: [PATCH 0111/3047] Added postcss-color-alpha to plugins list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 308b5c33d..3d16c5efc 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,7 @@ a specialized language for a specialized tool (as with preprocessors). like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. +* [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. ### Optimizations @@ -360,6 +361,7 @@ a specialized language for a specialized tool (as with preprocessors). [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse +[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha ## Usage From 8c93797b9b5ea96e022ab083c9780e6b5b13db07 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 13:30:14 +0300 Subject: [PATCH 0112/3047] Clean up plugins list --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3d16c5efc..54b279cb6 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,8 @@ a specialized language for a specialized tool (as with preprocessors). ### Language Extensions +* [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` + to `rgba()`. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. @@ -250,7 +252,6 @@ a specialized language for a specialized tool (as with preprocessors). like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. -* [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. ### Optimizations @@ -328,6 +329,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family +[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex @@ -361,7 +363,6 @@ a specialized language for a specialized tool (as with preprocessors). [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse -[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha ## Usage From 99b2bf979355b04c294095c572a152cbe0861ac1 Mon Sep 17 00:00:00 2001 From: Simon Smith Date: Wed, 1 Apr 2015 13:59:28 +0100 Subject: [PATCH 0113/3047] Add postcss-map-url --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 54b279cb6..78c8119a3 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-discard-empty`] removes empty rules and declarations. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. +* [`postcss-map-url`] allows editing of individual `url` declarations * [`postcss-merge-rules`] merges adjacent rules when selectors/properties overlap. * [`postcss-minify-selectors`] normalizes selectors for better compression. @@ -354,6 +355,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`postcss-url`]: https://github.com/postcss/postcss-url +[`postcss-map-url`]: https://github.com/simonsmith/postcss-map-url [`postcss-map`]: https://github.com/pascalduez/postcss-map [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace From c62c4b051ccfdb16368f627bae96e2c99fc28f66 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 16:03:12 +0300 Subject: [PATCH 0114/3047] Clean up Plugins section --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 78c8119a3..fc6564a42 100644 --- a/README.md +++ b/README.md @@ -266,7 +266,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-discard-empty`] removes empty rules and declarations. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. -* [`postcss-map-url`] allows editing of individual `url` declarations +* [`postcss-map-url`] allows editing of individual `url` declarations. * [`postcss-merge-rules`] merges adjacent rules when selectors/properties overlap. * [`postcss-minify-selectors`] normalizes selectors for better compression. @@ -336,6 +336,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-map-url`]: https://github.com/simonsmith/postcss-map-url [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets @@ -355,7 +356,6 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`postcss-url`]: https://github.com/postcss/postcss-url -[`postcss-map-url`]: https://github.com/simonsmith/postcss-map-url [`postcss-map`]: https://github.com/pascalduez/postcss-map [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace From ecb1329384b976690d2a3dc09a1c97f9b24e70d3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 16:13:46 +0300 Subject: [PATCH 0115/3047] Revert postcss-map-url, because postcss-url already can do it --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index fc6564a42..54b279cb6 100644 --- a/README.md +++ b/README.md @@ -266,7 +266,6 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-discard-empty`] removes empty rules and declarations. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. -* [`postcss-map-url`] allows editing of individual `url` declarations. * [`postcss-merge-rules`] merges adjacent rules when selectors/properties overlap. * [`postcss-minify-selectors`] normalizes selectors for better compression. @@ -336,7 +335,6 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters -[`postcss-map-url`]: https://github.com/simonsmith/postcss-map-url [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets From bdaa88146ba4be759f2ea07e1f808b5dbf212364 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 18:19:07 +0300 Subject: [PATCH 0116/3047] Update npm packages --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fb2f1edfd..85fc86e38 100644 --- a/package.json +++ b/package.json @@ -21,14 +21,14 @@ "gulp-json-editor": "2.2.1", "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.6.0", - "browserify": "9.0.3", + "browserify": "9.0.4", "gulp-babel": "4.0.1", "gulp-bench": "1.1.0", "gulp-mocha": "2.0.1", "node-sass": "2.1.1", "yaspeller": "1.1.0", "gulp-util": "3.0.4", - "fs-extra": "0.17.0", + "fs-extra": "0.18.0", "gonzales": "1.0.7", "through2": "0.6.3", "stylecow": "5.0.0", From 482281b80031ef15b398b6ce7e6060fd299a1837 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 18:31:38 +0300 Subject: [PATCH 0117/3047] Release 4.1.0 version --- .yaspellerrc | 3 +++ ChangeLog.md | 19 +++++++++++++++++++ package.json | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 515a13960..a86a29e11 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -35,6 +35,8 @@ "Andres", "Andromalius", "Andrealphus", + "Andras", + "Briggs", "ClojureWerkz’s", "Dantalion", "Decarabia", @@ -49,6 +51,7 @@ "Seere", "Suarez", "Thirouin", + "Peterson", "Younes", "Cimeies", "Autodetect", diff --git a/ChangeLog.md b/ChangeLog.md index e5ebffe5d..9ea3ce650 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,22 @@ +## 4.1 “Marquis Andras” +* Asynchronous plugin support. +* Add warnings from plugins and `Result#messages`. +* Add `postcss.plugin()` to create plugins with a standard API. +* Insert nodes by CSS string. +* Show version warning message on error from an outdated plugin. +* Send `Result` instance to plugins as the second argument. +* Add `CssSyntaxError#plugin`. +* Add `CssSyntaxError#showSourceCode()`. +* Add `postcss.list` and `postcss.vendor` aliases. +* Add `Processor#version`. +* Parse wrong closing bracket. +* Parse `!important` statement with spaces and comments inside (by Ben Briggs). +* Throw an error on declaration without `prop` or `value` (by Philip Peterson). +* Fix source map mappings position. +* Add indexed source map support. +* Always set `error.generated`. +* Clean all source map annotation comments. + ## 4.0.6 * Remove `babel` from released package dependencies (by Andres Suarez). diff --git a/package.json b/package.json index 85fc86e38..5b5e31f90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.0.6", + "version": "4.1.0", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 4cb8ba5c14704fd33ed803c5ceb734f50d3ba913 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2015 19:08:22 +0300 Subject: [PATCH 0118/3047] Typo in API examples --- API.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/API.md b/API.md index 7a71fc62f..b618a0a96 100644 --- a/API.md +++ b/API.md @@ -119,7 +119,7 @@ postcss.plugin('postcss-import', function () { fs.readFile('base.css', function (base) { css.prepend(base); resolve(); - }) + }); }); }; }); @@ -477,7 +477,7 @@ var plugin = postcss.plugin('postcss-important', function () { result.warn('Try to avoid !important', { node: decl }); } }); - } + }; }); postcss([plugin]).process(css).then(function (result) { @@ -486,7 +486,7 @@ postcss([plugin]).process(css).then(function (result) { // text: 'Try to avoid !important' // node: { type: 'decl', … } // }] -}) +}); ``` Arguments: @@ -564,8 +564,8 @@ postcss.plugin('postcss-min-browser', function () { plugin: 'postcss-min-browser', browsers: browsers }); - } -}) + }; +}); ``` You can add warning by [`Result#warn()`] and get all warnings @@ -580,7 +580,7 @@ result.processor.plugins.forEach(function (plugin) { if ( plugin.postcssPlugin == 'postcss-bad' ) { throw 'postcss-good is incompatible with postcss-bad'; } -}) +}); ``` ### `result.opts` @@ -1366,7 +1366,7 @@ Recursively iterates through all comment nodes within the container, calling ```js root.eachComment(function (comment) { comment.removeSelf(); -}) +}); ``` Arguments: From 19aef18e479293c155440e328b910d6badb8f97e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 08:37:15 +0300 Subject: [PATCH 0119/3047] Clean up list-selector plugin description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54b279cb6..cb44717d6 100644 --- a/README.md +++ b/README.md @@ -303,7 +303,7 @@ a specialized language for a specialized tool (as with preprocessors). that requires only the tests that your CSS uses. * [`doiuse`] lints CSS for browser support, using data from Can I Use. * [`list-selectors`] lists and categorizes the selectors used in your CSS, - for code review and analysis. + for code review. [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates From 431bd996e8fdddacb081fabf0beed28ff2eac0d1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 10:00:03 +0300 Subject: [PATCH 0120/3047] Show deprecated message only once --- lib/css-syntax-error.js | 6 +++--- lib/lazy-result.js | 9 +++++---- lib/result.js | 12 ++++++------ lib/warn-once.js | 8 ++++++++ lib/warn.js | 3 --- 5 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 lib/warn-once.js delete mode 100644 lib/warn.js diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 58e68ecac..d5320909d 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,4 +1,4 @@ -import warn from './warn'; +import warnOnce from './warn-once'; export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file, plugin) { @@ -55,8 +55,8 @@ export default class CssSyntaxError extends SyntaxError { } highlight(color) { - warn('CssSyntaxError#highlight is deprecated and will be removed ' + - 'in 5.0. Use error.showSourceCode instead.'); + warnOnce('CssSyntaxError#highlight is deprecated and will be ' + + 'removed in 5.0. Use error.showSourceCode instead.'); return this.showSourceCode(color).replace(/^\n/, ''); } diff --git a/lib/lazy-result.js b/lib/lazy-result.js index cdd2ef321..ce9553e19 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -1,8 +1,8 @@ import MapGenerator from './map-generator'; +import warnOnce from './warn-once'; import Result from './result'; import parse from './parse'; import Root from './root'; -import warn from './warn'; function isPromise(obj) { return typeof obj === 'object' && typeof obj.then === 'function'; @@ -135,9 +135,10 @@ export default class LazyResult { let b = runtimeVersion.split('.'); if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - warn(`${pluginName} is based on PostCSS ${pluginVersion} ` + - `but you use it with PostCSS ${runtimeVersion}. ` + - 'Maybe this is a source of error below.'); + warnOnce(`${pluginName} is based on ` + + `PostCSS ${pluginVersion} but you use it ` + + `with PostCSS ${runtimeVersion}. ` + + `Maybe this is a source of error below.`); } } throw error; diff --git a/lib/result.js b/lib/result.js index 041d0f5ae..5ee4a93cf 100644 --- a/lib/result.js +++ b/lib/result.js @@ -1,5 +1,5 @@ -import Warning from './warning'; -import warn from './warn'; +import warnOnce from './warn-once'; +import Warning from './warning'; export default class Result { constructor(processor, root, opts) { @@ -30,14 +30,14 @@ export default class Result { } get from() { - warn('result.from is deprecated and will be removed in 5.0. ' + - 'Use result.opts.from instead.'); + warnOnce('result.from is deprecated and will be removed in 5.0. ' + + 'Use result.opts.from instead.'); return this.opts.from; } get to() { - warn('result.to is deprecated and will be removed in 5.0. ' + - 'Use result.opts.to instead.'); + warnOnce('result.to is deprecated and will be removed in 5.0. ' + + 'Use result.opts.to instead.'); return this.opts.to; } diff --git a/lib/warn-once.js b/lib/warn-once.js new file mode 100644 index 000000000..a199609b8 --- /dev/null +++ b/lib/warn-once.js @@ -0,0 +1,8 @@ +let printed = { }; + +export default function warnOnce(message) { + if ( printed[message] ) return; + printed[message] = true; + + if ( typeof console !== 'undefined' && console.warn ) console.warn(message); +} diff --git a/lib/warn.js b/lib/warn.js deleted file mode 100644 index 9b0eb4235..000000000 --- a/lib/warn.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function warn(message) { - if ( typeof console !== 'undefined' && console.warn ) console.warn(message); -} From 8748a37c9e1a6d20843334a3a284681b3d761b47 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 10:14:52 +0300 Subject: [PATCH 0121/3047] Update cssnext package --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5b5e31f90..ada444c50 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "through2": "0.6.3", "stylecow": "5.0.0", "request": "2.54.0", - "cssnext": "1.1.0", + "cssnext": "1.2.1", "rework": "1.0.1", "mensch": "0.3.1", "stylus": "0.50.0", From fa1ba5d4ea10c65a6b2143e6f04cfcbf3fa7ac61 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 10:15:07 +0300 Subject: [PATCH 0122/3047] Release 4.1.1 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 9ea3ce650..3e0d1511a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.1.1 +* Show deprecated message only once. + ## 4.1 “Marquis Andras” * Asynchronous plugin support. * Add warnings from plugins and `Result#messages`. diff --git a/package.json b/package.json index ada444c50..bb9c5a91c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.0", + "version": "4.1.1", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From dde94b57ca89fb23569eaad3e5723ef6c3d5ec4b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 10:56:53 +0300 Subject: [PATCH 0123/3047] Add Promise and node.js 0.10 notice --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cb44717d6..d75583cc2 100644 --- a/README.md +++ b/README.md @@ -382,9 +382,12 @@ processor }); ``` +If you uses node.js 0.10, you should add [some Promise polyfill]. + Read the [PostCSS API] for more details. -[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md +[some Promise polyfill]: https://github.com/jakearchibald/es6-promise +[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md ### Source Maps From 7a47ba65fe67d1cb5060f3724daacf043c838377 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 11:01:29 +0300 Subject: [PATCH 0124/3047] Add polyfill to dictionary --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index a86a29e11..16f6e333c 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -72,6 +72,7 @@ "mixins", "inlined", "inlines", + "polyfill", "stylesheet", "stylesheets", "stringifier", From 9c205794db0837f06d82bb35a7f422038586b50d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 13:41:04 +0300 Subject: [PATCH 0125/3047] Aliasable list module --- lib/list.js | 8 +++++--- test/list.js | 10 ++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/list.js b/lib/list.js index edc15c398..1dc383f91 100644 --- a/lib/list.js +++ b/lib/list.js @@ -1,4 +1,4 @@ -export default { +let list = { split(string, separators, last) { let array = []; @@ -47,12 +47,14 @@ export default { space(string) { let spaces = [' ', '\n', '\t']; - return this.split(string, spaces); + return list.split(string, spaces); }, comma(string) { let comma = ','; - return this.split(string, [comma], true); + return list.split(string, [comma], true); } }; + +export default list; diff --git a/test/list.js b/test/list.js index f2be5b94c..4dfad1483 100644 --- a/test/list.js +++ b/test/list.js @@ -22,6 +22,11 @@ describe('list', () => { expect(list.space('f( )) a( () )')).to.eql(['f( ))', 'a( () )']); }); + it('works from variable', () => { + let space = list.space; + expect(space('a b')).to.eql(['a', 'b']); + }); + }); describe('.comma()', () => { @@ -42,6 +47,11 @@ describe('list', () => { expect(list.comma('f(,)), a(,(),)')).to.eql(['f(,))', 'a(,(),)']); }); + it('works from variable', () => { + let comma = list.comma; + expect(comma('a, b')).to.eql(['a', 'b']); + }); + }); }); From 1c9516d5eec1a117dbd4460b80411f27df7cdf17 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Apr 2015 13:55:53 +0300 Subject: [PATCH 0126/3047] Release 4.1.2 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 3e0d1511a..8e80261ab 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.1.2 +* List helpers can be accessed independently `var space = postcss.list.space`. + ## 4.1.1 * Show deprecated message only once. diff --git a/package.json b/package.json index bb9c5a91c..9b4b36a45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.1", + "version": "4.1.2", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 7ad0f5bf04ba4983e41c8543b26250e38331b1e8 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 2 Apr 2015 14:04:57 +0100 Subject: [PATCH 0127/3047] Add postcss-colormin. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d75583cc2..93d34918c 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). +* [`postcss-colormin`] reduces color values to their smallest representations. * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. * [`postcss-discard-duplicates`] removes duplicate declarations and rules. @@ -334,6 +335,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity From 2410a3db1f533004f07efb3152fc20288686a580 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 2 Apr 2015 16:48:35 +0100 Subject: [PATCH 0128/3047] Add postcss-discard-font-face. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 93d34918c..3f81186b5 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,7 @@ a specialized language for a specialized tool (as with preprocessors). and into a separate file. * [`postcss-discard-duplicates`] removes duplicate declarations and rules. * [`postcss-discard-empty`] removes empty rules and declarations. +* [`postcss-discard-font-face`] removes unused `@font-face` declarations. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-merge-rules`] merges adjacent rules when @@ -308,6 +309,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates +[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments From 6137024ca371bbc85fb4a5dc8b1ce999f62582f8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 12:42:40 +0300 Subject: [PATCH 0129/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f81186b5..909dc16b1 100644 --- a/README.md +++ b/README.md @@ -386,7 +386,7 @@ processor }); ``` -If you uses node.js 0.10, you should add [some Promise polyfill]. +If you uses node.js 0.10, you should add any [Promise polyfill]. Read the [PostCSS API] for more details. From 524ddcc01d8218c987c1285729d9ccafbf9dec8e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 12:44:54 +0300 Subject: [PATCH 0130/3047] Fix link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 909dc16b1..05d57f23d 100644 --- a/README.md +++ b/README.md @@ -390,8 +390,8 @@ If you uses node.js 0.10, you should add any [Promise polyfill]. Read the [PostCSS API] for more details. -[some Promise polyfill]: https://github.com/jakearchibald/es6-promise -[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md +[Promise polyfill]: https://github.com/jakearchibald/es6-promise +[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md ### Source Maps From 053428f72986c3fc645364af6537980a4e12e7df Mon Sep 17 00:00:00 2001 From: Alexey Gaziev Date: Fri, 3 Apr 2015 18:43:18 +0800 Subject: [PATCH 0131/3047] Add line about postcss-messages plugin --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 05d57f23d..75ef715fe 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,8 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. * [`rtlcss`] mirrors styles for right-to-left locales. +* [`postcss-messages`] displays warning messages from other plugins + right in your browser. ### Analysis @@ -339,6 +341,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets From c994aac80eec9cffc3665b5437f3301740446b15 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 13:48:47 +0300 Subject: [PATCH 0132/3047] Fix postcss-message position --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 75ef715fe..3af93efc3 100644 --- a/README.md +++ b/README.md @@ -294,11 +294,11 @@ a specialized language for a specialized tool (as with preprocessors). in the `brand-colors` module. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-discard-comments`] removes comments based on rules you specify. +* [`postcss-messages`] displays warning messages from other plugins + right in your browser. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`postcss-messages`] displays warning messages from other plugins - right in your browser. ### Analysis From 237ae50fe225df3fcbf145a5b8bbacc0f97d7e84 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 13:57:15 +0300 Subject: [PATCH 0133/3047] Update to Babel 5.0 --- lib/at-rule.js | 2 +- lib/comment.js | 2 +- lib/css-syntax-error.js | 1 + lib/declaration.js | 2 +- lib/root.js | 4 ++-- lib/rule.js | 4 ++-- package.json | 8 ++++---- test/cases/atrule-decls.json | 2 +- test/cases/atrule-empty.json | 2 +- test/cases/atrule-no-params.json | 2 +- test/cases/atrule-no-semicolon.json | 2 +- test/cases/atrule-no-space.json | 2 +- test/cases/atrule-params.json | 2 +- test/cases/atrule-rules.json | 6 +++--- test/cases/colon-selector.json | 4 ++-- test/cases/comments.json | 6 +++--- test/cases/decls.json | 4 ++-- test/cases/empty.json | 4 ++-- test/cases/escape.json | 22 +++++++++++----------- test/cases/extends.json | 6 +++--- test/cases/function.json | 4 ++-- test/cases/ie-progid.json | 4 ++-- test/cases/important.json | 6 +++--- test/cases/prop-hacks.json | 4 ++-- test/cases/quotes.json | 4 ++-- test/cases/raw-decl.json | 4 ++-- test/cases/rule-no-semicolon.json | 4 ++-- test/cases/selector.json | 4 ++-- test/cases/semicolons.json | 4 ++-- test/cases/tab.json | 4 ++-- test/node.js | 6 +++--- 31 files changed, 68 insertions(+), 67 deletions(-) diff --git a/lib/at-rule.js b/lib/at-rule.js index 6ed3e202c..760bb5684 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -2,8 +2,8 @@ import Container from './container'; export default class AtRule extends Container { constructor(defaults) { - this.type = 'atrule'; super(defaults); + this.type = 'atrule'; } stringify(builder, semicolon) { diff --git a/lib/comment.js b/lib/comment.js index a6907c84d..5e0cb2820 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -2,8 +2,8 @@ import Node from './node'; export default class Comment extends Node { constructor(defaults) { - this.type = 'comment'; super(defaults); + this.type = 'comment'; } stringify(builder) { diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index d5320909d..d1d1c0bbf 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -2,6 +2,7 @@ import warnOnce from './warn-once'; export default class CssSyntaxError extends SyntaxError { constructor(message, line, column, source, file, plugin) { + super(message); this.reason = message; this.message = plugin ? plugin + ': ' : ''; diff --git a/lib/declaration.js b/lib/declaration.js index c13a99d39..ec2c9cc1c 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -2,8 +2,8 @@ import Node from './node'; export default class Declaration extends Node { constructor(defaults) { - this.type = 'decl'; super(defaults); + this.type = 'decl'; } stringify(builder, semicolon) { diff --git a/lib/root.js b/lib/root.js index 7ca40b0cf..bd820ba9e 100644 --- a/lib/root.js +++ b/lib/root.js @@ -2,9 +2,9 @@ import Container from './container'; export default class Root extends Container { constructor(defaults) { - this.type = 'root'; - this.nodes = []; super(defaults); + if ( !this.nodes ) this.nodes = []; + this.type = 'root'; } remove(child) { diff --git a/lib/rule.js b/lib/rule.js index fb9c39c95..8818e282b 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -3,9 +3,9 @@ import list from './list'; export default class Rule extends Container { constructor(defaults) { - this.type = 'rule'; - this.nodes = []; super(defaults); + if ( !this.nodes ) this.nodes = []; + this.type = 'rule'; } get selectors() { diff --git a/package.json b/package.json index 9b4b36a45..6c7d37dfe 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "source-map": "~0.4.2", "js-base64": "~2.1.7", - "babel": "4.7.16" + "babel": "5.0.4" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -21,8 +21,8 @@ "gulp-json-editor": "2.2.1", "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.6.0", - "browserify": "9.0.4", - "gulp-babel": "4.0.1", + "browserify": "9.0.6", + "gulp-babel": "5.0.0", "gulp-bench": "1.1.0", "gulp-mocha": "2.0.1", "node-sass": "2.1.1", @@ -42,7 +42,7 @@ "mocha": "2.2.1", "cssom": "0.3.0", "gulp": "3.8.11", - "less": "2.4.0", + "less": "2.5.0", "chai": "2.2.0" }, "scripts": { diff --git a/test/cases/atrule-decls.json b/test/cases/atrule-decls.json index 9f49ba8f9..7fd557ced 100644 --- a/test/cases/atrule-decls.json +++ b/test/cases/atrule-decls.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -257,6 +256,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", diff --git a/test/cases/atrule-empty.json b/test/cases/atrule-empty.json index 094f5f344..a551ea4da 100644 --- a/test/cases/atrule-empty.json +++ b/test/cases/atrule-empty.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -26,6 +25,7 @@ "params": "\"UTF-8\"" } ], + "type": "root", "source": { "input": { "css": "@charset \"UTF-8\";\n", diff --git a/test/cases/atrule-no-params.json b/test/cases/atrule-no-params.json index 9e74af5e9..f309ee216 100644 --- a/test/cases/atrule-no-params.json +++ b/test/cases/atrule-no-params.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -28,6 +27,7 @@ "after": " " } ], + "type": "root", "source": { "input": { "css": "@page{ }\n", diff --git a/test/cases/atrule-no-semicolon.json b/test/cases/atrule-no-semicolon.json index e5302e5bc..92e88d8b1 100644 --- a/test/cases/atrule-no-semicolon.json +++ b/test/cases/atrule-no-semicolon.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -26,6 +25,7 @@ "params": "\"UTF-8\"" } ], + "type": "root", "source": { "input": { "css": "\n@charset \"UTF-8\"\n\n", diff --git a/test/cases/atrule-no-space.json b/test/cases/atrule-no-space.json index e6b69dc3a..9ab5e7b88 100644 --- a/test/cases/atrule-no-space.json +++ b/test/cases/atrule-no-space.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -26,6 +25,7 @@ "params": "\"test.css\"" } ], + "type": "root", "source": { "input": { "css": "@import\"test.css\"\n", diff --git a/test/cases/atrule-params.json b/test/cases/atrule-params.json index f2f0e3a44..176c4da15 100644 --- a/test/cases/atrule-params.json +++ b/test/cases/atrule-params.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -28,6 +27,7 @@ "after": "" } ], + "type": "root", "source": { "input": { "css": "@-moz-document/* near */ /* filter */ url(\"example.com/{\") /* a */ {}\n", diff --git a/test/cases/atrule-rules.json b/test/cases/atrule-rules.json index 80274aede..0fe32695b 100644 --- a/test/cases/atrule-rules.json +++ b/test/cases/atrule-rules.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "atrule", @@ -50,7 +49,6 @@ "params": "anim", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -76,6 +74,7 @@ "value": "black" } ], + "type": "rule", "source": { "start": { "line": 3, @@ -99,7 +98,6 @@ "after": "\n " }, { - "type": "rule", "nodes": [ { "type": "decl", @@ -125,6 +123,7 @@ "value": "white" } ], + "type": "rule", "source": { "start": { "line": 6, @@ -156,6 +155,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", diff --git a/test/cases/colon-selector.json b/test/cases/colon-selector.json index b7e6b03d8..ee4bbb8d1 100644 --- a/test/cases/colon-selector.json +++ b/test/cases/colon-selector.json @@ -1,9 +1,8 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 1, @@ -26,6 +25,7 @@ "after": "" } ], + "type": "root", "source": { "input": { "css": ":fullscreen {}\n", diff --git a/test/cases/comments.json b/test/cases/comments.json index 1959f50b0..52a1cacd5 100644 --- a/test/cases/comments.json +++ b/test/cases/comments.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "comment", @@ -71,7 +70,6 @@ "right": "" }, { - "type": "rule", "nodes": [ { "type": "comment", @@ -189,6 +187,7 @@ "right": " " } ], + "type": "rule", "source": { "start": { "line": 4, @@ -235,7 +234,6 @@ "right": " " }, { - "type": "rule", "nodes": [ { "type": "decl", @@ -284,6 +282,7 @@ "right": " " } ], + "type": "rule", "source": { "start": { "line": 13, @@ -307,6 +306,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", diff --git a/test/cases/decls.json b/test/cases/decls.json index be7100919..e82675467 100644 --- a/test/cases/decls.json +++ b/test/cases/decls.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -51,6 +49,7 @@ "value": "white" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -74,6 +73,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n color: black;\n background: white;\n}\n", diff --git a/test/cases/empty.json b/test/cases/empty.json index ed7bc5c00..5e7796102 100644 --- a/test/cases/empty.json +++ b/test/cases/empty.json @@ -1,9 +1,8 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 1, @@ -26,6 +25,7 @@ "after": "" } ], + "type": "root", "source": { "input": { "css": "{}\n", diff --git a/test/cases/escape.json b/test/cases/escape.json index 856480518..227420b9d 100644 --- a/test/cases/escape.json +++ b/test/cases/escape.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -74,6 +72,7 @@ "value": "\\;a" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -97,8 +96,8 @@ "after": "\n" }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 7, @@ -121,8 +120,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 8, @@ -149,8 +148,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 9, @@ -173,8 +172,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 10, @@ -197,8 +196,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 11, @@ -221,8 +220,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 12, @@ -245,8 +244,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 13, @@ -269,8 +268,8 @@ "after": " " }, { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 15, @@ -293,7 +292,6 @@ "after": " " }, { - "type": "rule", "nodes": [ { "type": "decl", @@ -319,6 +317,7 @@ "value": "\\\\" } ], + "type": "rule", "source": { "start": { "line": 17, @@ -342,6 +341,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", diff --git a/test/cases/extends.json b/test/cases/extends.json index 729917fa1..5cf558cbb 100644 --- a/test/cases/extends.json +++ b/test/cases/extends.json @@ -1,5 +1,4 @@ { - "type": "root", "nodes": [ { "type": "decl", @@ -25,7 +24,6 @@ "value": "1" }, { - "type": "rule", "nodes": [ { "type": "decl", @@ -51,7 +49,6 @@ "value": "2" }, { - "type": "rule", "nodes": [ { "type": "decl", @@ -77,6 +74,7 @@ "value": "3" } ], + "type": "rule", "source": { "start": { "line": 5, @@ -100,6 +98,7 @@ "after": "\n " } ], + "type": "rule", "source": { "start": { "line": 3, @@ -123,6 +122,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", diff --git a/test/cases/function.json b/test/cases/function.json index 67ad6a45c..32573498a 100644 --- a/test/cases/function.json +++ b/test/cases/function.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -28,6 +26,7 @@ "value": "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -51,6 +50,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\n}\n", diff --git a/test/cases/ie-progid.json b/test/cases/ie-progid.json index 2808ca13c..8a6365761 100644 --- a/test/cases/ie-progid.json +++ b/test/cases/ie-progid.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -28,6 +26,7 @@ "value": "progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3)" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -51,6 +50,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3);\n}\n", diff --git a/test/cases/important.json b/test/cases/important.json index b672fb7cd..35ed01514 100644 --- a/test/cases/important.json +++ b/test/cases/important.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -55,6 +53,7 @@ "value": "black" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -78,7 +77,6 @@ "after": "\n" }, { - "type": "rule", "nodes": [ { "type": "decl", @@ -229,6 +227,7 @@ "value": "100px important" } ], + "type": "rule", "source": { "start": { "line": 6, @@ -252,6 +251,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", diff --git a/test/cases/prop-hacks.json b/test/cases/prop-hacks.json index 9950335f5..9e9734c88 100644 --- a/test/cases/prop-hacks.json +++ b/test/cases/prop-hacks.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -74,6 +72,7 @@ "value": "big" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -97,6 +96,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n *color : black;\n _background: white;\n font-size/**/: big;\n}\n", diff --git a/test/cases/quotes.json b/test/cases/quotes.json index 8c2146c84..94a10167f 100644 --- a/test/cases/quotes.json +++ b/test/cases/quotes.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -51,6 +49,7 @@ "value": "'\\'\"\\\\'" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -74,6 +73,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a::before {\n content: \";'@ /**/\\\"\";\n content: '\\'\"\\\\';\n}\n", diff --git a/test/cases/raw-decl.json b/test/cases/raw-decl.json index 049e79625..b9a89f916 100644 --- a/test/cases/raw-decl.json +++ b/test/cases/raw-decl.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -32,6 +30,7 @@ "value": "a b" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -55,6 +54,7 @@ "after": " " } ], + "type": "root", "source": { "input": { "css": "a { color: a/* ; */ b; }\n", diff --git a/test/cases/rule-no-semicolon.json b/test/cases/rule-no-semicolon.json index b194022bf..acb2e43e7 100644 --- a/test/cases/rule-no-semicolon.json +++ b/test/cases/rule-no-semicolon.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -28,6 +26,7 @@ "value": "black" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -51,6 +50,7 @@ "after": "" } ], + "type": "root", "source": { "input": { "css": "a{color:black}\n", diff --git a/test/cases/selector.json b/test/cases/selector.json index 7dcdbaae2..187c411be 100644 --- a/test/cases/selector.json +++ b/test/cases/selector.json @@ -1,9 +1,8 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [], + "type": "rule", "source": { "start": { "line": 2, @@ -30,6 +29,7 @@ "after": "" } ], + "type": "root", "source": { "input": { "css": "\na/* { } */ b {}\n", diff --git a/test/cases/semicolons.json b/test/cases/semicolons.json index b5f7a8c49..27d6f2715 100644 --- a/test/cases/semicolons.json +++ b/test/cases/semicolons.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -28,6 +26,7 @@ "value": "black" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -51,6 +50,7 @@ "after": "\n ; ;\n" } ], + "type": "root", "source": { "input": { "css": "a {;;\n color: black;\n ; ;\n}\n", diff --git a/test/cases/tab.json b/test/cases/tab.json index 591357e89..97f8b105f 100644 --- a/test/cases/tab.json +++ b/test/cases/tab.json @@ -1,8 +1,6 @@ { - "type": "root", "nodes": [ { - "type": "rule", "nodes": [ { "type": "decl", @@ -28,6 +26,7 @@ "value": "black" } ], + "type": "rule", "source": { "start": { "line": 1, @@ -51,6 +50,7 @@ "after": "\n" } ], + "type": "root", "source": { "input": { "css": "a {\n\tcolor: black\n}\n", diff --git a/test/node.js b/test/node.js index b187065fa..248db0e96 100644 --- a/test/node.js +++ b/test/node.js @@ -246,9 +246,9 @@ describe('Node', () => { expect(json.nodes[0].parent).to.not.exist; expect(JSON.stringify(rule)).to.eql( - '{"type":"rule","nodes":[' + - '{"type":"decl","prop":"color","value":"b"}' + - '],"selector":"a"}'); + '{"selector":"a","nodes":[' + + '{"prop":"color","value":"b","type":"decl"}' + + '],"type":"rule"}'); }); }); From b4b9e11cff79e0cd5bba21afb90ab6ebaa820c1d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 15:33:57 +0300 Subject: [PATCH 0134/3047] Move project description to separated section --- README.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3af93efc3..aa561663e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,20 @@ praised CSS processors available. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 4-40 times faster, and much more powerful. +Twitter account for articles, releases, and new plugins: [@postcss]. +Weibo account: [postcss]. + + +Sponsored by Evil Martians + + +[Autoprefixer]: https://github.com/postcss/autoprefixer +[@postcss]: https://twitter.com/postcss +[postcss]: http://weibo.com/postcss +[cssnext]: https://github.com/cssnext/cssnext + +## What is PostCSS + PostCSS itself is very small. It includes only a CSS parser, a CSS node tree API, a source map generator, and a node tree stringifier. All CSS transformations are encapsulated in modular plugins. And these plugins @@ -75,16 +89,6 @@ $mobile: width <= 640px; } ``` -Twitter account for articles, releases, and new plugins: [@postcss]. -Weibo account: [postcss]. - - -Sponsored by Evil Martians - - -[Autoprefixer]: https://github.com/postcss/autoprefixer -[@postcss]: https://twitter.com/postcss -[postcss]: http://weibo.com/postcss [cssnext]: https://github.com/cssnext/cssnext ## How PostCSS differs from Preprocessors From 9dfb5e2e8ee083e0457f0b590f48981ea605b955 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 15:37:50 +0300 Subject: [PATCH 0135/3047] Add TOC to README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index aa561663e..6633ebf9b 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,13 @@ Weibo account: [postcss]. Sponsored by Evil Martians +--- + +[What is PostCSS](#what-is-postcss) | [PostCSS vs. preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start)| [Plugins](#plugins) +--- | --- | --- | --- | --- + +--- + [Autoprefixer]: https://github.com/postcss/autoprefixer [@postcss]: https://twitter.com/postcss [postcss]: http://weibo.com/postcss From 7068fa2afbf2f40b580d84762e4389bc134a08e7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 15:38:39 +0300 Subject: [PATCH 0136/3047] Clean up TOC --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6633ebf9b..97fe56f30 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,12 @@ But PostCSS is modular, 4-40 times faster, and much more powerful. Twitter account for articles, releases, and new plugins: [@postcss]. Weibo account: [postcss]. - -Sponsored by Evil Martians - - ---- - [What is PostCSS](#what-is-postcss) | [PostCSS vs. preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start)| [Plugins](#plugins) --- | --- | --- | --- | --- ---- + +Sponsored by Evil Martians + [Autoprefixer]: https://github.com/postcss/autoprefixer [@postcss]: https://twitter.com/postcss From cfe7693a1c21aff8eee296e315eabb712060f564 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 15:40:50 +0300 Subject: [PATCH 0137/3047] Clean up README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 97fe56f30..9d5537d7b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ But PostCSS is modular, 4-40 times faster, and much more powerful. Twitter account for articles, releases, and new plugins: [@postcss]. Weibo account: [postcss]. -[What is PostCSS](#what-is-postcss) | [PostCSS vs. preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start)| [Plugins](#plugins) +[Examples](#what-is-postcss) | [PostCSS vs. preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start)| [Plugins](#plugins) --- | --- | --- | --- | --- @@ -94,7 +94,7 @@ $mobile: width <= 640px; [cssnext]: https://github.com/cssnext/cssnext -## How PostCSS differs from Preprocessors +## How PostCSS Differs from Preprocessors Sass, Less and Stylus provide specialized languages that you can use to write CSS templates. These languages and their compilers are defined together @@ -203,7 +203,9 @@ a specialized language for a specialized tool (as with preprocessors). [Grunt]: https://github.com/nDmitry/grunt-postcss [Gulp]: https://github.com/w0rm/gulp-postcss -## Plugins Packs +## Plugins + +### Packs * [cssnext] contains plugins that allow you to use future CSS features today. * [AtCSS] contains plugins that transform your CSS according @@ -212,8 +214,6 @@ a specialized language for a specialized tool (as with preprocessors). [cssnext]: https://github.com/putaindecode/cssnext [AtCSS]: https://github.com/morishitter/atcss -## Plugins - ### Future CSS Syntax * [`postcss-color-function`] supports functions to transform colors. From 3eeb3e65e62997da7237e771d7827fddd14e1102 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 15:43:19 +0300 Subject: [PATCH 0138/3047] Fix spellchecker --- .yaspellerrc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index 16f6e333c..976d93c45 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -2,7 +2,7 @@ "lang": "en", "format": "markdown", "fileExtensions": [".md"], - "excludeFiles": [".git", "node_modules", "benchmark/.bundle"], + "excludeFiles": [".git", "node_modules", "benchmark/.bundle", "build"], "ignoreCapitalization": true, "dictionary": [ "6to5", @@ -78,6 +78,7 @@ "stringifier", "CLI", "JS", - "js" + "js", + "vs" ] } From f43bb7396372c839bf40b3d420b4b13c4fa6f44e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 3 Apr 2015 15:43:25 +0300 Subject: [PATCH 0139/3047] Add Usage section to TOC --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d5537d7b..57f96583d 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ But PostCSS is modular, 4-40 times faster, and much more powerful. Twitter account for articles, releases, and new plugins: [@postcss]. Weibo account: [postcss]. -[Examples](#what-is-postcss) | [PostCSS vs. preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start)| [Plugins](#plugins) ---- | --- | --- | --- | --- +[Examples](#what-is-postcss) | [PostCSS vs. Preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) +--- | --- | --- | --- | --- | --- Sponsored by Evil Martians From 73d13a329eacc210e32466cc0fcdbf79af0e55ef Mon Sep 17 00:00:00 2001 From: antyakushev Date: Fri, 3 Apr 2015 23:52:15 +0300 Subject: [PATCH 0140/3047] Add postcss-default-unit to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 57f96583d..8f6129124 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,7 @@ a specialized language for a specialized tool (as with preprocessors). with `cubic-bezier()` functions. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. +* [`postcss-default-unit`] adds default unit to numeric css properties. ### Others @@ -332,6 +333,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors From b76b16506b3a14eb72f78a91f4d12aa1e50ad384 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Apr 2015 00:26:34 +0300 Subject: [PATCH 0141/3047] Fix plugins order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f6129124..32cd187d3 100644 --- a/README.md +++ b/README.md @@ -290,11 +290,11 @@ a specialized language for a specialized tool (as with preprocessors). ### Shortcuts +* [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. -* [`postcss-default-unit`] adds default unit to numeric css properties. ### Others From f905d82bf5e13cc273866a966ed363463bee6c7a Mon Sep 17 00:00:00 2001 From: Alexey Date: Sat, 4 Apr 2015 18:33:58 +0500 Subject: [PATCH 0142/3047] Add postcss-image-set to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 32cd187d3..299a96da8 100644 --- a/README.md +++ b/README.md @@ -236,6 +236,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-color-hex`] transforms `rgb()` and `rgba()` to hex. * [`postcss-epub`] adds the `-epub-` prefix to relevant properties. +* [`postcss-image-set`] adds `background-image` with first image for `image-set()` * [`postcss-opacity`] adds opacity filter for IE8. * [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors for IE 8 compatibility. @@ -348,6 +349,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-messages`]: https://github.com/postcss/postcss-messages From 4f003f470294b44b937e6732585a2f6157807a3f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Apr 2015 17:03:07 +0300 Subject: [PATCH 0143/3047] Add link to Developent section to README.md TOC --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 299a96da8..41b98f013 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ But PostCSS is modular, 4-40 times faster, and much more powerful. Twitter account for articles, releases, and new plugins: [@postcss]. Weibo account: [postcss]. -[Examples](#what-is-postcss) | [PostCSS vs. Preprocessors](#how-postcss-differs-from-preprocessors) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) +[Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) | [Plugin Development](#how-to-develop-postcss-plugin) --- | --- | --- | --- | --- | --- @@ -94,7 +94,7 @@ $mobile: width <= 640px; [cssnext]: https://github.com/cssnext/cssnext -## How PostCSS Differs from Preprocessors +### How PostCSS Differs from Preprocessors Sass, Less and Stylus provide specialized languages that you can use to write CSS templates. These languages and their compilers are defined together From 2ecd7e70d00e842bc6b98cadcf494f4a0d53ac9e Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 4 Apr 2015 17:15:40 +0100 Subject: [PATCH 0144/3047] Add postcss-minify-font-weight. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 41b98f013..aff57db2a 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-merge-rules`] merges adjacent rules when selectors/properties overlap. +* [`postcss-minify-font-weight`] compresses `font-weight` values. * [`postcss-minify-selectors`] normalizes selectors for better compression. * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. @@ -320,6 +321,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates +[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight [`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors From d4e8892e650109971964e09969a83aeebd4a920f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 5 Apr 2015 21:17:02 +0300 Subject: [PATCH 0145/3047] Add npm-debug.log to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ded891fcd..c81fb4f4f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ benchmark/results/ benchmark/cache/ build/ +npm-debug.log origin.css fail.css From 37ff05585aced4800c54e7df7df93da0418c2a76 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 5 Apr 2015 21:18:38 +0300 Subject: [PATCH 0146/3047] Update development dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 6c7d37dfe..82d2ff34e 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "source-map": "~0.4.2", "js-base64": "~2.1.7", - "babel": "5.0.4" + "babel": "5.0.8" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -21,7 +21,7 @@ "gulp-json-editor": "2.2.1", "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.6.0", - "browserify": "9.0.6", + "browserify": "9.0.7", "gulp-babel": "5.0.0", "gulp-bench": "1.1.0", "gulp-mocha": "2.0.1", @@ -32,7 +32,7 @@ "gonzales": "1.0.7", "through2": "0.6.3", "stylecow": "5.0.0", - "request": "2.54.0", + "request": "2.55.0", "cssnext": "1.2.1", "rework": "1.0.1", "mensch": "0.3.1", From 5b253f452f41e97d1e5cb96b53733044814966ad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 5 Apr 2015 21:50:56 +0300 Subject: [PATCH 0147/3047] Add Promise polyfill for node.js 0.10 --- lib/lazy-result.js | 2 ++ package.json | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index ce9553e19..7993402e1 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -4,6 +4,8 @@ import Result from './result'; import parse from './parse'; import Root from './root'; +let Promise = global.Promise || require('es6-promise').Promise; + function isPromise(obj) { return typeof obj === 'object' && typeof obj.then === 'function'; } diff --git a/package.json b/package.json index 82d2ff34e..0fa1b9e5d 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "gulp-json-editor": "2.2.1", "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.6.0", + "es6-promise": "2.0.1", "browserify": "9.0.7", "gulp-babel": "5.0.0", "gulp-bench": "1.1.0", From e928f43c585eadcfe92c2c2d3b7fe28e2490d12e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 5 Apr 2015 21:52:49 +0300 Subject: [PATCH 0148/3047] Remove polyfill link from README.md --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index aff57db2a..9f0d510f1 100644 --- a/README.md +++ b/README.md @@ -402,12 +402,9 @@ processor }); ``` -If you uses node.js 0.10, you should add any [Promise polyfill]. - Read the [PostCSS API] for more details. -[Promise polyfill]: https://github.com/jakearchibald/es6-promise -[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md +[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md ### Source Maps From 942f6430c3f8061d761a7e81b2e1aaec07d9e544 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 5 Apr 2015 21:53:05 +0300 Subject: [PATCH 0149/3047] Release 4.1.3 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 8e80261ab..144526aca 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.1.3 +* Add Promise polyfill for node.js 0.10 and IE. + ## 4.1.2 * List helpers can be accessed independently `var space = postcss.list.space`. diff --git a/package.json b/package.json index 0fa1b9e5d..025347e97 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.2", + "version": "4.1.3", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 5f94f7abc52149bb660a5932715682b844f0beb4 Mon Sep 17 00:00:00 2001 From: Hashan Punchihewa <10punchihewah@whsb.essex.sch.uk> Date: Sun, 5 Apr 2015 21:00:15 +0100 Subject: [PATCH 0150/3047] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9f0d510f1..4463e80fb 100644 --- a/README.md +++ b/README.md @@ -308,6 +308,7 @@ a specialized language for a specialized tool (as with preprocessors). right in your browser. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. +* [`postcss-spiffing`] lets you use British English in your CSS * [`rtlcss`] mirrors styles for right-to-left locales. ### Analysis @@ -381,6 +382,7 @@ a specialized language for a specialized tool (as with preprocessors). [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse From 2b9ad6d13aa9a1f9ccf2dfd76b8bf371722f16a3 Mon Sep 17 00:00:00 2001 From: Hashan Punchihewa <10punchihewah@whsb.essex.sch.uk> Date: Sun, 5 Apr 2015 21:01:14 +0100 Subject: [PATCH 0151/3047] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4463e80fb..d770d2a0d 100644 --- a/README.md +++ b/README.md @@ -382,9 +382,9 @@ a specialized language for a specialized tool (as with preprocessors). [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing ## Usage From 5d9ecd2770478f27fc61443614ad138e45f3124a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Apr 2015 00:42:32 +0300 Subject: [PATCH 0152/3047] Use babel-core instead of babel --- gulpfile.js | 10 +++++----- index.js | 2 +- package.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index b9e7975a4..381a1e659 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -32,11 +32,11 @@ gulp.task('build:package', ['build:clean'], function () { var editor = require('gulp-json-editor'); gulp.src('./package.json') - .pipe(editor(function (json) { - json.main = 'lib/postcss'; - json.devDependencies.babel = json.dependencies.babel; - delete json.dependencies.babel; - return json; + .pipe(editor(function (p) { + p.main = 'lib/postcss'; + p.devDependencies['babel-core'] = p.dependencies['babel-core']; + delete p.dependencies['babel-core']; + return p; })) .pipe(gulp.dest('build')); }); diff --git a/index.js b/index.js index d7edb1919..868a97388 100644 --- a/index.js +++ b/index.js @@ -8,7 +8,7 @@ var regexp = ['lib', 'test'].map(function (i) { return '^' + escape(path.join(__dirname, i) + path.sep); }).join('|'); -require('babel/register')({ +require('babel-core/register')({ only: new RegExp('(' + regexp + ')'), ignore: false, loose: 'all' diff --git a/package.json b/package.json index 025347e97..7fb66a3e1 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "source-map": "~0.4.2", - "js-base64": "~2.1.7", - "babel": "5.0.8" + "babel-core": "5.0.8", + "js-base64": "~2.1.7" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From 204410cfb2eabc013879b262136baa226e011bf9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Apr 2015 01:45:55 +0300 Subject: [PATCH 0153/3047] Compress logo --- logo.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logo.svg b/logo.svg index 9675cde21..3a74c5561 100644 --- a/logo.svg +++ b/logo.svg @@ -1 +1 @@ - + \ No newline at end of file From ee54e3c022fad5467ee5991397d86e79381fe9e5 Mon Sep 17 00:00:00 2001 From: antyakushev Date: Mon, 6 Apr 2015 02:32:05 +0300 Subject: [PATCH 0154/3047] Move es6-promise to prod dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7fb66a3e1..f1c245bcb 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "source-map": "~0.4.2", + "es6-promise": "2.0.1", "babel-core": "5.0.8", "js-base64": "~2.1.7" }, @@ -21,7 +22,6 @@ "gulp-json-editor": "2.2.1", "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.6.0", - "es6-promise": "2.0.1", "browserify": "9.0.7", "gulp-babel": "5.0.0", "gulp-bench": "1.1.0", From 9ecff5a85b2aebdb09774817eca0970927020d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matija=20Marohni=C4=87?= Date: Mon, 6 Apr 2015 01:39:02 +0200 Subject: [PATCH 0155/3047] Move promise polyfill to dependencies Ref. https://github.com/yeoman/generator-gulp-webapp/pull/298#issuecomment-89869297 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f1c245bcb..0a746be64 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "source-map": "~0.4.2", - "es6-promise": "2.0.1", - "babel-core": "5.0.8", - "js-base64": "~2.1.7" + "source-map": "~0.4.2", + "babel-core": "5.0.8", + "js-base64": "~2.1.7", + "es6-promise": "2.0.1" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From ff73a182b5cb523b9df04db4be7adcd50ae9e169 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Apr 2015 02:41:05 +0300 Subject: [PATCH 0156/3047] Clean up dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0a746be64..a618b14dc 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { + "es6-promise": "~2.0.1", "source-map": "~0.4.2", "babel-core": "5.0.8", - "js-base64": "~2.1.7", - "es6-promise": "2.0.1" + "js-base64": "~2.1.7" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From 0c58a1d78606a51e020305067055932897774994 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Apr 2015 02:51:14 +0300 Subject: [PATCH 0157/3047] Release 4.1.4 version --- .yaspellerrc | 4 ++++ ChangeLog.md | 3 +++ package.json | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 976d93c45..893403bec 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -32,6 +32,7 @@ "npm", "webpack", "Amdusias", + "Anton", "Andres", "Andromalius", "Andrealphus", @@ -44,6 +45,8 @@ "Flauros", "Josiah", "Lydell", + "Matija", + "Marohnić", "Maxime", "Mohammad", "Nikitenko", @@ -52,6 +55,7 @@ "Suarez", "Thirouin", "Peterson", + "Yakushev", "Younes", "Cimeies", "Autodetect", diff --git a/ChangeLog.md b/ChangeLog.md index 144526aca..8e1637418 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.1.4 +* Fix Promise polyfill dependency (by Anton Yakushev and Matija Marohnić). + ## 4.1.3 * Add Promise polyfill for node.js 0.10 and IE. diff --git a/package.json b/package.json index a618b14dc..837bd6099 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.3", + "version": "4.1.4", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 612448cb519270e8245830935f99f45a4c8231e3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Apr 2015 13:07:58 +0300 Subject: [PATCH 0158/3047] Add link to VK page --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d770d2a0d..a26dc13f1 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,9 @@ praised CSS processors available. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 4-40 times faster, and much more powerful. -Twitter account for articles, releases, and new plugins: [@postcss]. -Weibo account: [postcss]. +Twitter account: [@postcss](https://twitter.com/postcss). +Weibo account: [postcss](http://weibo.com/postcss). +VK.com page: [postcss](https://vk.com/postcss). [Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) | [Plugin Development](#how-to-develop-postcss-plugin) --- | --- | --- | --- | --- | --- @@ -24,9 +25,6 @@ Weibo account: [postcss]. [Autoprefixer]: https://github.com/postcss/autoprefixer -[@postcss]: https://twitter.com/postcss -[postcss]: http://weibo.com/postcss -[cssnext]: https://github.com/cssnext/cssnext ## What is PostCSS From e67790619674a5df7cebb66029ce1683e3a19a12 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Apr 2015 13:22:23 +0300 Subject: [PATCH 0159/3047] Add VK to dictionary --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index 893403bec..7b59beb91 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -20,6 +20,7 @@ "Shopify", "W3C", "WebP", + "VK", "IE8", "IE9", "ES6", From 13edc1274cab23e083763577637e3083af93b6b9 Mon Sep 17 00:00:00 2001 From: David Clark Date: Mon, 6 Apr 2015 16:58:23 -0700 Subject: [PATCH 0160/3047] Fix LazyResult link in API TOC --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index b618a0a96..552c1e092 100644 --- a/API.md +++ b/API.md @@ -2,7 +2,7 @@ * [`postcss` function](#postcss-function) * [`Processor` class](#processor-class) -* [`LazyResult` class](#lazy-result-class) +* [`LazyResult` class](#lazyresult-class) * [`Result` class](#result-class) * [`Warning` class](#warning-class) * [`CssSyntaxError` class](#csssyntaxerror-class) From 8220104dc02105b161c9cdc21821b95696a4d027 Mon Sep 17 00:00:00 2001 From: David Clark Date: Tue, 7 Apr 2015 17:39:52 -0700 Subject: [PATCH 0161/3047] Add postcss-log-warnings to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a26dc13f1..005c09d1a 100644 --- a/README.md +++ b/README.md @@ -302,6 +302,7 @@ a specialized language for a specialized tool (as with preprocessors). in the `brand-colors` module. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-discard-comments`] removes comments based on rules you specify. +* [`postcss-log-warnings`] logs warnings messages from other plugins in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. * [`postcss-single-charset`] ensures that there is one @@ -353,6 +354,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity From f4a96fd4254f0bafb7e4315867edeeb362df65b9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 8 Apr 2015 03:47:56 +0300 Subject: [PATCH 0162/3047] Clean up plugins list --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 005c09d1a..160b99a91 100644 --- a/README.md +++ b/README.md @@ -302,7 +302,8 @@ a specialized language for a specialized tool (as with preprocessors). in the `brand-colors` module. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-discard-comments`] removes comments based on rules you specify. -* [`postcss-log-warnings`] logs warnings messages from other plugins in the console. +* [`postcss-log-warnings`] logs warnings messages from other plugins + in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. * [`postcss-single-charset`] ensures that there is one @@ -339,6 +340,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media +[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant [`postcss-will-change`]: https://github.com/postcss/postcss-will-change @@ -354,7 +356,6 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters -[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity From 23cc6b3b7d158feae53ff8df442ddb3507257fae Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 8 Apr 2015 03:52:19 +0300 Subject: [PATCH 0163/3047] Add warnings plugins to Runner Guidelines --- Runner Guidelines.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Runner Guidelines.md b/Runner Guidelines.md index 13c97070f..764a65592 100644 --- a/Runner Guidelines.md +++ b/Runner Guidelines.md @@ -92,6 +92,11 @@ result.warnings().forEach(function (warn) { }); ``` +See also [postcss-log-warnings] and [postcss-messages] plugins. + +[postcss-log-warnings]: https://github.com/davidtheclark/postcss-log-warnings +[postcss-messages]: https://github.com/postcss/postcss-messages + ### 3.3. Save map from `result.map` to separated file By default, PostCSS will inline source map to CSS in `result.css`. From 518bca077f91161411c31fbfb1f25008760f5a1f Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Fri, 10 Apr 2015 13:45:55 +0100 Subject: [PATCH 0164/3047] Add postcss-convert-values. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 160b99a91..ef4743a50 100644 --- a/README.md +++ b/README.md @@ -267,6 +267,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). * [`postcss-colormin`] reduces color values to their smallest representations. +* [`postcss-convert-values`] reduces length and time values (e.g. ms -> s). * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. * [`postcss-discard-duplicates`] removes duplicate declarations and rules. @@ -331,6 +332,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url From 1543f2864858d1b6dbdf7676105d4e9f9457286d Mon Sep 17 00:00:00 2001 From: Romain Date: Fri, 10 Apr 2015 19:37:09 +0500 Subject: [PATCH 0165/3047] Update API.md typoe --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index 552c1e092..2f34a1bca 100644 --- a/API.md +++ b/API.md @@ -869,7 +869,7 @@ root.source.input.id //=> ### `input.from` The CSS source identifier. Contains [`input.file`](#inputfile) if the user set the -[`from` option], or [`input.id`](#inputid) if she did not. +[`from` option], or [`input.id`](#inputid) if he/she did not. ```js var root = postcss.parse(css, { from: 'a.css' }); From 80695cc3be2d1f9a566e357506e0c2ff4ef62d96 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 11 Apr 2015 15:48:06 +0100 Subject: [PATCH 0166/3047] Add postcss-reduce-idents. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index ef4743a50..93aa1c875 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,8 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-minify-selectors`] normalizes selectors for better compression. * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. +* [`postcss-reduce-idents`] compresses `@keyframes`, `@counter-style` & + `counter` identifers. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`csswring`] is a CSS minifier. @@ -338,6 +340,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty +[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax From 0bcb0c18520305e48148390d9b80ea3dede942e8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 12 Apr 2015 11:51:57 +0300 Subject: [PATCH 0167/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 93aa1c875..f1750ffda 100644 --- a/README.md +++ b/README.md @@ -282,7 +282,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-normalize-url`] normalizes `url()`s and trims quotes where they are unnecessary. * [`postcss-reduce-idents`] compresses `@keyframes`, `@counter-style` & - `counter` identifers. + `counter` identifiers. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`csswring`] is a CSS minifier. From 6cadf9eb4e381dc79054f65edff9ff9719711724 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 13 Apr 2015 10:41:15 +0100 Subject: [PATCH 0168/3047] Update runner guidelines. --- Runner Guidelines.md | 83 ++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 38 deletions(-) diff --git a/Runner Guidelines.md b/Runner Guidelines.md index 764a65592..24534c86f 100644 --- a/Runner Guidelines.md +++ b/Runner Guidelines.md @@ -1,11 +1,11 @@ # PostCSS Runner Guidelines -PostCSS runner is a tool, that takes plugins list from user and process -user’s CSS through this plugins. For example, [`postcss-cli`] -or [`gulp-postcss`]. This rules are mandatory for any PostCSS runners. +A PostCSS runner is a tool that processes CSS through a user-defined list of +plugins; for example, [`postcss-cli`] or [`gulp-postcss`]. These rules are +mandatory for any such runners. -This rules are not mandatory, but highly recommended for one-plugin tools -(like [`gulp-autoprefixer`]). +For single-plugin tools, like [`gulp-autoprefixer`], these rules are not +mandatory but are highly recommended. See also ClojureWerkz’s [open source project recommendations]. @@ -18,8 +18,8 @@ See also ClojureWerkz’s [open source project recommendations]. ### 1.1. Accept functions in plugin parameters -Some plugins accept function in parameters. If your runner has config file, -it should be a Node.js module, because JSON format doesn’t support functions. +If your runner uses a config file, it must be written in JavaScript, so that +it can support plugins which accept a function, such as [`postcss-assets`]: ```js module.exports = [ @@ -31,24 +31,26 @@ module.exports = [ ]; ``` +[`postcss-assets`]: https://github.com/borodean/postcss-assets + ## 2. Processing ### 2.1. Set `from` and `to` processing options -PostCSS needs `from` and `to` options to generate correct source map -and display better syntax errors. - -If your tool doesn’t save file to disk (as Gulp pipe for example), -you should set same `from` and `to` options. +To ensure that PostCSS generates source maps and displays better syntax errors, +runners must specify the `from` and `to` options. If your runner does not handle +writing to disk (for example, a gulp transform), you should set both options +to point to the same file: ```js processor.process({ from: file.path, to: file.path }); ``` -### 2.2. Use only asynchronous API +### 2.2. Use only the asynchronous API -PostCSS has synchronous API only for debug. Synchronous API is slower -and can’t work with asynchronous plugins. +PostCSS runners must use only the asynchronous API. The synchronous API is +provided only for debugging, is slower, and can't work with asynchronous +plugins. ```js processor.process(opts).then(function (result) { @@ -56,10 +58,11 @@ processor.process(opts).then(function (result) { }); ``` -### 2.3. Use only public PostCSS API +### 2.3. Use only the public PostCSS API -Public API is described in [`API.md`]. Any other methods and properties -are private and can be changed in any minor release. +PostCSS runners must not rely on undocumented properties or methods, which may +be subject to change in any minor release. The public API is described in +[`API.md`]. [`API.md`]: https://github.com/postcss/postcss/blob/master/API.md @@ -67,8 +70,9 @@ are private and can be changed in any minor release. ### 3.1. Don’t show JS stack for `CssSyntaxError` -JS stack trace is mostly irrelevant for CSS syntax errors. -PostCSS runner can be used by CSS developer, who didn’t know JS. +PostCSS runners must not show a stack trace for CSS syntax errors, as the +runner can be used by developers who are not familiar with JavaScript. Instead, +handle such errors gracefully: ```js var CssSyntaxError = require('postcss/lib/css-syntax-error'); @@ -82,9 +86,9 @@ processor.process(opts).catch(function (error) { }); ``` -### 3.2. Display `result.warnings()` content +### 3.2. Display `result.warnings()` -Runner must output warnings from `result.warnings()`. +PostCSS runners must output warnings from `result.warnings()`: ```js result.warnings().forEach(function (warn) { @@ -97,10 +101,11 @@ See also [postcss-log-warnings] and [postcss-messages] plugins. [postcss-log-warnings]: https://github.com/davidtheclark/postcss-log-warnings [postcss-messages]: https://github.com/postcss/postcss-messages -### 3.3. Save map from `result.map` to separated file +### 3.3. Allow the user to write source maps to different files -By default, PostCSS will inline source map to CSS in `result.css`. -But you should be ready for separated file with map if user will ask it. +PostCSS by default will inline source maps in the generated file; however, +PostCSS runners must provide an option to save the source map in a different +file: ```js if ( result.map ) { @@ -110,26 +115,28 @@ if ( result.map ) { ## 4. Documentation -### 4.1. Use English in documentation +### 4.1. Document your runner in English -Project description, `README.md` should be in English. Do not afraid your -English skills. Open source community will fix your errors. +PostCSS runners must have their `README.md` written in English. Do not be afraid +of your English skills, as the open source community will fix your errors. -Of course you can have documentation on other languages. Just put it in file -like `README.ja.md`. +Of course, you are welcome to write documentation in other languages; just name +them appropriately (e.g. `README.ja.md`). -### 4.2. Have Changelog +### 4.2. Maintain a changelog -You should describe changes of all releases in a separate file like -`ChangeLog.md`, `History.md`, etc, or with [GitHub Releases]. - -[Keep A Changelog] contains advices to write good Changelog. +PostCSS runners must describe changes of all releases in a separate file, such +as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. Visit +[Keep A Changelog] for more information on how to write one of these. [Keep A Changelog]: http://keepachangelog.com/ [GitHub Releases]: https://help.github.com/articles/creating-releases/ ### 4.3. `postcssrunner` keyword in `package.json` -Special keyword will be useful for feedback about PostCSS ecosystem. -This rule is not mandatory for non-npm packages, but it is still recommended -if package format has keywords field. +PostCSS runners written for npm must have the `postcssrunner` keyword in their +`package.json`. This special keyword will be useful for feedback about the +PostCSS ecosystem. + +For packages not published to npm, this is not mandatory, but recommended if +the package format is allowed to contain keywords. From 6d4697e3ce27a99945621a601ab1d6a1aeb73f03 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Apr 2015 13:16:02 +0300 Subject: [PATCH 0169/3047] Clean up Runner Guidelines --- .yaspellerrc | 1 + Runner Guidelines.md | 54 ++++++++++++++++++++++---------------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index 7b59beb91..6bfc6f7ae 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -63,6 +63,7 @@ "autodetect", "codebases", "regexp", + "changelog", "Changelog", "Transpiler", "transpiler", diff --git a/Runner Guidelines.md b/Runner Guidelines.md index 24534c86f..a885ee8a9 100644 --- a/Runner Guidelines.md +++ b/Runner Guidelines.md @@ -1,17 +1,17 @@ # PostCSS Runner Guidelines -A PostCSS runner is a tool that processes CSS through a user-defined list of -plugins; for example, [`postcss-cli`] or [`gulp-postcss`]. These rules are -mandatory for any such runners. +A PostCSS runner is a tool that processes CSS through a user-defined list +of plugins; for example, [`postcss-cli`] or [`gulp‑postcss`]. +These rules are mandatory for any such runners. -For single-plugin tools, like [`gulp-autoprefixer`], these rules are not -mandatory but are highly recommended. +For single-plugin tools, like [`gulp-autoprefixer`], +these rules are not mandatory but are highly recommended. See also ClojureWerkz’s [open source project recommendations]. [open source project recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ [`gulp-autoprefixer`]: https://github.com/sindresorhus/gulp-autoprefixer -[`gulp-postcss`]: https://github.com/w0rm/gulp-postcss +[`gulp‑postcss`]: https://github.com/w0rm/gulp-postcss [`postcss-cli`]: https://github.com/code42day/postcss-cli ## 1. API @@ -40,7 +40,7 @@ module.exports = [ To ensure that PostCSS generates source maps and displays better syntax errors, runners must specify the `from` and `to` options. If your runner does not handle writing to disk (for example, a gulp transform), you should set both options -to point to the same file: +to point to the same file: ```js processor.process({ from: file.path, to: file.path }); @@ -48,9 +48,9 @@ processor.process({ from: file.path, to: file.path }); ### 2.2. Use only the asynchronous API -PostCSS runners must use only the asynchronous API. The synchronous API is -provided only for debugging, is slower, and can't work with asynchronous -plugins. +PostCSS runners must use only the asynchronous API. +The synchronous API is provided only for debugging, is slower, +and can’t work with asynchronous plugins. ```js processor.process(opts).then(function (result) { @@ -60,9 +60,9 @@ processor.process(opts).then(function (result) { ### 2.3. Use only the public PostCSS API -PostCSS runners must not rely on undocumented properties or methods, which may -be subject to change in any minor release. The public API is described in -[`API.md`]. +PostCSS runners must not rely on undocumented properties or methods, +which may be subject to change in any minor release. The public API +is described in [`API.md`]. [`API.md`]: https://github.com/postcss/postcss/blob/master/API.md @@ -70,9 +70,9 @@ be subject to change in any minor release. The public API is described in ### 3.1. Don’t show JS stack for `CssSyntaxError` -PostCSS runners must not show a stack trace for CSS syntax errors, as the -runner can be used by developers who are not familiar with JavaScript. Instead, -handle such errors gracefully: +PostCSS runners must not show a stack trace for CSS syntax errors, +as the runner can be used by developers who are not familiar with JavaScript. +Instead, handle such errors gracefully: ```js var CssSyntaxError = require('postcss/lib/css-syntax-error'); @@ -104,7 +104,7 @@ See also [postcss-log-warnings] and [postcss-messages] plugins. ### 3.3. Allow the user to write source maps to different files PostCSS by default will inline source maps in the generated file; however, -PostCSS runners must provide an option to save the source map in a different +PostCSS runners must provide an option to save the source map in a different file: ```js @@ -120,23 +120,23 @@ if ( result.map ) { PostCSS runners must have their `README.md` written in English. Do not be afraid of your English skills, as the open source community will fix your errors. -Of course, you are welcome to write documentation in other languages; just name -them appropriately (e.g. `README.ja.md`). +Of course, you are welcome to write documentation in other languages; +just name them appropriately (e.g. `README.ja.md`). ### 4.2. Maintain a changelog -PostCSS runners must describe changes of all releases in a separate file, such -as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. Visit -[Keep A Changelog] for more information on how to write one of these. +PostCSS runners must describe changes of all releases in a separate file, +such as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. +Visit [Keep A Changelog] for more information on how to write one of these. [Keep A Changelog]: http://keepachangelog.com/ [GitHub Releases]: https://help.github.com/articles/creating-releases/ ### 4.3. `postcssrunner` keyword in `package.json` -PostCSS runners written for npm must have the `postcssrunner` keyword in their -`package.json`. This special keyword will be useful for feedback about the -PostCSS ecosystem. +PostCSS runners written for npm must have the `postcssrunner` keyword +in their `package.json`. This special keyword will be useful for feedback about +the PostCSS ecosystem. -For packages not published to npm, this is not mandatory, but recommended if -the package format is allowed to contain keywords. +For packages not published to npm, this is not mandatory, but recommended +if the package format is allowed to contain keywords. From da6e5be8f58158c6764e9bae767f448dc0c0ae5e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Apr 2015 00:32:23 +0300 Subject: [PATCH 0170/3047] Fix at-rule semicolon ending in tokenizer --- lib/tokenize.js | 2 +- test/tokenize.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index e3538745a..f54d8c5a0 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -15,7 +15,7 @@ let singleQuote = "'".charCodeAt(0), asterisk = '*'.charCodeAt(0), colon = ':'.charCodeAt(0), at = '@'.charCodeAt(0), - atEnd = /[ \n\t\r\{\(\)'"\\/]/g, + atEnd = /[ \n\t\r\{\(\)'"\\;/]/g, wordEnd = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g, badBracket = /.[\\\/\("'\n]/; diff --git a/test/tokenize.js b/test/tokenize.js index fa8020c29..baf8633ec 100644 --- a/test/tokenize.js +++ b/test/tokenize.js @@ -103,13 +103,15 @@ describe('tokenize', () => { }); it('tokenizes at-word end', () => { - test('@one{@two()@three""', [ + test('@one{@two()@three""@four;', [ ['at-word', '@one', 1, 1, 1, 4], ['{', '{', 1, 5], ['at-word', '@two', 1, 6, 1, 9], ['brackets', '()', 1, 10, 1, 11], ['at-word', '@three', 1, 12, 1, 17], - ['string', '""', 1, 18, 1, 19] + ['string', '""', 1, 18, 1, 19], + ['at-word', '@four', 1, 20, 1, 24], + [';', ';', 1, 25] ]); }); From e5898c57699fd264d0a655ea82cc0fabba2761e7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Apr 2015 00:33:19 +0300 Subject: [PATCH 0171/3047] Allow to parse at-words in declaration values --- lib/parser.js | 4 -- test/cases/rule-at.css | 7 ++ test/cases/rule-at.json | 138 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 145 insertions(+), 4 deletions(-) create mode 100644 test/cases/rule-at.css create mode 100644 test/cases/rule-at.json diff --git a/lib/parser.js b/lib/parser.js index 25ea0168b..45fe97849 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -122,10 +122,6 @@ export default class Parser { end = true; break; - } else if ( type === 'at-word' ) { - this.pos -= 1; - break; - } else { if ( type === ':' ) colon = true; } diff --git a/test/cases/rule-at.css b/test/cases/rule-at.css new file mode 100644 index 000000000..91a5ae0a7 --- /dev/null +++ b/test/cases/rule-at.css @@ -0,0 +1,7 @@ +a { + width: 10px; + margin: 0 @width; + @mixin mobile { + height: 100px; + } +} diff --git a/test/cases/rule-at.json b/test/cases/rule-at.json new file mode 100644 index 000000000..9bbfb2e86 --- /dev/null +++ b/test/cases/rule-at.json @@ -0,0 +1,138 @@ +{ + "nodes": [ + { + "nodes": [ + { + "type": "decl", + "source": { + "start": { + "line": 2, + "column": 5 + }, + "input": { + "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", + "safe": false, + "file": "/rule-at.css", + "from": "/rule-at.css" + }, + "end": { + "line": 2, + "column": 16 + } + }, + "before": "\n ", + "prop": "width", + "between": ": ", + "value": "10px" + }, + { + "type": "decl", + "source": { + "start": { + "line": 3, + "column": 5 + }, + "input": { + "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", + "safe": false, + "file": "/rule-at.css", + "from": "/rule-at.css" + }, + "end": { + "line": 3, + "column": 21 + } + }, + "before": "\n ", + "prop": "margin", + "between": ": ", + "value": "0 @width" + }, + { + "type": "atrule", + "name": "mixin", + "source": { + "start": { + "line": 4, + "column": 5 + }, + "input": { + "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", + "safe": false, + "file": "/rule-at.css", + "from": "/rule-at.css" + }, + "end": { + "line": 6, + "column": 5 + } + }, + "before": "\n ", + "between": " ", + "afterName": " ", + "params": "mobile", + "nodes": [ + { + "type": "decl", + "source": { + "start": { + "line": 5, + "column": 9 + }, + "input": { + "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", + "safe": false, + "file": "/rule-at.css", + "from": "/rule-at.css" + }, + "end": { + "line": 5, + "column": 22 + } + }, + "before": "\n ", + "prop": "height", + "between": ": ", + "value": "100px" + } + ], + "semicolon": true, + "after": "\n " + } + ], + "type": "rule", + "source": { + "start": { + "line": 1, + "column": 1 + }, + "input": { + "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", + "safe": false, + "file": "/rule-at.css", + "from": "/rule-at.css" + }, + "end": { + "line": 7, + "column": 1 + } + }, + "before": "", + "between": " ", + "selector": "a", + "semicolon": false, + "after": "\n" + } + ], + "type": "root", + "source": { + "input": { + "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", + "safe": false, + "file": "/rule-at.css", + "from": "/rule-at.css" + } + }, + "semicolon": false, + "after": "\n" +} From fab13ec7d53b25ea08340bd8f99ce03269294d29 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Apr 2015 00:44:52 +0300 Subject: [PATCH 0172/3047] Update npm dependencies --- lib/lazy-result.js | 6 ++++-- package.json | 21 ++++++++++----------- test/previous-map.js | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 7993402e1..d70706be3 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -158,8 +158,10 @@ export default class LazyResult { this.stringified = true; this.sync(); - let map = new MapGenerator(this.result.root, this.result.opts); - [this.result.css, this.result.map] = map.generate(); + let map = new MapGenerator(this.result.root, this.result.opts); + let data = map.generate(); + this.result.css = data[0]; + this.result.map = data[1]; return this.result; } diff --git a/package.json b/package.json index 837bd6099..c04dd3682 100644 --- a/package.json +++ b/package.json @@ -13,34 +13,33 @@ "dependencies": { "es6-promise": "~2.0.1", "source-map": "~0.4.2", - "babel-core": "5.0.8", - "js-base64": "~2.1.7" + "babel-core": "5.1.6", + "js-base64": "~2.1.8" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-bench-summary": "0.1.0", "gulp-json-editor": "2.2.1", "gonzales-pe": "3.0.0-26", - "gulp-eslint": "0.6.0", - "browserify": "9.0.7", - "gulp-babel": "5.0.0", + "gulp-eslint": "0.9.0", + "browserify": "9.0.8", + "gulp-babel": "5.1.0", "gulp-bench": "1.1.0", "gulp-mocha": "2.0.1", "node-sass": "2.1.1", - "yaspeller": "1.1.0", + "yaspeller": "2.0.0", "gulp-util": "3.0.4", "fs-extra": "0.18.0", "gonzales": "1.0.7", - "through2": "0.6.3", - "stylecow": "5.0.0", + "through2": "0.6.5", + "stylecow": "5.0.1", "request": "2.55.0", - "cssnext": "1.2.1", + "cssnext": "1.2.3", "rework": "1.0.1", "mensch": "0.3.1", "stylus": "0.50.0", - "eslint": "0.16.1", "sinon": "1.14.1", - "mocha": "2.2.1", + "mocha": "2.2.4", "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.5.0", diff --git a/test/previous-map.js b/test/previous-map.js index 6258a71e6..95963d50b 100644 --- a/test/previous-map.js +++ b/test/previous-map.js @@ -2,7 +2,7 @@ import parse from '../lib/parse'; import mozilla from 'source-map'; import fs from 'fs-extra'; -import path from 'path' +import path from 'path'; import { expect } from 'chai'; let dir = path.join(__dirname, 'fixtures'); From 4fcb52504619ed234f53734e5a6297bdabcd529a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Apr 2015 00:45:31 +0300 Subject: [PATCH 0173/3047] Release 4.1.5 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 8e1637418..dcee44e1b 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.1.5 +* Parse at-words in declaration values. + ## 4.1.4 * Fix Promise polyfill dependency (by Anton Yakushev and Matija Marohnić). diff --git a/package.json b/package.json index c04dd3682..172fcab50 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.4", + "version": "4.1.5", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 4fd1700e0fe7964176773044cf97d9eb98a7773a Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Tue, 14 Apr 2015 17:47:26 +0100 Subject: [PATCH 0174/3047] Add cssnano. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f1750ffda..668932568 100644 --- a/README.md +++ b/README.md @@ -205,10 +205,12 @@ a specialized language for a specialized tool (as with preprocessors). ### Packs +* [cssnano] contains plugins that optimise your CSS for use in production. * [cssnext] contains plugins that allow you to use future CSS features today. * [AtCSS] contains plugins that transform your CSS according to special annotation comments. +[cssnano]: https://github.com/ben-eb/cssnano [cssnext]: https://github.com/putaindecode/cssnext [AtCSS]: https://github.com/morishitter/atcss From 690b4f5c47621f99870396061099a4996c5e601d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Apr 2015 19:51:02 +0300 Subject: [PATCH 0175/3047] Clean up cssnano description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 668932568..9c1e650df 100644 --- a/README.md +++ b/README.md @@ -205,7 +205,7 @@ a specialized language for a specialized tool (as with preprocessors). ### Packs -* [cssnano] contains plugins that optimise your CSS for use in production. +* [cssnano] contains plugins that optimise your CSS size for use in production. * [cssnext] contains plugins that allow you to use future CSS features today. * [AtCSS] contains plugins that transform your CSS according to special annotation comments. From 078647bdc7c0deb6d4c06ab7f75030b28a460051 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Apr 2015 20:00:25 +0300 Subject: [PATCH 0176/3047] Fix spellcheck warnings --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9c1e650df..d2b1d6e4b 100644 --- a/README.md +++ b/README.md @@ -205,14 +205,14 @@ a specialized language for a specialized tool (as with preprocessors). ### Packs -* [cssnano] contains plugins that optimise your CSS size for use in production. -* [cssnext] contains plugins that allow you to use future CSS features today. -* [AtCSS] contains plugins that transform your CSS according +* [`cssnano`] contains plugins that optimise CSS size for use in production. +* [`cssnext`] contains plugins that allow you to use future CSS features today. +* [`atcss`] contains plugins that transform your CSS according to special annotation comments. -[cssnano]: https://github.com/ben-eb/cssnano -[cssnext]: https://github.com/putaindecode/cssnext -[AtCSS]: https://github.com/morishitter/atcss +[`cssnano`]: https://github.com/ben-eb/cssnano +[`cssnext`]: https://github.com/putaindecode/cssnext +[`atcss`]: https://github.com/morishitter/atcss ### Future CSS Syntax From 8d49cfdea48a60f5b4285c88eae246c3324111fd Mon Sep 17 00:00:00 2001 From: jo-asakura Date: Mon, 20 Apr 2015 08:01:11 -0700 Subject: [PATCH 0177/3047] Add postcss-neat plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d2b1d6e4b..906a1e9da 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ a specialized language for a specialized tool (as with preprocessors). like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. +* [`postcss-neat`] is a semantic and fluid grid framework on top of PostCSS. ### Optimizations @@ -388,6 +389,7 @@ a specialized language for a specialized tool (as with preprocessors). [`cssgrace`]: https://github.com/cssdream/cssgrace [`csswring`]: https://github.com/hail2u/node-csswring [`csstyle`]: https://github.com/geddski/csstyle +[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`webpcss`]: https://github.com/lexich/webpcss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem From 24004f17293cbf7cb9467ce122e03dcd596d78b0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Apr 2015 18:08:44 +0300 Subject: [PATCH 0178/3047] Fix plugins order --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 906a1e9da..d29d57d42 100644 --- a/README.md +++ b/README.md @@ -254,13 +254,13 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. +* [`postcss-neat`] is a semantic and fluid grid framework. * [`postcss-nested`] unwraps nested rules. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. -* [`postcss-neat`] is a semantic and fluid grid framework on top of PostCSS. ### Optimizations @@ -365,6 +365,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-messages`]: https://github.com/postcss/postcss-messages +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets @@ -376,6 +377,7 @@ a specialized language for a specialized tool (as with preprocessors). [`list-selectors`]: https://github.com/davidtheclark/list-selectors [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x +[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker [`postcss-epub`]: https://github.com/Rycochet/postcss-epub @@ -389,12 +391,10 @@ a specialized language for a specialized tool (as with preprocessors). [`cssgrace`]: https://github.com/cssdream/cssgrace [`csswring`]: https://github.com/hail2u/node-csswring [`csstyle`]: https://github.com/geddski/csstyle -[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`webpcss`]: https://github.com/lexich/webpcss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse -[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing ## Usage From 6827f3a79544be4927fdc0c94fc137f99a794d46 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Apr 2015 19:35:33 +0300 Subject: [PATCH 0179/3047] Change link to gulp-postcss --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d29d57d42..958cd3629 100644 --- a/README.md +++ b/README.md @@ -199,7 +199,7 @@ a specialized language for a specialized tool (as with preprocessors). [CLI tool]: https://github.com/code42day/postcss-cli [webpack]: https://github.com/postcss/postcss-loader [Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/w0rm/gulp-postcss +[Gulp]: https://github.com/postcss/gulp-postcss ## Plugins From c28467204e708ded1185c8677785ae90b6b6e842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kevin=20M=C3=A5rtensson?= Date: Mon, 20 Apr 2015 18:40:26 +0200 Subject: [PATCH 0180/3047] Fix typo in `API.md` --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index 2f34a1bca..3a0b70daf 100644 --- a/API.md +++ b/API.md @@ -274,7 +274,7 @@ Arguments: * `css (string|#toString|Result)`: String with input CSS or any object with `toString()` method, like file stream. Also you can send [`Result`] instance and processor will take already parser [`Root`] from it. -* `ops (object) optional`: options: +* `opts (object) optional`: options: * `from`: the path of the CSS source file. You should always set `from`, because it is used in source map generation and syntax error messages. * `to`: the path where you’ll put the output CSS file. You should always set From c35aa98ed9cd49921715aef59ea91ace5664bda3 Mon Sep 17 00:00:00 2001 From: Cory Simmons Date: Mon, 20 Apr 2015 17:34:34 -0400 Subject: [PATCH 0181/3047] Add Lost Grid --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 958cd3629..4f02e6b16 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ a specialized language for a specialized tool (as with preprocessors). like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. +* [`lost`] feature rich `calc()` grid system built by the guy who made Jeet. ### Optimizations From 045f4e41805bae27e4d37a0cce184fb07d37d546 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 21 Apr 2015 00:37:48 +0300 Subject: [PATCH 0182/3047] Fix plugin list --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f02e6b16..a39ea0154 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ a specialized language for a specialized tool (as with preprocessors). like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. -* [`lost`] feature rich `calc()` grid system built by the guy who made Jeet. +* [`lost`] feature rich `calc()` grid system by Jeet author. ### Optimizations @@ -396,6 +396,7 @@ a specialized language for a specialized tool (as with preprocessors). [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse +[`lost`]: https://github.com/corysimmons/lost ## Usage From 4c18f54b7f18f8a39dff8d7e1a7447df3592273a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 21 Apr 2015 00:46:40 +0300 Subject: [PATCH 0183/3047] Fix speller warning --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index 6bfc6f7ae..446709dba 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -29,6 +29,7 @@ "Weibo", "libsass", "CSSOM", + "Jeet", "Modernizr", "npm", "webpack", From 95b18a7afaa1dc24105855041622c7aed268538d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Apr 2015 17:17:53 +0300 Subject: [PATCH 0184/3047] Add postcss-for and postcss-focus plugins --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a39ea0154..fcf01f57e 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. +* [`postcss-for`] adds SASS-like `@for` loops. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. @@ -300,6 +301,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. +* [`postcss-focus`] adds `:focus` selector to every `:hover`. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. @@ -388,6 +390,7 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`postcss-url`]: https://github.com/postcss/postcss-url [`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-for`]: https://github.com/antyakushev/postcss-for [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace [`csswring`]: https://github.com/hail2u/node-csswring From 2ea82ee91cbe5d221cc43860b7530137944c4e15 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Apr 2015 17:24:31 +0300 Subject: [PATCH 0185/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcf01f57e..48fed4d66 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. -* [`postcss-for`] adds SASS-like `@for` loops. +* [`postcss-for`] adds `@for` loops. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. From 1135d0aad852f6af490716ce27ef07772333f090 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Apr 2015 22:55:51 +0300 Subject: [PATCH 0186/3047] Fix postcss-focus link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48fed4d66..d8843a2cc 100644 --- a/README.md +++ b/README.md @@ -379,6 +379,7 @@ a specialized language for a specialized tool (as with preprocessors). [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`list-selectors`]: https://github.com/davidtheclark/list-selectors [`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`postcss-focus`]: https://github.com/postcss/postcss-focus [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`autoprefixer`]: https://github.com/postcss/autoprefixer From ef7942aa33fc5f2999bcc802e2ae2eb9a3bb0155 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 24 Apr 2015 13:25:55 +0300 Subject: [PATCH 0187/3047] Send parse error to Promise reject too --- lib/lazy-result.js | 17 +++++++++++++++-- test/processor.js | 9 ++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index d70706be3..0f3831689 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -24,7 +24,11 @@ export default class LazyResult { opts.map = { prev: css.map }; } } else { - root = parse(css, opts); + try { + root = parse(css, opts); + } catch (error) { + this.parseError = error; + } } this.result = new Result(processor, root, opts); @@ -87,7 +91,13 @@ export default class LazyResult { async() { if ( this.processed ) { - return Promise.resolve().then( () => this.stringify() ); + return new Promise( (resolve, reject) => { + if ( this.parseError ) { + reject(this.parseError); + } else { + resolve(this.stringify()); + } + }); } if ( this.processing ) { return this.processing; @@ -95,6 +105,7 @@ export default class LazyResult { let plugins = this.processor.plugins.slice(0); this.processing = new Promise( (resolve, reject) => { + if ( this.parseError ) return reject(this.parseError); this.asyncTick(plugins, resolve, reject); }).then( () => { this.processed = true; @@ -112,6 +123,8 @@ export default class LazyResult { throw 'Use process(css).then(cb) to work with async plugins'; } + if ( this.parseError ) throw this.parseError; + for ( let plugin of this.result.processor.plugins ) { let promise = this.run(plugin); if ( isPromise(promise) ) { diff --git a/test/processor.js b/test/processor.js index d92b8b1ad..313c3405a 100644 --- a/test/processor.js +++ b/test/processor.js @@ -105,7 +105,7 @@ describe('Processor', () => { it('throws with file name', () => { let error; try { - (new Processor()).process('a {', { from: 'a.css' }); + (new Processor()).process('a {', { from: 'a.css' }).css; } catch (e) { if ( e instanceof CssSyntaxError ) { error = e; @@ -267,6 +267,13 @@ describe('Processor', () => { }); }); + it('throws parse error in async', (done) => { + (new Processor()).process('a{').catch(function (err) { + expect(err.message).to.eql(':1:1: Unclosed block'); + done(); + }); + }); + it('throws error on sync method to async plugin', () => { let async = () => { return new Promise( (resolve) => resolve() ); From b930dba2ef8b81bda62320d50959897ff8f29ea4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 24 Apr 2015 21:31:10 +0300 Subject: [PATCH 0188/3047] Update dependencies --- benchmark/parsers.js | 4 ++-- package.json | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/parsers.js b/benchmark/parsers.js index f8a20e786..5d485a25d 100644 --- a/benchmark/parsers.js +++ b/benchmark/parsers.js @@ -8,7 +8,7 @@ var CSSOM = require('cssom'); var rework = require('rework'); var mensch = require('mensch'); var postcss = require('../build'); -var stylecow = require('stylecow'); +var stylecow = require('stylecow-parser'); var gonzales = require('gonzales'); var gonzalesPe = require('gonzales-pe'); @@ -57,7 +57,7 @@ module.exports = { { name: 'Stylecow', fn: function () { - var file = new stylecow.Reader(css, 'cache/bootstrap.css'); + var file = new stylecow.Reader(new stylecow.Tokens(css)); stylecow.Root.create(file).toString(); } } diff --git a/package.json b/package.json index 172fcab50..854e8fff4 100644 --- a/package.json +++ b/package.json @@ -11,15 +11,16 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "es6-promise": "~2.0.1", + "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.1.6", + "babel-core": "5.1.11", "js-base64": "~2.1.8" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-bench-summary": "0.1.0", "gulp-json-editor": "2.2.1", + "stylecow-parser": "2.1.0", "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.9.0", "browserify": "9.0.8", @@ -27,17 +28,16 @@ "gulp-bench": "1.1.0", "gulp-mocha": "2.0.1", "node-sass": "2.1.1", - "yaspeller": "2.0.0", + "yaspeller": "2.1.0", "gulp-util": "3.0.4", - "fs-extra": "0.18.0", + "fs-extra": "0.18.2", "gonzales": "1.0.7", "through2": "0.6.5", - "stylecow": "5.0.1", "request": "2.55.0", - "cssnext": "1.2.3", + "cssnext": "1.3.0", "rework": "1.0.1", "mensch": "0.3.1", - "stylus": "0.50.0", + "stylus": "0.51.0", "sinon": "1.14.1", "mocha": "2.2.4", "cssom": "0.3.0", From a2cf0d4e96f8a1be7f67badb4f9f90d270703aaa Mon Sep 17 00:00:00 2001 From: magsout Date: Sun, 26 Apr 2015 19:31:55 +0200 Subject: [PATCH 0189/3047] Added plugin postcss-color-rgba-fallback --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d8843a2cc..95b2e81f0 100644 --- a/README.md +++ b/README.md @@ -234,7 +234,7 @@ a specialized language for a specialized tool (as with preprocessors). ### Fallbacks -* [`postcss-color-hex`] transforms `rgb()` and `rgba()` to hex. +* [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal. * [`postcss-epub`] adds the `-epub-` prefix to relevant properties. * [`postcss-image-set`] adds `background-image` with first image for `image-set()` * [`postcss-opacity`] adds opacity filter for IE8. @@ -329,6 +329,7 @@ a specialized language for a specialized tool (as with preprocessors). * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. +[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight @@ -362,7 +363,6 @@ a specialized language for a specialized tool (as with preprocessors). [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray -[`postcss-color-hex`]: https://github.com/TrySound/postcss-color-hex [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-colormin`]: https://github.com/ben-eb/colormin From f34f54038341a22a370b1bd4a2c057c9aa9cf420 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 26 Apr 2015 20:42:59 +0300 Subject: [PATCH 0190/3047] Update npm dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 854e8fff4..9aca43766 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.1.11", + "babel-core": "5.1.13", "js-base64": "~2.1.8" }, "devDependencies": { @@ -22,7 +22,7 @@ "gulp-json-editor": "2.2.1", "stylecow-parser": "2.1.0", "gonzales-pe": "3.0.0-26", - "gulp-eslint": "0.9.0", + "gulp-eslint": "0.11.0", "browserify": "9.0.8", "gulp-babel": "5.1.0", "gulp-bench": "1.1.0", @@ -43,7 +43,7 @@ "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.5.0", - "chai": "2.2.0" + "chai": "2.3.0" }, "scripts": { "test": "gulp && yaspeller ." From 75a4aef0bd451ae3870d5028d0997bc18f005daa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 26 Apr 2015 20:45:00 +0300 Subject: [PATCH 0191/3047] Release 4.1.6 version --- ChangeLog.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index dcee44e1b..f73d17fa8 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +## 4.1.6 +* Fix Promise behavior on parsing error. + ## 4.1.5 * Parse at-words in declaration values. diff --git a/package.json b/package.json index 9aca43766..0c603edbd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.5", + "version": "4.1.6", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 82e79d7a77018bb0555c73a251225b87daca3f56 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:29:26 +0300 Subject: [PATCH 0192/3047] Clean up links format in README.md --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 95b2e81f0..b4cf25566 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# PostCSS [![Build Status](https://travis-ci.org/postcss/postcss.svg)](https://travis-ci.org/postcss/postcss) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/postcss/postcss?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# PostCSS [![Build Status][ci-img]][ci] [![Gitter][chat-img]][chat] - + PostCSS is a tool for transforming CSS with JS plugins. The growing ecosystem of PostCSS plugins can add vendor prefixes, support variables and mixins, @@ -14,8 +16,13 @@ PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 4-40 times faster, and much more powerful. Twitter account: [@postcss](https://twitter.com/postcss). -Weibo account: [postcss](http://weibo.com/postcss). -VK.com page: [postcss](https://vk.com/postcss). +Weibo account: [postcss](http://weibo.com/postcss). +VK.com page: [postcss](https://vk.com/postcss). + +[chat-img]: https://badges.gitter.im/Join%20Chat.svg +[ci-img]: https://travis-ci.org/postcss/postcss.svg +[chat]: https://gitter.im/postcss/postcss +[ci]: https://travis-ci.org/postcss/postcss [Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) | [Plugin Development](#how-to-develop-postcss-plugin) --- | --- | --- | --- | --- | --- From 0b48686ed859462cb257e1aae6639a4aa25fe4b3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:29:39 +0300 Subject: [PATCH 0193/3047] Use same case notation for CHANGELOG.md --- ChangeLog.md => CHANGELOG.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ChangeLog.md => CHANGELOG.md (100%) diff --git a/ChangeLog.md b/CHANGELOG.md similarity index 100% rename from ChangeLog.md rename to CHANGELOG.md From 01223c4df9d6022b86f3b016d190e4f0f8c147db Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:32:10 +0300 Subject: [PATCH 0194/3047] Clean up first section --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b4cf25566..d2b332a2e 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,12 @@ title="Philosopher’s stone, logo of PostCSS" src="http://postcss.github.io/postcss/logo.svg"> -PostCSS is a tool for transforming CSS with JS plugins. The growing ecosystem -of PostCSS plugins can add vendor prefixes, support variables and mixins, +PostCSS is a tool for transforming CSS with JS plugins. +This plugins can add vendor prefixes, support variables and mixins, transpile future CSS syntax, inline images, and more. PostCSS is used by Google, Twitter, Alibaba, and Shopify. -Its most popular plugin, [Autoprefixer], is one of the most universally -praised CSS processors available. +Its plugin, [Autoprefixer], is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 4-40 times faster, and much more powerful. From b5322e96c8f5a8be0b9f310a2dddd1b1b9ed18ff Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:37:14 +0300 Subject: [PATCH 0195/3047] Make first section smaller --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d2b332a2e..4cafa7277 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ src="http://postcss.github.io/postcss/logo.svg"> PostCSS is a tool for transforming CSS with JS plugins. -This plugins can add vendor prefixes, support variables and mixins, -transpile future CSS syntax, inline images, and more. +This plugins can support variables and mixins, transpile future CSS syntax, +inline images, and more. PostCSS is used by Google, Twitter, Alibaba, and Shopify. -Its plugin, [Autoprefixer], is one of the most popular CSS processors. +Its plugin, [Autoprefixer], is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 4-40 times faster, and much more powerful. @@ -23,7 +23,7 @@ VK.com page: [postcss](https://vk.com/postcss). [chat]: https://gitter.im/postcss/postcss [ci]: https://travis-ci.org/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) | [Plugin Development](#how-to-develop-postcss-plugin) +[Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) | [Write Own Plugin](#how-to-develop-postcss-plugin) --- | --- | --- | --- | --- | --- From 551ecbfc6c9b1dcdd5d102abb3463f467fd5b0a9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:43:27 +0300 Subject: [PATCH 0196/3047] Make second section shorter --- README.md | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 4cafa7277..6b2eb684e 100644 --- a/README.md +++ b/README.md @@ -36,26 +36,22 @@ VK.com page: [postcss](https://vk.com/postcss). PostCSS itself is very small. It includes only a CSS parser, a CSS node tree API, a source map generator, and a node tree stringifier. -All CSS transformations are encapsulated in modular plugins. And these plugins -are themselves small plain JS functions, which receive a CSS node tree, -apply transformations to it, and return a modified tree. + +All CSS transformations are made by plugins. And these plugins are just +small plain JS functions, which receive a CSS node tree, transform it, +and return a modified tree. You can use the [cssnext] plugin pack and write future CSS code right now: ```css :root { - --row: 1rem; --mainColor: #ffbbaaff; } - -@custom-media --mobile (width <= 640px); - +@custom-media --mobile (width <= 640px); @custom-selector --heading h1, h2, h3, h4, h5, h6; .post-article --heading { - margin-top: calc(10 * var(--row)); color: color(var(--mainColor) blackness(+20%)); - font-variant-caps: small-caps; } @media (--mobile) { .post-article --heading { @@ -64,22 +60,18 @@ You can use the [cssnext] plugin pack and write future CSS code right now: } ``` -Or if you like the power provided by preprocessors like Sass, -you could combine [`postcss-nested`], [`postcss-mixins`], [`postcss-easings`] -and [`postcss-media-minmax`]: +Or if you like the syntax of preprocessors like Sass, you could combine +[`postcss-nested`], [`postcss-mixins`]: ```css -$mobile: width <= 640px; - @define-mixin social-icon $color { background: $color; &:hover { - background: color($color whiteness(+10%)); + box-shadow: 0 0 0 2px $color; } } .social-icon { - transition: background 200ms ease-in-sine; &.is-twitter { @mixin social-icon #55acee; } @@ -87,16 +79,15 @@ $mobile: width <= 640px; @mixin social-icon #3b5998; } } - .post-article { padding: 10px 5px; - @media ($mobile) { + @media (max-width: 640px) { padding: 0; } } ``` -[cssnext]: https://github.com/cssnext/cssnext +[cssnext]: https://github.com/cssnext/cssnext ### How PostCSS Differs from Preprocessors From 25df2f3c3290398e0a7ffd3314974557254936f3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:46:42 +0300 Subject: [PATCH 0197/3047] Make Sass-like example even shorter --- README.md | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6b2eb684e..1b2caeb83 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ src="http://postcss.github.io/postcss/logo.svg"> PostCSS is a tool for transforming CSS with JS plugins. -This plugins can support variables and mixins, transpile future CSS syntax, +These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more. PostCSS is used by Google, Twitter, Alibaba, and Shopify. @@ -64,22 +64,16 @@ Or if you like the syntax of preprocessors like Sass, you could combine [`postcss-nested`], [`postcss-mixins`]: ```css -@define-mixin social-icon $color { - background: $color; - &:hover { - box-shadow: 0 0 0 2px $color; +@define-mixin social-icon $network $color { + &.is-$network { + background: $color; } } .social-icon { - &.is-twitter { - @mixin social-icon #55acee; - } - &.is-facebook { - @mixin social-icon #3b5998; - } -} -.post-article { + @mixin social-icon twitter #55acee; + @mixin social-icon facebook #3b5998; + padding: 10px 5px; @media (max-width: 640px) { padding: 0; From f1ac35f3661a4b0c6932ac15f0b98f43ebba5136 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 02:49:16 +0300 Subject: [PATCH 0198/3047] Fix line breaks --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1b2caeb83..7627973cb 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more. PostCSS is used by Google, Twitter, Alibaba, and Shopify. -Its plugin, [Autoprefixer], is one of the most popular CSS processors. +Its plugin, [Autoprefixer], is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 4-40 times faster, and much more powerful. @@ -51,7 +51,7 @@ You can use the [cssnext] plugin pack and write future CSS code right now: @custom-selector --heading h1, h2, h3, h4, h5, h6; .post-article --heading { - color: color(var(--mainColor) blackness(+20%)); + color: color( var(--mainColor) blackness(+20%) ); } @media (--mobile) { .post-article --heading { @@ -60,7 +60,7 @@ You can use the [cssnext] plugin pack and write future CSS code right now: } ``` -Or if you like the syntax of preprocessors like Sass, you could combine +Or if you like the Sass syntax, you could combine [`postcss-nested`], [`postcss-mixins`]: ```css From 8081a2f951220efb4927883a0505143470894106 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 03:26:07 +0300 Subject: [PATCH 0199/3047] Update ESLint Gulp plugin --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0c603edbd..34c1ad51c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "gulp-json-editor": "2.2.1", "stylecow-parser": "2.1.0", "gonzales-pe": "3.0.0-26", - "gulp-eslint": "0.11.0", + "gulp-eslint": "0.11.1", "browserify": "9.0.8", "gulp-babel": "5.1.0", "gulp-bench": "1.1.0", From fd459a54e9e30fb1c2ab38530eb18c6b31407000 Mon Sep 17 00:00:00 2001 From: cvializ Date: Mon, 27 Apr 2015 10:55:21 -0700 Subject: [PATCH 0200/3047] Update README.md fs.fileWriteSync is not part of the Node fs API, so change it to the correct function name. I had a weird copy-paste error from this! --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7627973cb..448719216 100644 --- a/README.md +++ b/README.md @@ -404,9 +404,9 @@ var processor = postcss([require('cssnext'), require('cssgrace')]); processor .process(css, { from: 'app.css', to: 'app.out.css' }) .then(function (result) { - fs.fileWriteSync('app.out.css', result.css); + fs.writeFileSync('app.out.css', result.css); if ( result.map ) { - fs.fileWriteSync('app.out.css.map', result.map); + fs.writeFileSync('app.out.css.map', result.map); } }); ``` From 4fcb37e8eee584d33238c366750689d643201889 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 04:46:38 +0300 Subject: [PATCH 0201/3047] Add Rework to main benchmark --- benchmark/{processors.js => general.js} | 9 +++++++++ gulpfile.js | 4 ++-- package.json | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) rename benchmark/{processors.js => general.js} (89%) diff --git a/benchmark/processors.js b/benchmark/general.js similarity index 89% rename from benchmark/processors.js rename to benchmark/general.js index d3ab4720e..de96e6eb8 100644 --- a/benchmark/processors.js +++ b/benchmark/general.js @@ -14,6 +14,7 @@ var postcss = require('../build'); var cssnext = require('cssnext'); var stylus = require('stylus'); var less = require('less'); +var myth = require('myth'); try { var sass = require('node-sass'); @@ -34,6 +35,14 @@ module.exports = { }); } }, + { + name: 'Rework', + defer: true, + fn: function (done) { + myth(css, { features: { prefixes: false } }); + done.resolve(); + } + }, { name: 'Stylus', defer: true, diff --git a/gulpfile.js b/gulpfile.js index 381a1e659..1faa9eaf1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -106,10 +106,10 @@ gulp.task('bench:bootstrap', function (done) { }); }); -gulp.task('bench:processors', ['build', 'bench:bootstrap'], function () { +gulp.task('bench', ['build', 'bench:bootstrap'], function () { var bench = require('gulp-bench'); var summary = require('gulp-bench-summary'); - return gulp.src('./benchmark/processors.js', { read: false }) + return gulp.src('./benchmark/general.js', { read: false }) .pipe(bench()) .pipe(summary('PostCSS')); }); diff --git a/package.json b/package.json index 34c1ad51c..c884810da 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,8 @@ "cssom": "0.3.0", "gulp": "3.8.11", "less": "2.5.0", - "chai": "2.3.0" + "chai": "2.3.0", + "myth": "1.4.0" }, "scripts": { "test": "gulp && yaspeller ." From 70608d6641fd7680b68a05619fe3b3d71a68d990 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Apr 2015 04:51:16 +0300 Subject: [PATCH 0202/3047] Add my benchmark results --- benchmark/general.js | 10 ++++++++++ benchmark/parsers.js | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/benchmark/general.js b/benchmark/general.js index de96e6eb8..cc351a474 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -1,3 +1,13 @@ +/* Results on Intel 5Y70 and 8 GB RAM: + +PostCSS: 32 ms +Rework: 62 ms (2.0 times slower) +libsass: 94 ms (3.0 times slower) +Less: 117 ms (3.7 times slower) +Stylus: 150 ms (4.7 times slower) +Ruby Sass: 963 ms (30.5 times slower) +*/ + var exec = require('child_process').exec; var path = require('path'); var fs = require('fs'); diff --git a/benchmark/parsers.js b/benchmark/parsers.js index 5d485a25d..36728ad60 100644 --- a/benchmark/parsers.js +++ b/benchmark/parsers.js @@ -1,3 +1,14 @@ +/* Results on Intel 5Y70 and 8 GB RAM: + +PostCSS: 37 ms +CSSOM: 38 ms (1.0 times slower) +Mensch: 39 ms (1.0 times slower) +Rework: 67 ms (1.8 times slower) +Stylecow: 120 ms (3.2 times slower) +Gonzales: 173 ms (4.6 times slower) +Gonzales PE: 935 ms (25.0 times slower) +*/ + var path = require('path'); var fs = require('fs'); From 27d3f6f29de5a7df1a545d3dadb9577a6f31b387 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:10:39 +0300 Subject: [PATCH 0203/3047] Rewrite features section --- README.md | 121 ++++++++++++------------------------------------------ 1 file changed, 26 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index 448719216..bd0353994 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ PostCSS is used by Google, Twitter, Alibaba, and Shopify. Its plugin, [Autoprefixer], is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. -But PostCSS is modular, 4-40 times faster, and much more powerful. +But PostCSS is modular, 3-30 times faster, and much more powerful. Twitter account: [@postcss](https://twitter.com/postcss). Weibo account: [postcss](http://weibo.com/postcss). @@ -35,7 +35,7 @@ VK.com page: [postcss](https://vk.com/postcss). ## What is PostCSS PostCSS itself is very small. It includes only a CSS parser, -a CSS node tree API, a source map generator, and a node tree stringifier. +a CSS node tree API, a source map generator, and a node tree stringifier. All CSS transformations are made by plugins. And these plugins are just small plain JS functions, which receive a CSS node tree, transform it, @@ -61,7 +61,7 @@ You can use the [cssnext] plugin pack and write future CSS code right now: ``` Or if you like the Sass syntax, you could combine -[`postcss-nested`], [`postcss-mixins`]: +[`postcss-nested`] and [`postcss-mixins`]: ```css @define-mixin social-icon $network $color { @@ -83,111 +83,42 @@ Or if you like the Sass syntax, you could combine [cssnext]: https://github.com/cssnext/cssnext -### How PostCSS Differs from Preprocessors - -Sass, Less and Stylus provide specialized languages that you can use to write -CSS templates. These languages and their compilers are defined together -in large codebases. Tools and libraries for preprocessors must work within -each preprocessor’s limitations: usually they can only offer sets -of pre-defined mixins, functions, and variables. - -In contrast, PostCSS provides a simple API that modular plugins can use -to understand, transform, and create CSS. PostCSS plugins, therefore, -can be created, maintained, and implemented independently. And they can perform -many different tasks, not just compile special syntaxes to CSS. -Each plugin does one thing well. - -## Features - -### Modularity - -Without any plugins, PostCSS will parse your CSS and convert it back -to the string without changing a single byte. All of the processing that enables -special features and syntax in your stylesheets is made possible by PostCSS -plugins, which are nothing more than JS functions. - -Because each PostCSS plugin is an independent module, different plugins can take -different approaches. This flexibility allows plugin authors to create whatever -features they can imagine, while empowering PostCSS users to add only -those features that they want to their workflow. - -Some plugins, like [`postcss-custom-properties`], [`postcss-media-minmax`], -and [`postcss-calc`], implement syntax from present and future W3C specs, -transpiling it to cross-browser-compatible output. Other plugins, -like [`postcss-mixins`] and [`postcss-simple-extend`], add new powers -to your stylesheets that are not yet part of any spec. With PostCSS, -you can decide for yourself which plugins match your own needs and preferences. - -Another advantage of PostCSS’s modularity is that anybody can contribute easily -to the PostCSS ecosystem. Plugins are simple npm packages; -so there are no barriers to writing your own plugins, or contributing ideas -and bug fixes to the plugins that you use. - -### Performance - -PostCSS is one of the fastest CSS parsers written in JS. (Only [CSSOM] is -faster, and only because it is less accurate.) So PostCSS will read your CSS -and apply transformations faster than any other stylesheet processor out there. - -If you use Ruby Sass now, PostCSS could significantly improve your development -process: PostCSS processing is *40 times faster* than Ruby Sass compilation. -And even if you throw in the entire [cssnext] plugin pack, PostCSS, -written in JS, is still *4 times faster* than [libsass], written on C++. - -[libsass]: https://github.com/sass/libsass -[CSSOM]: https://github.com/NV/CSSOM - -### Powerful Tools - -PostCSS plugins can read and rebuild an entire CSS node tree. With this power, -plugin authors are able to create tools that would be impossible -to build into preprocessors (like [Autoprefixer]). - -PostCSS-powered tools can do much more than transform special syntax into -browser-friendly CSS. PostCSS plugin authors have built linters -(like [`doiuse`] and [`postcss-bem-linter`]), code review tools -(like [`list-selectors`]), and minifiers (like [`csswring`]). -With [`postcss-data-packer`], you can create a CSS-sprite by moving all -`data:uri` values to separate file. - -One unique example of PostCSS’s power is [`rtlcss`]. As you know, -in Arabic and Hebrew, writing moves from right-to-left, instead of the more -widespread left-to-right convention. Because a language’s directionality affects -its readers’ perspective, an international site’s layout needs to change -for Jews and Arabs, not just its text. (Check out [Arabic Wikipedia] -as an example.) The [`rtlcss`] plugin effectively “mirrors” your stylesheet -by swapping `left` and `right`, changing the value order in `margin` shorthands, -and more. +### Features -[Arabic Wikipedia]: https://ar.wikipedia.org/wiki/%D9%84%D8%BA%D8%A9_%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9 +Preprocessors are a template language, when you mix styles with +programming language (like a PHP with HTML). + +In contrast, in PostCSS you write some custom subset of CSS. +All code can be only in JS plugins. -### Use the CSS of the Future +As a result, PostCSS offers three main benefits: -CSS 3 added valuable features, but some of them are not yet available in all -of the browsers that developers need to support. And exciting future CSS modules -are being drafted now — some even implemented in cutting-edge browsers — -that will not be widely available for quite a while. But PostCSS plugins -can allow us to write this CSS of the future, then transpile it to code usable -in all the browsers we must support. +* **Performance:** PostCSS, written in JS, is [3 times faster] than [libsass], + which is written in C++. -[Autoprefixer] exemplifies this power: you write spec-compliant, future-friendly -CSS, pretending that vendor prefixes don’t exist, and it does the dirty work -of inserting the prefixes you’ll need. All of the plugins bundled into [cssnext] -do similar work, allowing authors to use syntax and functions -from the latest W3C specs without worrying about the fallbacks they’ll need. +* **Future CSS:** PostCSS plugins can read and rebuild an entire document, + meaning that they can provide new language features. For example, [cssnext] + transpiles the latest W3C drafts to current CSS syntax. -As more CSS specs are drafted, more PostCSS plugins will be written. Users will -be able to write stylesheets using standard, interoperable syntax, instead of -a specialized language for a specialized tool (as with preprocessors). +* **New abilities:** PostCSS transforms are often more powerful than + preprocessor equivalents; for example, [Autoprefixer] and [RTLCSS] would be + extremely difficult (if not impossible) to achieve without PostCSS. + +[Arabic Wikipedia]: https://ar.wikipedia.org/wiki/%D9%84%D8%BA%D8%A9_%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9 +[3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js +[libsass]: https://github.com/sass/libsass +[RTLCSS]: https://github.com/MohammadYounes/rtlcss ## Quick Start 1. Implement PostCSS with your build tool of choice. See the PostCSS [Grunt], - [Gulp], and [webpack] plugins or [CLI tool] more detailed instructions. + [Gulp], [webpack] and [Broccoli] plugins or [CLI tool] + more detailed instructions. 2. Select plugins from the list below and add them to your PostCSS process. 3. Make awesome products. [CLI tool]: https://github.com/code42day/postcss-cli +[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss [webpack]: https://github.com/postcss/postcss-loader [Grunt]: https://github.com/nDmitry/grunt-postcss [Gulp]: https://github.com/postcss/gulp-postcss From dc284e3002dd85dd037a9d181389a58113da59ad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:12:21 +0300 Subject: [PATCH 0204/3047] Fix line breaks --- README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bd0353994..ae74baed4 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Or if you like the Sass syntax, you could combine ### Features Preprocessors are a template language, when you mix styles with -programming language (like a PHP with HTML). +programming language (like a PHP with HTML). In contrast, in PostCSS you write some custom subset of CSS. All code can be only in JS plugins. @@ -98,21 +98,20 @@ As a result, PostCSS offers three main benefits: * **Future CSS:** PostCSS plugins can read and rebuild an entire document, meaning that they can provide new language features. For example, [cssnext] - transpiles the latest W3C drafts to current CSS syntax. + transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS transforms are often more powerful than - preprocessor equivalents; for example, [Autoprefixer] and [RTLCSS] would be + preprocessor equivalents. For example, [Autoprefixer] and [RTLCSS] would be extremely difficult (if not impossible) to achieve without PostCSS. -[Arabic Wikipedia]: https://ar.wikipedia.org/wiki/%D9%84%D8%BA%D8%A9_%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9 -[3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js -[libsass]: https://github.com/sass/libsass -[RTLCSS]: https://github.com/MohammadYounes/rtlcss +[3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js +[libsass]: https://github.com/sass/libsass +[RTLCSS]: https://github.com/MohammadYounes/rtlcss ## Quick Start 1. Implement PostCSS with your build tool of choice. See the PostCSS [Grunt], - [Gulp], [webpack] and [Broccoli] plugins or [CLI tool] + [Gulp], [webpack] and [Broccoli] plugins or [CLI tool] more detailed instructions. 2. Select plugins from the list below and add them to your PostCSS process. 3. Make awesome products. From eb080bf6654a3918adc212a98c2a6492a7e0c80f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:14:09 +0300 Subject: [PATCH 0205/3047] Clean up features section --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ae74baed4..fbc90020a 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,8 @@ Or if you like the Sass syntax, you could combine ### Features -Preprocessors are a template language, when you mix styles with -programming language (like a PHP with HTML). +Preprocessors are a template languages, when you mix styles with code +(like a PHP with HTML). In contrast, in PostCSS you write some custom subset of CSS. All code can be only in JS plugins. @@ -101,8 +101,8 @@ As a result, PostCSS offers three main benefits: transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS transforms are often more powerful than - preprocessor equivalents. For example, [Autoprefixer] and [RTLCSS] would be - extremely difficult (if not impossible) to achieve without PostCSS. + preprocessor equivalents. For example, [Autoprefixer] would be impossible + on preprocessors. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js [libsass]: https://github.com/sass/libsass From ddbd28aa4e413feda4e53c0f3c6a1ff556711105 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:14:49 +0300 Subject: [PATCH 0206/3047] Fix Markdown list --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index fbc90020a..47d5ab516 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,6 @@ Or if you like the Sass syntax, you could combine Preprocessors are a template languages, when you mix styles with code (like a PHP with HTML). - In contrast, in PostCSS you write some custom subset of CSS. All code can be only in JS plugins. @@ -95,11 +94,9 @@ As a result, PostCSS offers three main benefits: * **Performance:** PostCSS, written in JS, is [3 times faster] than [libsass], which is written in C++. - * **Future CSS:** PostCSS plugins can read and rebuild an entire document, meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. - * **New abilities:** PostCSS transforms are often more powerful than preprocessor equivalents. For example, [Autoprefixer] would be impossible on preprocessors. From d0b1c9d9297d8e6ae23fdc6512ccc40869868c72 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:15:42 +0300 Subject: [PATCH 0207/3047] Fix links in Features --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 47d5ab516..9638e168a 100644 --- a/README.md +++ b/README.md @@ -87,12 +87,12 @@ Or if you like the Sass syntax, you could combine Preprocessors are a template languages, when you mix styles with code (like a PHP with HTML). -In contrast, in PostCSS you write some custom subset of CSS. +In contrast, in PostCSS you write some custom subset of CSS. All code can be only in JS plugins. As a result, PostCSS offers three main benefits: -* **Performance:** PostCSS, written in JS, is [3 times faster] than [libsass], +* **Performance:** PostCSS, written in JS, is [3 times faster] than libsass, which is written in C++. * **Future CSS:** PostCSS plugins can read and rebuild an entire document, meaning that they can provide new language features. For example, [cssnext] @@ -102,8 +102,6 @@ As a result, PostCSS offers three main benefits: on preprocessors. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js -[libsass]: https://github.com/sass/libsass -[RTLCSS]: https://github.com/MohammadYounes/rtlcss ## Quick Start From ba5fbdbd17f1afec47fe959c1f41685767f5e19e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:16:49 +0300 Subject: [PATCH 0208/3047] Move Plugin development section upper --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9638e168a..4290ab2e3 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ VK.com page: [postcss](https://vk.com/postcss). [chat]: https://gitter.im/postcss/postcss [ci]: https://travis-ci.org/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Usages](#usage) | [Write Own Plugin](#how-to-develop-postcss-plugin) +[Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Write Own Plugin](#how-to-develop-postcss-plugin) | [Usages](#usage) --- | --- | --- | --- | --- | --- @@ -318,6 +318,12 @@ As a result, PostCSS offers three main benefits: [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost +## How to Develop PostCSS Plugin + +* [PostCSS API](https://github.com/postcss/postcss/blob/master/API.md) +* [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) +* [Ask questions](https://gitter.im/postcss/postcss) + ## Usage ### JavaScript API @@ -421,9 +427,3 @@ postcss.parse('a {', { safe: true }); // will return CSS root for a {} This is useful for legacy code filled with hacks. Another use-case is interactive tools with live input — for example, the [Autoprefixer demo](http://jsfiddle.net/simevidas/udyTs/show/light/). - -## How to Develop PostCSS Plugin - -* [PostCSS API](https://github.com/postcss/postcss/blob/master/API.md) -* [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) -* [Ask questions](https://gitter.im/postcss/postcss) From f29fc5278e572a492b9a2dda815d773f8452174f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:35:32 +0300 Subject: [PATCH 0209/3047] Rewrite Usage section --- README.md | 96 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 4290ab2e3..b413311ec 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ VK.com page: [postcss](https://vk.com/postcss). [chat]: https://gitter.im/postcss/postcss [ci]: https://travis-ci.org/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Quick Start](#quick-start) | [Plugins](#plugins) | [Write Own Plugin](#how-to-develop-postcss-plugin) | [Usages](#usage) +[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#plugins) | [Write Own Plugin](#how-to-develop-postcss-plugin) | [Options](#options) --- | --- | --- | --- | --- | --- @@ -99,23 +99,51 @@ As a result, PostCSS offers three main benefits: transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS transforms are often more powerful than preprocessor equivalents. For example, [Autoprefixer] would be impossible - on preprocessors. + with preprocessors. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js -## Quick Start +## Usage + +You need to make 2 steps to start using PostCSS: -1. Implement PostCSS with your build tool of choice. See the PostCSS [Grunt], - [Gulp], [webpack] and [Broccoli] plugins or [CLI tool] - more detailed instructions. +1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. -3. Make awesome products. -[CLI tool]: https://github.com/code42day/postcss-cli -[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss -[webpack]: https://github.com/postcss/postcss-loader -[Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/postcss/gulp-postcss +There are plugins for [Grunt], [Gulp], [webpack] and [Broccoli]. + +```js +gulp.task('css', function () { + var postcss = require('gulp-postcss'); + return gulp.src('src/**/*.css') + .pipe( postcss([ require('plugin1'), require('plugin2') ]) ) + .pipe( gulp.dest('build/') ); +}); +``` + +For other environments your can use [CLI tool] or JS API: + +```js +var postcss = require('postcss'); +var processor = postcss([require('cssnext'), require('cssgrace')]); + +processor.process(css, { from: 'app.css', to: 'app.out.css' }) + .then(function (result) { + fs.writeFileSync('app.out.css', result.css); + if ( result.map ) { + fs.writeFileSync('app.out.css.map', result.map); + } + }); +``` + +Read the [PostCSS API] for more details about JS API. + +[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md +[CLI tool]: https://github.com/code42day/postcss-cli +[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss +[webpack]: https://github.com/postcss/postcss-loader +[Grunt]: https://github.com/nDmitry/grunt-postcss +[Gulp]: https://github.com/postcss/gulp-postcss ## Plugins @@ -324,27 +352,7 @@ As a result, PostCSS offers three main benefits: * [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) * [Ask questions](https://gitter.im/postcss/postcss) -## Usage - -### JavaScript API - -```js -var postcss = require('postcss'); -var processor = postcss([require('cssnext'), require('cssgrace')]); - -processor - .process(css, { from: 'app.css', to: 'app.out.css' }) - .then(function (result) { - fs.writeFileSync('app.out.css', result.css); - if ( result.map ) { - fs.writeFileSync('app.out.css.map', result.map); - } - }); -``` - -Read the [PostCSS API] for more details. - -[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md +## Options ### Source Maps @@ -360,24 +368,20 @@ This will generate an inline source map that contains the source content. If you don’t want the map inlined, you can use set `map.inline: false`. ```js -var result = processor.process(css, { - from: 'app.css', - to: 'app.out.css', - map: { inline: false }, -}); - -result.map //=> '{"version":3,"file":"main.out.css","sources":["main.css"],"names":[],"mappings":"AAAA,KAAI"}' +processor + .process(css, { + from: 'app.sass.css', + to: 'app.css', + map: { inline: false }, + }) + .then(function (result) { + result.map //=> '{"version":3,"file":"app.css","sources":["app.sass"],"names":[],"mappings":"AAAA,KAAI"}' + }); ``` If PostCSS finds source maps from a previous transformation, it will automatically update that source map with the same options. -```js -// main.sass.css has an annotation comment with a link to main.sass.css.map -var result = minifier.process(css, { from: 'app.sass.css', to: 'app.min.css' }); -result.map //=> Source map from main.sass to main.min.css -``` - If you want more control over source map generation, you can define the `map` option as an object with the following parameters: From 540b4ba76c2238f47fdee5db08009cee8cb69eac Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 00:38:16 +0300 Subject: [PATCH 0210/3047] Clean up PostCSS usage examples --- README.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b413311ec..19f1d4ce5 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ As a result, PostCSS offers three main benefits: ## Usage -You need to make 2 steps to start using PostCSS: +You need to make 2 steps for using PostCSS: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. @@ -116,7 +116,7 @@ There are plugins for [Grunt], [Gulp], [webpack] and [Broccoli]. gulp.task('css', function () { var postcss = require('gulp-postcss'); return gulp.src('src/**/*.css') - .pipe( postcss([ require('plugin1'), require('plugin2') ]) ) + .pipe( postcss([ require('cssnext'), require('cssgrace') ]) ) .pipe( gulp.dest('build/') ); }); ``` @@ -125,14 +125,11 @@ For other environments your can use [CLI tool] or JS API: ```js var postcss = require('postcss'); -var processor = postcss([require('cssnext'), require('cssgrace')]); +var processor = postcss([ require('cssnext'), require('cssgrace') ]); -processor.process(css, { from: 'app.css', to: 'app.out.css' }) - .then(function (result) { - fs.writeFileSync('app.out.css', result.css); - if ( result.map ) { - fs.writeFileSync('app.out.css.map', result.map); - } +processor.process(css, { from: 'src/app.css', to: 'app.css' }).then(function (result) { + fs.writeFileSync('app.css', result.css); + if ( result.map ) fs.writeFileSync('app.css.map', result.map); }); ``` From e98b200b13981a0e2e9e0140c7cc9a47c9abc2bc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 01:03:37 +0300 Subject: [PATCH 0211/3047] Try again after network problem in integration test --- tasks/get.js | 61 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/tasks/get.js b/tasks/get.js index 1549c9859..4cb8258c9 100644 --- a/tasks/get.js +++ b/tasks/get.js @@ -1,37 +1,48 @@ var request = require('request'); var zlib = require('zlib'); +var load = function (url, callback, errors) { + request.get({ + url: url, + headers: { 'accept-encoding': 'gzip,deflate' } + }).on('error', function (error) { + if ( errors > 2 ) throw error; + console.error(error.toString()); + load(url, callback, (errors || 1) + 1); + }).on('response', function (res) { + callback(res); + }); +}; + module.exports = function (url, callback) { if ( url.match(/^github:/) ) { - var parts = url.split(':'); - url = 'https://raw.githubusercontent.com/' + - parts[1] + '/master/' + parts[2]; + var p = url.split(':'); + url = 'https://raw.githubusercontent.com/' + p[1] + '/master/' + p[2]; } - request.get({ url: url, headers: {'accept-encoding': 'gzip,deflate'} }) - .on('response', function (res) { - var chunks = []; - res.on('data', function (i) { - chunks.push(i); - }); - res.on('end', function () { - var buffer = Buffer.concat(chunks); + load(url, function (res) { + var chunks = []; + res.on('data', function (i) { + chunks.push(i); + }); + res.on('end', function () { + var buffer = Buffer.concat(chunks); - if ( res.headers['content-encoding'] === 'gzip' ) { - zlib.gunzip(buffer, function (err, decoded) { - if ( err ) throw err; - callback(decoded.toString()); - }); + if ( res.headers['content-encoding'] === 'gzip' ) { + zlib.gunzip(buffer, function (err, decoded) { + if ( err ) throw err; + callback(decoded.toString()); + }); - } else if ( res.headers['content-encoding'] === 'deflate' ) { - zlib.inflate(buffer, function (err, decoded) { - if ( err ) throw err; - callback(decoded.toString()); - }); + } else if ( res.headers['content-encoding'] === 'deflate' ) { + zlib.inflate(buffer, function (err, decoded) { + if ( err ) throw err; + callback(decoded.toString()); + }); - } else { - callback(buffer.toString()); - } - }); + } else { + callback(buffer.toString()); + } }); + }); }; From fac399223e7d1796a62859b500cba28fad8071f6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 01:32:35 +0300 Subject: [PATCH 0212/3047] Move benchmark dependencies to private list --- package.json | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index c884810da..097b6ad4d 100644 --- a/package.json +++ b/package.json @@ -18,33 +18,35 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "gulp-bench-summary": "0.1.0", "gulp-json-editor": "2.2.1", - "stylecow-parser": "2.1.0", - "gonzales-pe": "3.0.0-26", "gulp-eslint": "0.11.1", "browserify": "9.0.8", "gulp-babel": "5.1.0", - "gulp-bench": "1.1.0", "gulp-mocha": "2.0.1", - "node-sass": "2.1.1", "yaspeller": "2.1.0", "gulp-util": "3.0.4", "fs-extra": "0.18.2", - "gonzales": "1.0.7", "through2": "0.6.5", "request": "2.55.0", - "cssnext": "1.3.0", - "rework": "1.0.1", - "mensch": "0.3.1", - "stylus": "0.51.0", "sinon": "1.14.1", "mocha": "2.2.4", - "cssom": "0.3.0", "gulp": "3.8.11", - "less": "2.5.0", - "chai": "2.3.0", - "myth": "1.4.0" + "chai": "2.3.0" + }, + "benchmarkDependencies": { + "gulp-bench-summary": "0.1.0", + "stylecow-parser": "2.1.0", + "gonzales-pe": "3.0.0-26", + "gulp-bench": "1.1.0", + "node-sass": "2.1.1", + "gonzales": "1.0.7", + "cssnext": "1.3.0", + "mensch": "0.3.1", + "stylus": "0.51.0", + "rework": "1.0.1", + "cssom": "0.3.0", + "less": "2.5.0", + "myth": "1.4.0" }, "scripts": { "test": "gulp && yaspeller ." From 5750706b3c92525d4e6a5bf6cc7400ca21f4252a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 01:35:55 +0300 Subject: [PATCH 0213/3047] Clean up JS API example --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 19f1d4ce5..0b1ce8edb 100644 --- a/README.md +++ b/README.md @@ -124,13 +124,13 @@ gulp.task('css', function () { For other environments your can use [CLI tool] or JS API: ```js -var postcss = require('postcss'); -var processor = postcss([ require('cssnext'), require('cssgrace') ]); - -processor.process(css, { from: 'src/app.css', to: 'app.css' }).then(function (result) { - fs.writeFileSync('app.css', result.css); - if ( result.map ) fs.writeFileSync('app.css.map', result.map); - }); +var postcss = require('postcss'); +postcss([ require('cssnext'), require('cssgrace') ]) + .process(css, { from: 'src/app.css', to: 'app.css' }) + .then(function (result) { + fs.writeFileSync('app.css', result.css); + if ( result.map ) fs.writeFileSync('app.css.map', result.map); + }); ``` Read the [PostCSS API] for more details about JS API. From 1d411c759c4cef98fc93dbc6a7ee3cefcc7de5ed Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 01:39:10 +0300 Subject: [PATCH 0214/3047] Fix link from API.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b1ce8edb..71e46216d 100644 --- a/README.md +++ b/README.md @@ -351,7 +351,7 @@ Read the [PostCSS API] for more details about JS API. ## Options -### Source Maps +### Source Map PostCSS has great [source maps] support. It can read and interpret maps from previous transformation steps, autodetect the format that you expect, From 686af781acf1356625700a59f326766efef24fcc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 01:40:15 +0300 Subject: [PATCH 0215/3047] Fix source map example --- README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 71e46216d..a150582e1 100644 --- a/README.md +++ b/README.md @@ -366,14 +366,17 @@ If you don’t want the map inlined, you can use set `map.inline: false`. ```js processor - .process(css, { - from: 'app.sass.css', - to: 'app.css', - map: { inline: false }, - }) - .then(function (result) { - result.map //=> '{"version":3,"file":"app.css","sources":["app.sass"],"names":[],"mappings":"AAAA,KAAI"}' - }); + .process(css, { + from: 'app.sass.css', + to: 'app.css', + map: { inline: false }, + }) + .then(function (result) { + result.map //=> '{ "version":3, + // "file":"app.css", + // "sources":["app.sass"], + // "mappings":"AAAA,KAAI" }' + }); ``` If PostCSS finds source maps from a previous transformation, From c531c5cf373f2448142abbbe1a47d0b274cecebf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 03:57:31 +0300 Subject: [PATCH 0216/3047] More real benchmark --- benchmark/general.js | 119 +++++++++++++++++++++++++++++++------------ package.json | 29 ++++++----- 2 files changed, 102 insertions(+), 46 deletions(-) diff --git a/benchmark/general.js b/benchmark/general.js index cc351a474..f60ed7ee8 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -1,11 +1,11 @@ /* Results on Intel 5Y70 and 8 GB RAM: -PostCSS: 32 ms -Rework: 62 ms (2.0 times slower) -libsass: 94 ms (3.0 times slower) -Less: 117 ms (3.7 times slower) -Stylus: 150 ms (4.7 times slower) -Ruby Sass: 963 ms (30.5 times slower) +PostCSS: 47 ms +Rework: 77 ms (1.7 times slower) +libsass: 128 ms (2.7 times slower) +Less: 157 ms (3.4 times slower) +Stylus: 189 ms (4.1 times slower) +Ruby Sass: 1143 ms (24.5 times slower) */ var exec = require('child_process').exec; @@ -17,19 +17,72 @@ var css = fs.readFileSync(example).toString(); css = css.replace(/\s+filter:[^;\}]+;?/g, ''); css = css.replace('/*# sourceMappingURL=bootstrap.css.map */', ''); -var scss = path.join(__dirname, 'cache', 'bootstrap.scss'); -fs.writeFileSync(scss, css); -var postcss = require('../build'); -var cssnext = require('cssnext'); -var stylus = require('stylus'); -var less = require('less'); -var myth = require('myth'); +// PostCSS +var postcss = require('../build'); +var processor = postcss([ + require('postcss-nested'), + require('postcss-simple-vars'), + require('postcss-calc')(), + require('postcss-mixins') +]); +pcss = css; +pcss += '$size: 100px;'; +pcss += '@define-mixin icon { width: 16px; height: 16px; }' +for ( var i = 0; i < 100; i++ ) { + pcss += 'body { h1 { a { color: black; } } }'; + pcss += 'h2 { width: $size; }'; + pcss += 'h1 { width: calc(2 * $size); }'; + pcss += '.search { fill: black; @mixin icon; }'; +} + +// Myth +var myth = require('myth'); +rcss = css; +rcss += ':root { --name: 100px; }'; +for ( var i = 0; i < 100; i++ ) { + rcss += 'body h1 a { color: black; }'; + rcss += 'h2 { width: $size; }'; + rcss += 'h1 { width: calc(2 * $size); }'; + rcss += '.search { fill: black; width: 16px; height: 16px; }'; +} + +// Sass +var libsass = require('node-sass'); +scss = css; +scss += '$size: 100px;'; +scss += '@mixin icon { width: 16px; height: 16px; }' +for ( var i = 0; i < 100; i++ ) { + scss += 'body { h1 { a { color: black; } } }'; + scss += 'h2 { width: $size; }'; + scss += 'h1 { width: 2 * $size; }'; + scss += '.search { fill: black; @include icon; }'; +} +var scssFile = path.join(__dirname, 'cache', 'bootstrap.scss'); +fs.writeFileSync(scssFile, scss); + +// Stylus +var stylus = require('stylus'); +styl = css; +styl += 'size = 100px;'; +styl += 'icon() { width: 16px; height: 16px; }' +for ( var i = 0; i < 100; i++ ) { + styl += 'body { h1 { a { color: black; } } }'; + styl += 'h2 { width: size; }'; + styl += 'h1 { width: 2 * size; }'; + styl += '.search { fill: black; icon(); }'; +} -try { - var sass = require('node-sass'); -} catch (e) { - console.error(e.toString()); +// Less +var less = require('less'); +lcss = css; +lcss += '@size: 100px;'; +lcss += '.icon() { width: 16px; height: 16px; }' +for ( var i = 0; i < 100; i++ ) { + lcss += 'body { h1 { a { color: black; } } }'; + lcss += 'h2 { width: @size; }'; + lcss += 'h1 { width: 2 * @size; }'; + lcss += '.search { fill: black; .icon() }'; } module.exports = { @@ -37,53 +90,53 @@ module.exports = { maxTime: 15, tests: [ { - name: 'PostCSS', - defer: true, - fn: function (done) { - postcss(cssnext).process(css, { map: false }).then(function () { - done.resolve(); - }); + name: 'libsass', + fn: function () { + libsass.renderSync({ data: scss }); } }, { name: 'Rework', defer: true, fn: function (done) { - myth(css, { features: { prefixes: false } }); + myth(rcss, { features: { prefixes: false } }); done.resolve(); } }, { - name: 'Stylus', + name: 'PostCSS', defer: true, fn: function (done) { - stylus.render(css, { filename: example }, function (err) { - if ( err ) throw err; + processor.process(pcss, { map: false }).then(function () { done.resolve(); }); } }, { - name: 'Less', + name: 'Stylus', defer: true, fn: function (done) { - less.render(css, function (err) { + stylus.render(styl, { filename: example }, function (err) { if ( err ) throw err; done.resolve(); }); } }, { - name: 'libsass', - fn: function () { - sass.renderSync({ data: css }); + name: 'Less', + defer: true, + fn: function (done) { + less.render(lcss, function (err) { + if ( err ) throw err; + done.resolve(); + }); } }, { name: 'Ruby Sass', defer: true, fn: function (done) { - var command = 'sass -C --sourcemap=none ' + scss; + var command = 'sass -C --sourcemap=none ' + scssFile; var dir = __dirname; exec('cd ' + dir + '; bundle exec ' + command, function (error, stdout, stderr) { diff --git a/package.json b/package.json index 097b6ad4d..3b23beba5 100644 --- a/package.json +++ b/package.json @@ -34,19 +34,22 @@ "chai": "2.3.0" }, "benchmarkDependencies": { - "gulp-bench-summary": "0.1.0", - "stylecow-parser": "2.1.0", - "gonzales-pe": "3.0.0-26", - "gulp-bench": "1.1.0", - "node-sass": "2.1.1", - "gonzales": "1.0.7", - "cssnext": "1.3.0", - "mensch": "0.3.1", - "stylus": "0.51.0", - "rework": "1.0.1", - "cssom": "0.3.0", - "less": "2.5.0", - "myth": "1.4.0" + "postcss-simple-vars": "0.2.4", + "gulp-bench-summary": "0.1.0", + "stylecow-parser": "2.1.0", + "postcss-nested": "0.2.2", + "postcss-mixins": "0.1.1", + "postcss-calc": "4.0.1", + "gonzales-pe": "3.0.0-26", + "gulp-bench": "1.1.0", + "node-sass": "2.1.1", + "gonzales": "1.0.7", + "mensch": "0.3.1", + "stylus": "0.51.0", + "rework": "1.0.1", + "cssom": "0.3.0", + "less": "2.5.0", + "myth": "1.4.0" }, "scripts": { "test": "gulp && yaspeller ." From 236db6b4ce622e38f17b12e02b48d5e5129ba758 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 04:03:53 +0300 Subject: [PATCH 0217/3047] Fix JS warnings --- benchmark/general.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/general.js b/benchmark/general.js index f60ed7ee8..d9c999598 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -26,9 +26,9 @@ var processor = postcss([ require('postcss-calc')(), require('postcss-mixins') ]); -pcss = css; +var pcss = css; pcss += '$size: 100px;'; -pcss += '@define-mixin icon { width: 16px; height: 16px; }' +pcss += '@define-mixin icon { width: 16px; height: 16px; }'; for ( var i = 0; i < 100; i++ ) { pcss += 'body { h1 { a { color: black; } } }'; pcss += 'h2 { width: $size; }'; @@ -38,7 +38,7 @@ for ( var i = 0; i < 100; i++ ) { // Myth var myth = require('myth'); -rcss = css; +var rcss = css; rcss += ':root { --name: 100px; }'; for ( var i = 0; i < 100; i++ ) { rcss += 'body h1 a { color: black; }'; @@ -49,9 +49,9 @@ for ( var i = 0; i < 100; i++ ) { // Sass var libsass = require('node-sass'); -scss = css; +var scss = css; scss += '$size: 100px;'; -scss += '@mixin icon { width: 16px; height: 16px; }' +scss += '@mixin icon { width: 16px; height: 16px; }'; for ( var i = 0; i < 100; i++ ) { scss += 'body { h1 { a { color: black; } } }'; scss += 'h2 { width: $size; }'; @@ -63,9 +63,9 @@ fs.writeFileSync(scssFile, scss); // Stylus var stylus = require('stylus'); -styl = css; +var styl = css; styl += 'size = 100px;'; -styl += 'icon() { width: 16px; height: 16px; }' +styl += 'icon() { width: 16px; height: 16px; }'; for ( var i = 0; i < 100; i++ ) { styl += 'body { h1 { a { color: black; } } }'; styl += 'h2 { width: size; }'; @@ -75,9 +75,9 @@ for ( var i = 0; i < 100; i++ ) { // Less var less = require('less'); -lcss = css; +var lcss = css; lcss += '@size: 100px;'; -lcss += '.icon() { width: 16px; height: 16px; }' +lcss += '.icon() { width: 16px; height: 16px; }'; for ( var i = 0; i < 100; i++ ) { lcss += 'body { h1 { a { color: black; } } }'; lcss += 'h2 { width: @size; }'; From 0e90cbdc1df9b6b44c25629546c9a61130613036 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 04:37:24 +0300 Subject: [PATCH 0218/3047] Remove standalone task --- gulpfile.js | 14 -------------- package.json | 1 - 2 files changed, 15 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 1faa9eaf1..2bcfc0742 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -43,20 +43,6 @@ gulp.task('build:package', ['build:clean'], function () { gulp.task('build', ['build:lib', 'build:docs', 'build:package']); -gulp.task('standalone', ['build'], function (done) { - var builder = require('browserify')({ - basedir: path.join(__dirname, 'build'), - standalone: 'postcss' - }); - builder.add('./lib/postcss.js'); - - builder.bundle(function (error, build) { - if ( error ) throw error.toString(); - fs.removeSync(path.join(__dirname, 'build')); - fs.writeFile(path.join(__dirname, 'postcss.js'), build, done); - }); -}); - // Lint gulp.task('lint', function () { diff --git a/package.json b/package.json index 3b23beba5..e40a86b23 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", "gulp-eslint": "0.11.1", - "browserify": "9.0.8", "gulp-babel": "5.1.0", "gulp-mocha": "2.0.1", "yaspeller": "2.1.0", From 42eb268bea644737f1e044333154ee97be87f850 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 05:47:47 +0300 Subject: [PATCH 0219/3047] Fix title type in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a150582e1..3fbaa7f3e 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Or if you like the Sass syntax, you could combine [cssnext]: https://github.com/cssnext/cssnext -### Features +## Features Preprocessors are a template languages, when you mix styles with code (like a PHP with HTML). From f7358119a3fd81846c7fce365df54aa03f8f9677 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Apr 2015 14:53:17 +0300 Subject: [PATCH 0220/3047] Clear benchmark environment --- benchmark/general.js | 2 +- benchmark/parsers.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmark/general.js b/benchmark/general.js index d9c999598..0882dd9eb 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -1,4 +1,4 @@ -/* Results on Intel 5Y70 and 8 GB RAM: +/* Results on Fedora 21, Intel 5Y70, 8 GB RAM and SSD: PostCSS: 47 ms Rework: 77 ms (1.7 times slower) diff --git a/benchmark/parsers.js b/benchmark/parsers.js index 36728ad60..7eb467873 100644 --- a/benchmark/parsers.js +++ b/benchmark/parsers.js @@ -1,4 +1,4 @@ -/* Results on Intel 5Y70 and 8 GB RAM: +/* Results on Fedora 21, Intel 5Y70, 8 GB RAM and SSD: PostCSS: 37 ms CSSOM: 38 ms (1.0 times slower) From 5f89675b99a884999cae54d394817499da986337 Mon Sep 17 00:00:00 2001 From: Brian Holt Date: Tue, 28 Apr 2015 10:42:02 -0700 Subject: [PATCH 0221/3047] Add postcss-colorblind to Others --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 3fbaa7f3e..c3a9514af 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,8 @@ Read the [PostCSS API] for more details about JS API. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. +* [`postcss-colorblind`] transforms colors using filters to simulate + colorblindness * [`postcss-discard-comments`] removes comments based on rules you specify. * [`postcss-log-warnings`] logs warnings messages from other plugins in the console. @@ -304,6 +306,7 @@ Read the [PostCSS API] for more details about JS API. [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray +[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-colormin`]: https://github.com/ben-eb/colormin From 67f458808f1b4203a26f598a6ffde6a10deeacff Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Wed, 29 Apr 2015 01:21:17 +0300 Subject: [PATCH 0222/3047] speedup postcss.list with indexOf --- lib/list.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/list.js b/lib/list.js index 1dc383f91..ef5671ce2 100644 --- a/lib/list.js +++ b/lib/list.js @@ -27,9 +27,7 @@ let list = { } else if ( letter === ')' ) { if ( func > 0 ) func -= 1; } else if ( func === 0 ) { - for ( let j = 0; j < separators.length; j++ ) { - if ( letter === separators[j] ) split = true; - } + if ( separators.indexOf(letter) !== -1 ) split = true; } if ( split ) { From 5fb88f57d9cabef91f3d617a2f43e79d829878ce Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 29 Apr 2015 01:34:51 +0300 Subject: [PATCH 0223/3047] Release 4.1.7 version --- .yaspellerrc | 2 ++ CHANGELOG.md | 3 +++ package.json | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 446709dba..9e3d292e0 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -40,6 +40,8 @@ "Andrealphus", "Andras", "Briggs", + "Bogdan", + "Chadkin", "ClojureWerkz’s", "Dantalion", "Decarabia", diff --git a/CHANGELOG.md b/CHANGELOG.md index f73d17fa8..7a75ab2f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.7 +* Speed up `postcss.list` (by Bogdan Chadkin). + ## 4.1.6 * Fix Promise behavior on parsing error. diff --git a/package.json b/package.json index e40a86b23..6b1111e21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.6", + "version": "4.1.7", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 627fa3592815c542771fc8d407f1123b45c8b91d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 30 Apr 2015 21:07:29 +0300 Subject: [PATCH 0224/3047] Add dir for docs --- README.md | 4 ++-- API.md => docs/api.md | 0 Runner Guidelines.md => docs/guidelines/runner.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename API.md => docs/api.md (100%) rename Runner Guidelines.md => docs/guidelines/runner.md (97%) diff --git a/README.md b/README.md index c3a9514af..d074439e0 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ postcss([ require('cssnext'), require('cssgrace') ]) Read the [PostCSS API] for more details about JS API. -[PostCSS API]: https://github.com/postcss/postcss/blob/master/API.md +[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md [CLI tool]: https://github.com/code42day/postcss-cli [Broccoli]: https://github.com/jeffjewiss/broccoli-postcss [webpack]: https://github.com/postcss/postcss-loader @@ -348,7 +348,7 @@ Read the [PostCSS API] for more details about JS API. ## How to Develop PostCSS Plugin -* [PostCSS API](https://github.com/postcss/postcss/blob/master/API.md) +* [PostCSS API](https://github.com/postcss/postcss/blob/master/docs/api.md) * [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) * [Ask questions](https://gitter.im/postcss/postcss) diff --git a/API.md b/docs/api.md similarity index 100% rename from API.md rename to docs/api.md diff --git a/Runner Guidelines.md b/docs/guidelines/runner.md similarity index 97% rename from Runner Guidelines.md rename to docs/guidelines/runner.md index a885ee8a9..3ef4e8cda 100644 --- a/Runner Guidelines.md +++ b/docs/guidelines/runner.md @@ -62,9 +62,9 @@ processor.process(opts).then(function (result) { PostCSS runners must not rely on undocumented properties or methods, which may be subject to change in any minor release. The public API -is described in [`API.md`]. +is described in [API docs]. -[`API.md`]: https://github.com/postcss/postcss/blob/master/API.md +[API docs]: https://github.com/postcss/postcss/blob/master/docs/api.md ## 3. Output From 57a8d4fa771fbca9f4976f586b455545f87f21f4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 02:54:18 +0300 Subject: [PATCH 0225/3047] Allow to pass Processor to constructor too --- lib/processor.js | 27 ++++++++++++++------------- test/postcss.js | 8 ++++++++ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/processor.js b/lib/processor.js index 3118dd9a6..ee13de22b 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -2,16 +2,11 @@ import LazyResult from './lazy-result'; export default class Processor { constructor(plugins = []) { - this.plugins = plugins.map( i => this.normalize(i) ); + this.plugins = this.normalize(plugins); } use(plugin) { - plugin = this.normalize(plugin); - if ( typeof plugin === 'object' && Array.isArray(plugin.plugins) ) { - this.plugins = this.plugins.concat(plugin.plugins); - } else { - this.plugins.push(plugin); - } + this.plugins = this.plugins.concat(this.normalize([plugin])); return this; } @@ -19,13 +14,19 @@ export default class Processor { return new LazyResult(this, css, opts); } - normalize(plugin) { - let type = typeof plugin; - if ( (type === 'object' || type === 'function') && plugin.postcss ) { - return plugin.postcss; - } else { - return plugin; + normalize(plugins) { + let normalized = []; + for ( let i of plugins ) { + let type = typeof i; + if ( (type === 'object' || type === 'function') && i.postcss ) { + normalized.push(i.postcss); + } else if ( type === 'object' && Array.isArray(i.plugins) ) { + normalized = normalized.concat(i.plugins); + } else { + normalized.push(i); + } } + return normalized; } } diff --git a/test/postcss.js b/test/postcss.js index 8f1d29dff..d76d956a9 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -23,6 +23,14 @@ describe('postcss()', () => { expect(postcss([a, b]).plugins).to.eql([a, b]); }); + it('takes plugin from other processor', () => { + let a = () => 1; + let b = () => 2; + let c = () => 3; + let other = postcss([a, b]); + expect(postcss([other, c]).plugins).to.eql([a, b, c]); + }); + describe('.plugin()', () => { it('creates plugin', () => { From e0deb92e211cd3f3e80fc061591060b00270252c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 03:14:41 +0300 Subject: [PATCH 0226/3047] Update Babel --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b1111e21..314310e9f 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.1.13", + "babel-core": "5.2.2", "js-base64": "~2.1.8" }, "devDependencies": { From 1e835d2bc7ec9c896e7d05ff468a2c032020470b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 03:16:13 +0300 Subject: [PATCH 0227/3047] Release 4.1.8 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a75ab2f2..f42db5511 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.8 +* Accepts `Processor` instance in `postcss()` constructor too. + ## 4.1.7 * Speed up `postcss.list` (by Bogdan Chadkin). diff --git a/package.json b/package.json index 314310e9f..c686d1cca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.7", + "version": "4.1.8", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From fc44aed598ebfaff3e76eb3aca92eab42d078e77 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 04:47:55 +0300 Subject: [PATCH 0228/3047] Fix link --- docs/guidelines/runner.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 3ef4e8cda..1e0cd14c2 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -7,9 +7,9 @@ These rules are mandatory for any such runners. For single-plugin tools, like [`gulp-autoprefixer`], these rules are not mandatory but are highly recommended. -See also ClojureWerkz’s [open source project recommendations]. +See also [ClojureWerkz’s recommendations] for open source projects. -[open source project recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ +[ClojureWerkz’s recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ [`gulp-autoprefixer`]: https://github.com/sindresorhus/gulp-autoprefixer [`gulp‑postcss`]: https://github.com/w0rm/gulp-postcss [`postcss-cli`]: https://github.com/code42day/postcss-cli From 62c0b80c1bcfeb2eda236bcdff0256fb0402985a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 15:34:33 +0300 Subject: [PATCH 0229/3047] Add first draft of Plugin Guidelines --- docs/guidelines/plugin.md | 185 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 docs/guidelines/plugin.md diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md new file mode 100644 index 000000000..a60da993e --- /dev/null +++ b/docs/guidelines/plugin.md @@ -0,0 +1,185 @@ +# PostCSS Plugin Guidelines + +PostCSS plugin is a function that receives and transforms a CSS AST +from PostCSS parser. These rules are mandatory for all PostCSS plugins. + +See also [ClojureWerkz’s recommendations] for open source projects. + +[ClojureWerkz’s recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ + +## 1. API + +### 1.1 Clear name with `postcss-` prefix + +Plugin’s purpose should be clear just by its name. +If you wrote a polyfill for CSS 4 Custom Media, `postcss-cuustom-media` +is a good name. If you wrote a plugin to support mixin, +use `postcss-mixins` as name. + +Prefix `postcss-` will show, that plugin is part of PostCSS ecosystem. + +This rule is not mandatory for plugins promoted as separated tool, +not like a part of PostCSS ecosystem. Like [Autoprefixer] or [cssnext]. + +[Autoprefixer]: https://github.com/postcss/autoprefixer +[cssnext]: https://cssnext.github.io/ + +### 1.2. Do one thing, and do it well + +Do not create multitool plugins. Few small one-purpose plugins with +a plugins pack will be a better solution. + +For example, [cssnext] contains many small plugins for each W3C specification. +Or [cssnano] contains a plugin for each optimization. + +[cssnext]: https://cssnext.github.io/ +[cssnano]: https://github.com/ben-eb/cssnano + +### 1.3. Do not use mixins + +Preprocessors libraries like Compass provide API by mixins. + +PostCSS has a different way. Do not prodive mixins for [postcss-mixins]. +Custom properties and at-rules are better way. + +[postcss-mixins]: https://github.com/postcss/postcss-mixins + +### 1.4. Create plugin by `postcss.plugin` + +This method will create a wrap to provide common plugin API: + +```js +var plugin = postcss.plugin('plugin-name', function (opts) { + return function (css, result) { + // Plugin code + }; +}); + +postcss([ plugin ]) // Bracket-less call +postcss([ plugin(opst) ]) // Brackets call to set options +``` + +## 2. Processing + +### 2.1. Plugin must be tested + +CI service like [Travis] is also recommended to test code on +different environments (at least on node.js 0.12 and io.js). + +[Travis]: https://travis-ci.org/ + +### 2.2. Use asynchronous methods when it is possible + +For example don’t use `fs.writeFile` instead of `fs.writeFileSync`: + +```js +postcss.plugin('plugin-sprite', function (opts) { + return function (css, result) { + + return new Promise(function (resolve, reject) { + var sprite = makeSprite(); + fs.writeFile(opts.file, function (err) { + if ( err ) return reject(err); + resolve(); + }) + }); + + }; +}); +``` + +### 2.3. Set `node.source` for new nodes + +Every node must have relevant `source` to generate correct source map. + +So if you add new declaration, because of different declaration, you should +clone it to save origin `source`. + +```js +if ( needPrefix(decl.prop) ) { + decl.cloneBefore({ prop: '-webkit-' + decl.prop }); +} +``` + +If you will create different type of node, you can just set `source` +from source node: + +```js +if ( decl.prop === 'animation' ) { + var keyframe = createAnimationByName(decl.value); + keyframes.source = decl.source; + decl.root().append(keyframes); +} +``` + +### 2.4. Use only the public PostCSS API + +PostCSS plugins must not rely on undocumented properties or methods, +which may be subject to change in any minor release. The public API +is described in [API docs]. + +[API docs]: https://github.com/postcss/postcss/blob/master/docs/api.md + +## 3. Errors + +### 3.1. Use `node.error` on CSS relevant errors + +If you have a error because of input CSS (like unknown name in mixin plugin) +you should use `node.error` to create a error with source position: + +```js +if ( typeof mixins[name] === 'undefined' ) { + throw decl.error('Unknown mixin ' + name, { plugin: 'postcss-mixins' }); +} +``` + +You must set your plugin name in `plugin` options. + +### 3.2. Use `result.warn` for warnings + +Do not print warnings by `console.warn`, because some PostCSS runner may has +no console output. + +```js +if ( outdated(decl.prop) ) { + result.warn(decl.prop + ' is outdated', { node: decl }); +} +``` + +If CSS input is a source of warning, plugin must set `node` option. + +## 4. Documentation + +### 4.1. Document your plugin in English + +PostCSS plugins must have their `README.md` written in English. Do not be afraid +of your English skills, as the open source community will fix your errors. + +Of course, you are welcome to write documentation in other languages; +just name them appropriately (e.g. `README.ja.md`). + +### 4.2. Put input and output examples + +`README.md` must contain input and output CSS. Example is a best way +to describe plugin work. + +First section is a good place to put examples. +See [postcss-opacity](https://github.com/iamvdo/postcss-opacity) for example. + +### 4.3. Maintain a changelog + +PostCSS plugins must describe changes of all releases in a separate file, +such as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. +Visit [Keep A Changelog] for more information on how to write one of these. + +[Keep A Changelog]: http://keepachangelog.com/ +[GitHub Releases]: https://help.github.com/articles/creating-releases/ + +### 4.4. `postcssplugin` keyword in `package.json` + +PostCSS plugins written for npm must have the `postcssplugin` keyword +in their `package.json`. This special keyword will be useful for feedback about +the PostCSS ecosystem. + +For packages not published to npm, this is not mandatory, but recommended +if the package format is allowed to contain keywords. From 51a0b7b14bbb658e674cd01fc823d41b43a02d7c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 15:40:45 +0300 Subject: [PATCH 0230/3047] Fix spellchecker warnings --- .yaspellerrc | 6 ++++++ docs/guidelines/plugin.md | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index 9e3d292e0..13b3e0f7a 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -10,6 +10,7 @@ "Autoprefixer", "Base64", "cssnext", + "cssnano", "Browserhacks", "CoffeeScript", "GitHub", @@ -18,6 +19,8 @@ "PostCSS’s", "postcss", "Shopify", + "Travis", + "CI", "W3C", "WebP", "VK", @@ -79,6 +82,9 @@ "minifier", "minifiers", "mixins", + "mixin", + "multitool", + "io", "inlined", "inlines", "polyfill", diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index a60da993e..321d4f8bb 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -19,7 +19,7 @@ use `postcss-mixins` as name. Prefix `postcss-` will show, that plugin is part of PostCSS ecosystem. This rule is not mandatory for plugins promoted as separated tool, -not like a part of PostCSS ecosystem. Like [Autoprefixer] or [cssnext]. +not like a part of PostCSS ecosystem. Like [cssnext] or [Autoprefixer]. [Autoprefixer]: https://github.com/postcss/autoprefixer [cssnext]: https://cssnext.github.io/ @@ -39,7 +39,7 @@ Or [cssnano] contains a plugin for each optimization. Preprocessors libraries like Compass provide API by mixins. -PostCSS has a different way. Do not prodive mixins for [postcss-mixins]. +PostCSS has a different way. Do not provide mixins for [postcss-mixins]. Custom properties and at-rules are better way. [postcss-mixins]: https://github.com/postcss/postcss-mixins From 1d5eb4f1b52b442140c54ea8b5a048be4f288b20 Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Fri, 1 May 2015 16:41:45 +0300 Subject: [PATCH 0231/3047] Typo --- docs/guidelines/plugin.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 321d4f8bb..500edbc05 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -12,7 +12,7 @@ See also [ClojureWerkz’s recommendations] for open source projects. ### 1.1 Clear name with `postcss-` prefix Plugin’s purpose should be clear just by its name. -If you wrote a polyfill for CSS 4 Custom Media, `postcss-cuustom-media` +If you wrote a transpiler for CSS 4 Custom Media, `postcss-custom-media` is a good name. If you wrote a plugin to support mixin, use `postcss-mixins` as name. @@ -70,7 +70,7 @@ different environments (at least on node.js 0.12 and io.js). ### 2.2. Use asynchronous methods when it is possible -For example don’t use `fs.writeFile` instead of `fs.writeFileSync`: +For example, use `fs.writeFile` instead of `fs.writeFileSync`: ```js postcss.plugin('plugin-sprite', function (opts) { From 3f655560fc0ce2b81a8a8252addc97c113d4a09b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 16:46:18 +0300 Subject: [PATCH 0232/3047] Add SemVer to Guidelines --- docs/guidelines/plugin.md | 3 +++ docs/guidelines/runner.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 500edbc05..0bbe0b974 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -172,8 +172,11 @@ PostCSS plugins must describe changes of all releases in a separate file, such as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. Visit [Keep A Changelog] for more information on how to write one of these. +Of course you should use [SemVer]. + [Keep A Changelog]: http://keepachangelog.com/ [GitHub Releases]: https://help.github.com/articles/creating-releases/ +[SemVer]: http://semver.org/ ### 4.4. `postcssplugin` keyword in `package.json` diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 1e0cd14c2..fb3596642 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -129,8 +129,11 @@ PostCSS runners must describe changes of all releases in a separate file, such as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. Visit [Keep A Changelog] for more information on how to write one of these. +Of course you should use [SemVer]. + [Keep A Changelog]: http://keepachangelog.com/ [GitHub Releases]: https://help.github.com/articles/creating-releases/ +[SemVer]: http://semver.org/ ### 4.3. `postcssrunner` keyword in `package.json` From 41ff41aae3817d1f1f8033f14bcd3ef815480882 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 16:56:09 +0300 Subject: [PATCH 0233/3047] Add SemVer to spellchecker dictionary --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index 13b3e0f7a..da8d26edb 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -27,6 +27,7 @@ "IE8", "IE9", "ES6", + "SemVer", "Sass", "Sass’s", "Weibo", From f00c76a84ec4428107313a7bbb368659beb04069 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 23:13:03 +0300 Subject: [PATCH 0234/3047] Change keywords and postcss.plugin example --- docs/guidelines/plugin.md | 7 ++----- docs/guidelines/runner.md | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 0bbe0b974..b22aca095 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -49,14 +49,11 @@ Custom properties and at-rules are better way. This method will create a wrap to provide common plugin API: ```js -var plugin = postcss.plugin('plugin-name', function (opts) { +module.exports = postcss.plugin('plugin-name', function (opts) { return function (css, result) { // Plugin code }; }); - -postcss([ plugin ]) // Bracket-less call -postcss([ plugin(opst) ]) // Brackets call to set options ``` ## 2. Processing @@ -180,7 +177,7 @@ Of course you should use [SemVer]. ### 4.4. `postcssplugin` keyword in `package.json` -PostCSS plugins written for npm must have the `postcssplugin` keyword +PostCSS plugins written for npm must have the `postcss-plugin` keyword in their `package.json`. This special keyword will be useful for feedback about the PostCSS ecosystem. diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index fb3596642..7bdaec452 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -137,7 +137,7 @@ Of course you should use [SemVer]. ### 4.3. `postcssrunner` keyword in `package.json` -PostCSS runners written for npm must have the `postcssrunner` keyword +PostCSS runners written for npm must have the `postcss-runner` keyword in their `package.json`. This special keyword will be useful for feedback about the PostCSS ecosystem. From 3e04c72bad12c25ebef5ccdb098a60cb7cfbf47d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 23:17:47 +0300 Subject: [PATCH 0235/3047] Fix API postcss.plugin example --- docs/api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api.md b/docs/api.md index 3a0b70daf..4482a490b 100644 --- a/docs/api.md +++ b/docs/api.md @@ -72,7 +72,7 @@ Creates PostCSS plugin with standard API. ```js var remove = postcss.plugin('postcss-remove', function (opts) { var filter = opts.prop || 'z-index'; - return function (css, processor) { + return function (css, result) { css.eachDecl(filter, function (decl) { decl.removeSelf(); }); From 9b98a0be996e1fdee63b5923dbbc17a4a92650f4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 1 May 2015 23:56:02 +0300 Subject: [PATCH 0236/3047] Fix keyword title --- docs/guidelines/plugin.md | 2 +- docs/guidelines/runner.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index b22aca095..85d94303b 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -175,7 +175,7 @@ Of course you should use [SemVer]. [GitHub Releases]: https://help.github.com/articles/creating-releases/ [SemVer]: http://semver.org/ -### 4.4. `postcssplugin` keyword in `package.json` +### 4.4. `postcss-plugin` keyword in `package.json` PostCSS plugins written for npm must have the `postcss-plugin` keyword in their `package.json`. This special keyword will be useful for feedback about diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 7bdaec452..aba96a847 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -135,7 +135,7 @@ Of course you should use [SemVer]. [GitHub Releases]: https://help.github.com/articles/creating-releases/ [SemVer]: http://semver.org/ -### 4.3. `postcssrunner` keyword in `package.json` +### 4.3. `postcss-runner` keyword in `package.json` PostCSS runners written for npm must have the `postcss-runner` keyword in their `package.json`. This special keyword will be useful for feedback about From 24eed1a7ff5790e467541808218f8d7aea4fdd8e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 2 May 2015 17:31:31 +0300 Subject: [PATCH 0237/3047] Add postcss-brunch --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d074439e0..9cbdc3b68 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ You need to make 2 steps for using PostCSS: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. -There are plugins for [Grunt], [Gulp], [webpack] and [Broccoli]. +There are plugins for [Grunt], [Gulp], [webpack], [Broccoli] and [Brunch]. ```js gulp.task('css', function () { @@ -139,6 +139,7 @@ Read the [PostCSS API] for more details about JS API. [CLI tool]: https://github.com/code42day/postcss-cli [Broccoli]: https://github.com/jeffjewiss/broccoli-postcss [webpack]: https://github.com/postcss/postcss-loader +[Brunch]: https://github.com/iamvdo/postcss-brunch [Grunt]: https://github.com/nDmitry/grunt-postcss [Gulp]: https://github.com/postcss/gulp-postcss From 9cbdb28011f2df95100d53e055cfebea89328daa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 2 May 2015 17:34:07 +0300 Subject: [PATCH 0238/3047] Add postcss-selector-not plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9cbdc3b68..33134881b 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ Read the [PostCSS API] for more details about JS API. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. * [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. +* [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. * [`mq4-hover-shim`] supports the `@media (hover)` feature. ### Fallbacks @@ -293,6 +294,7 @@ Read the [PostCSS API] for more details about JS API. [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media From 9deee2a377352038b523cb02d463305de2100e09 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 2 May 2015 17:44:55 +0300 Subject: [PATCH 0239/3047] Add postcss-plugin-contect --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 33134881b..4017691cd 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,13 @@ Read the [PostCSS API] for more details about JS API. ## Plugins +### Control + +With [`postcss-plugin-context`] you can run different plugins +on different parts of CSS. + +[`postcss-plugin-context`]: https://github.com/postcss/postcss-plugin-context + ### Packs * [`cssnano`] contains plugins that optimise CSS size for use in production. From 4c43f704e9101eaf992722c0bf56de96bd3c4bb3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 2 May 2015 17:47:48 +0300 Subject: [PATCH 0240/3047] Fix spellchecker warnings --- .yaspellerrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.yaspellerrc b/.yaspellerrc index da8d26edb..e48fd54a6 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -93,6 +93,8 @@ "stylesheets", "stringifier", "CLI", + "CSS3", + "CSS4", "JS", "js", "vs" From 0ed7a0cda40b8d686b426e30303ffa61d10c9d35 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 May 2015 00:57:22 +0300 Subject: [PATCH 0241/3047] Add Plugin Guidelines to README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4017691cd..39e1ab956 100644 --- a/README.md +++ b/README.md @@ -358,8 +358,9 @@ on different parts of CSS. ## How to Develop PostCSS Plugin -* [PostCSS API](https://github.com/postcss/postcss/blob/master/docs/api.md) +* [Plugin Guidelines](https://github.com/postcss/postcss/blob/master/docs/guidelines/plugin.md) * [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) +* [PostCSS API](https://github.com/postcss/postcss/blob/master/docs/api.md) * [Ask questions](https://gitter.im/postcss/postcss) ## Options From 859b34f3a7282eecae5fbc408de920a0c1b84916 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 May 2015 01:48:38 +0300 Subject: [PATCH 0242/3047] Less is able to build a postprocessor --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 39e1ab956..aca49a92f 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,7 @@ As a result, PostCSS offers three main benefits: meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS transforms are often more powerful than - preprocessor equivalents. For example, [Autoprefixer] would be impossible - with preprocessors. + preprocessor equivalents. [Autoprefixer] is a good example. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js From 37cc2fcb462213fbe51ecb011a4e6ae646b6a445 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 May 2015 03:15:16 +0300 Subject: [PATCH 0243/3047] More peaceful third feature --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index aca49a92f..7f9f59f5a 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,12 @@ As a result, PostCSS offers three main benefits: * **Future CSS:** PostCSS plugins can read and rebuild an entire document, meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. -* **New abilities:** PostCSS transforms are often more powerful than +* **New abilities:** PostCSS plugins can read and change every part of CSS. + It makes possible many new classes of tools. [Autoprefixer] + or [`postcss-colorblind`] are a good examples. + + +PostCSS transforms are often more powerful than preprocessor equivalents. [Autoprefixer] is a good example. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js From fc27735796617a6527537bdf33a85f3673c06fe6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 May 2015 14:14:58 +0300 Subject: [PATCH 0244/3047] Add doiuse to example of power --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f9f59f5a..58cd39247 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ As a result, PostCSS offers three main benefits: meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS plugins can read and change every part of CSS. - It makes possible many new classes of tools. [Autoprefixer] + It makes possible many new classes of tools. [Autoprefixer], [`doiuse`] or [`postcss-colorblind`] are a good examples. From 049333eb3479a3c327a5efb84a89b86d46901f84 Mon Sep 17 00:00:00 2001 From: "Michael P. Pfeiffer" Date: Mon, 4 May 2015 13:13:14 +0100 Subject: [PATCH 0245/3047] update readme minor: fixed some typos in the project's readme --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 58cd39247..0e0e014c8 100644 --- a/README.md +++ b/README.md @@ -85,10 +85,10 @@ Or if you like the Sass syntax, you could combine ## Features -Preprocessors are a template languages, when you mix styles with code -(like a PHP with HTML). -In contrast, in PostCSS you write some custom subset of CSS. -All code can be only in JS plugins. +Preprocessors are template languages, where you mix styles with code +(like PHP does with HTML). +In contrast, in PostCSS you write a custom subset of CSS. +All code can only be in JS plugins. As a result, PostCSS offers three main benefits: @@ -98,8 +98,8 @@ As a result, PostCSS offers three main benefits: meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS plugins can read and change every part of CSS. - It makes possible many new classes of tools. [Autoprefixer], [`doiuse`] - or [`postcss-colorblind`] are a good examples. + It makes many new classes of tools possible. [Autoprefixer], [`doiuse`] + or [`postcss-colorblind`] are good examples. PostCSS transforms are often more powerful than @@ -109,7 +109,7 @@ PostCSS transforms are often more powerful than ## Usage -You need to make 2 steps for using PostCSS: +You just need to follow these two steps to be able to use PostCSS: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. @@ -125,7 +125,7 @@ gulp.task('css', function () { }); ``` -For other environments your can use [CLI tool] or JS API: +For other environments your can use the [CLI tool] or the JS API: ```js var postcss = require('postcss'); @@ -137,7 +137,7 @@ postcss([ require('cssnext'), require('cssgrace') ]) }); ``` -Read the [PostCSS API] for more details about JS API. +Read the [PostCSS API] for more details about the JS API. [PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md [CLI tool]: https://github.com/code42day/postcss-cli From 5f884a3f23afb36516b294c9ebcd9ba6926ec184 Mon Sep 17 00:00:00 2001 From: "Michael P. Pfeiffer" Date: Mon, 4 May 2015 14:53:56 +0100 Subject: [PATCH 0246/3047] amended readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0e0e014c8..b5341e48a 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ PostCSS transforms are often more powerful than ## Usage -You just need to follow these two steps to be able to use PostCSS: +You just need to follow these two steps to use PostCSS: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. @@ -125,7 +125,7 @@ gulp.task('css', function () { }); ``` -For other environments your can use the [CLI tool] or the JS API: +For other environments you can use the [CLI tool] or the JS API: ```js var postcss = require('postcss'); From 6bd64928a3bb6c59470192b3565e074a322c0d87 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Mon, 4 May 2015 10:44:11 -0500 Subject: [PATCH 0247/3047] Add postcss-css-variables plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b5341e48a..7fb6a746f 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ on different parts of CSS. * [`postcss-custom-media`] supports custom aliases for media queries. * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. +* [`postcss-css-variables`] supports variables for descendant/nested rules and at-rules * [`postcss-custom-selectors`] adds custom aliases for selectors. * [`postcss-font-variant`] transpiles human-readable `font-variant` to more widely supported CSS. @@ -305,6 +306,7 @@ on different parts of CSS. [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax From 5d1ac1ba3fa1da1bcbe6e602fa097c0fca0558da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 05:59:54 +0300 Subject: [PATCH 0248/3047] Run spellcheck inside Gulp --- gulpfile.js | 15 ++++++++++++++- package.json | 5 +++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 2bcfc0742..d0f6d5240 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -58,6 +58,19 @@ gulp.task('lint', function () { .pipe(eslint.failAfterError()); }); +gulp.task('spellcheck', function (done) { + var gutil = require('gulp-util'); + var run = require('gulp-run'); + + run('yaspeller .').exec() + .on('error', function (err) { + done(new gutil.PluginError('spellcheck', { + showStack: false, + message: err.message + })); + }) + .on('finish', done); +}); // Benchmark @@ -186,4 +199,4 @@ gulp.task('cases', function () { gulp.task('clean', ['build:clean', 'bench:clean']); -gulp.task('default', ['lint', 'test', 'integration']); +gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); diff --git a/package.json b/package.json index c686d1cca..ca537d2de 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.2.2", + "babel-core": "5.2.12", "js-base64": "~2.1.8" }, "devDependencies": { @@ -24,6 +24,7 @@ "gulp-mocha": "2.0.1", "yaspeller": "2.1.0", "gulp-util": "3.0.4", + "gulp-run": "1.6.8", "fs-extra": "0.18.2", "through2": "0.6.5", "request": "2.55.0", @@ -51,6 +52,6 @@ "myth": "1.4.0" }, "scripts": { - "test": "gulp && yaspeller ." + "test": "gulp" } } From 5422b74dbcc88e42227d0d93c269fa156d4c55ee Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 06:09:16 +0300 Subject: [PATCH 0249/3047] Fix line breaks in README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7fb6a746f..585cec89c 100644 --- a/README.md +++ b/README.md @@ -95,15 +95,15 @@ As a result, PostCSS offers three main benefits: * **Performance:** PostCSS, written in JS, is [3 times faster] than libsass, which is written in C++. * **Future CSS:** PostCSS plugins can read and rebuild an entire document, - meaning that they can provide new language features. For example, [cssnext] + meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS plugins can read and change every part of CSS. - It makes many new classes of tools possible. [Autoprefixer], [`doiuse`] + It makes many new classes of tools possible. [Autoprefixer], [`doiuse`] or [`postcss-colorblind`] are good examples. -PostCSS transforms are often more powerful than - preprocessor equivalents. [Autoprefixer] is a good example. +PostCSS transforms are often more powerful than preprocessor equivalents. +[Autoprefixer] is a good example. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js From 9737a0923d0e3e5ffb710a3a7fbe8cd07f619fd8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 06:10:17 +0300 Subject: [PATCH 0250/3047] Remove old text --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 585cec89c..ecc8e010c 100644 --- a/README.md +++ b/README.md @@ -101,10 +101,6 @@ As a result, PostCSS offers three main benefits: It makes many new classes of tools possible. [Autoprefixer], [`doiuse`] or [`postcss-colorblind`] are good examples. - -PostCSS transforms are often more powerful than preprocessor equivalents. -[Autoprefixer] is a good example. - [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js ## Usage From 94732f3bf1d013900850d94c818828511797de14 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 13:29:51 +0300 Subject: [PATCH 0251/3047] Speed up node.clone() --- lib/node.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/node.js b/lib/node.js index 39d1c5b29..45e93ab95 100644 --- a/lib/node.js +++ b/lib/node.js @@ -15,14 +15,14 @@ const defaultStyle = { }; let cloneNode = function (obj, parent) { - if ( typeof obj !== 'object' ) return obj; let cloned = new obj.constructor(); for ( let i in obj ) { if ( !obj.hasOwnProperty(i) ) continue; let value = obj[i]; + let type = typeof value; - if ( i === 'parent' && typeof value === 'object' ) { + if ( i === 'parent' && type === 'object' ) { if (parent) cloned[i] = parent; } else if ( i === 'source' ) { cloned[i] = value; @@ -30,7 +30,8 @@ let cloneNode = function (obj, parent) { cloned[i] = value.map( j => cloneNode(j, cloned) ); } else if ( i !== 'before' && i !== 'after' && i !== 'between' && i !== 'semicolon' ) { - cloned[i] = cloneNode(value, cloned); + if ( type === 'object' ) value = cloneNode(value); + cloned[i] = value; } } From 9dc3af11e583f1f6d49e097b22d9ad9560999782 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 13:31:02 +0300 Subject: [PATCH 0252/3047] Update dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca537d2de..009470fc7 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.2.12", + "babel-core": "5.2.13", "js-base64": "~2.1.8" }, "devDependencies": { From 101499a9ac468391e00f3983dd0319a29edaa6db Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 13:31:36 +0300 Subject: [PATCH 0253/3047] Release 4.1.9 version --- CHANGELOG.md | 5 ++++- package.json | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f42db5511..9850afd06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ +## 4.1.9 +* Speed up `node.clone()`. + ## 4.1.8 -* Accepts `Processor` instance in `postcss()` constructor too. +* Accepts `Processor` instance in `postcss()` constructor too. ## 4.1.7 * Speed up `postcss.list` (by Bogdan Chadkin). diff --git a/package.json b/package.json index 009470fc7..11a05ca9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.8", + "version": "4.1.9", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From ccd171e96b9e753fa48fefac087a27f89d423cbe Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Tue, 5 May 2015 14:39:03 +0200 Subject: [PATCH 0254/3047] Update cssnext homepage url --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ecc8e010c..dec72459f 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Or if you like the Sass syntax, you could combine } ``` -[cssnext]: https://github.com/cssnext/cssnext +[cssnext]: https://cssnext.github.io/ ## Features @@ -160,7 +160,7 @@ on different parts of CSS. to special annotation comments. [`cssnano`]: https://github.com/ben-eb/cssnano -[`cssnext`]: https://github.com/putaindecode/cssnext +[`cssnext`]: https://cssnext.github.io/ [`atcss`]: https://github.com/morishitter/atcss ### Future CSS Syntax From d1c465b4baa4224e0e56b126c03b1528b75b632f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 17:51:41 +0300 Subject: [PATCH 0255/3047] Better check for CssSyntaxError --- docs/guidelines/runner.md | 4 +--- test/css-syntax-error.js | 2 +- test/processor.js | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index aba96a847..66cfc4fac 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -75,10 +75,8 @@ as the runner can be used by developers who are not familiar with JavaScript. Instead, handle such errors gracefully: ```js -var CssSyntaxError = require('postcss/lib/css-syntax-error'); - processor.process(opts).catch(function (error) { - if ( error instanceof CssSyntaxError ) { + if ( error.name === 'CssSyntaxError' ) { process.stderr.write(error.message + error.showSourceCode()); } else { throw error; diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 4224a6652..7d02459e5 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -10,7 +10,7 @@ let parseError = function (css, opts) { try { parse(css, opts); } catch (e) { - if ( e instanceof CssSyntaxError ) { + if ( e.name === 'CssSyntaxError' ) { error = e; } else { throw e; diff --git a/test/processor.js b/test/processor.js index 313c3405a..d960f476d 100644 --- a/test/processor.js +++ b/test/processor.js @@ -107,7 +107,7 @@ describe('Processor', () => { try { (new Processor()).process('a {', { from: 'a.css' }).css; } catch (e) { - if ( e instanceof CssSyntaxError ) { + if ( e.name === 'CssSyntaxError' ) { error = e; } else { throw e; From 6478da6015b0b6a5c3fcd2f3396137fecc0ee933 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 5 May 2015 17:54:02 +0300 Subject: [PATCH 0256/3047] Remove unnecessary import --- test/processor.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/test/processor.js b/test/processor.js index d960f476d..1f56c8abe 100644 --- a/test/processor.js +++ b/test/processor.js @@ -1,10 +1,9 @@ -import CssSyntaxError from '../lib/css-syntax-error'; -import LazyResult from '../lib/lazy-result'; -import Processor from '../lib/processor'; -import postcss from '../lib/postcss'; -import Result from '../lib/result'; -import parse from '../lib/parse'; -import Root from '../lib/root'; +import LazyResult from '../lib/lazy-result'; +import Processor from '../lib/processor'; +import postcss from '../lib/postcss'; +import Result from '../lib/result'; +import parse from '../lib/parse'; +import Root from '../lib/root'; import { expect } from 'chai'; import sinon from 'sinon'; From acfc454e62793ff459bec1918ecf65abc3e99ce4 Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 5 May 2015 19:13:23 +0200 Subject: [PATCH 0257/3047] Add postcss-conditionals plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dec72459f..289482014 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,7 @@ on different parts of CSS. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. * [`postcss-for`] adds `@for` loops. +* [`postcss-conditionals`] adds `@if` statements. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. @@ -303,6 +304,7 @@ on different parts of CSS. [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables +[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax From 2ffc36bfb8f86953ac92bc87aacfbf3cf01cad58 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 6 May 2015 18:06:20 +0300 Subject: [PATCH 0258/3047] Update node-sass to have actual benchmark --- benchmark/general.js | 12 ++++++------ package.json | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/benchmark/general.js b/benchmark/general.js index 0882dd9eb..315f8dbc3 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -1,11 +1,11 @@ -/* Results on Fedora 21, Intel 5Y70, 8 GB RAM and SSD: +/* Results on io.js 2.0, Fedora 21, Intel 5Y70, 8 GB RAM and SSD: -PostCSS: 47 ms +PostCSS: 45 ms Rework: 77 ms (1.7 times slower) -libsass: 128 ms (2.7 times slower) -Less: 157 ms (3.4 times slower) -Stylus: 189 ms (4.1 times slower) -Ruby Sass: 1143 ms (24.5 times slower) +libsass: 134 ms (3.0 times slower) +Less: 160 ms (3.6 times slower) +Stylus: 194 ms (4.4 times slower) +Ruby Sass: 1083 ms (24.3 times slower) */ var exec = require('child_process').exec; diff --git a/package.json b/package.json index 11a05ca9f..3837c01f9 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.2.13", + "babel-core": "5.2.15", "js-base64": "~2.1.8" }, "devDependencies": { @@ -36,16 +36,16 @@ "benchmarkDependencies": { "postcss-simple-vars": "0.2.4", "gulp-bench-summary": "0.1.0", - "stylecow-parser": "2.1.0", + "stylecow-parser": "2.2.1", "postcss-nested": "0.2.2", "postcss-mixins": "0.1.1", "postcss-calc": "4.0.1", "gonzales-pe": "3.0.0-26", "gulp-bench": "1.1.0", - "node-sass": "2.1.1", + "node-sass": "3.0.0", "gonzales": "1.0.7", "mensch": "0.3.1", - "stylus": "0.51.0", + "stylus": "0.51.1", "rework": "1.0.1", "cssom": "0.3.0", "less": "2.5.0", From de608ff422fc610a894c81a100d563300a5b1fef Mon Sep 17 00:00:00 2001 From: John Otander Date: Wed, 6 May 2015 16:31:32 -0600 Subject: [PATCH 0259/3047] Add postcss-cssstats plugin to the readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 289482014..7bbf1cdb6 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ on different parts of CSS. * [`doiuse`] lints CSS for browser support, using data from Can I Use. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. +* [`postcss-cssstats`] returns an object with CSS statistics. [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple @@ -327,6 +328,7 @@ on different parts of CSS. [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing +[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-assets`]: https://github.com/borodean/postcss-assets From c27ae127d95bf6f88621f7aa51cc94761794662f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 7 May 2015 01:34:23 +0300 Subject: [PATCH 0260/3047] Fix plugins order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7bbf1cdb6..b16d0cbc6 100644 --- a/README.md +++ b/README.md @@ -277,12 +277,12 @@ on different parts of CSS. ### Analysis * [`postcss-bem-linter`] lints CSS for conformance to SUIT CSS methodology. +* [`postcss-cssstats`] returns an object with CSS statistics. * [`css2modernizr`] creates a Modernizr config file that requires only the tests that your CSS uses. * [`doiuse`] lints CSS for browser support, using data from Can I Use. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. -* [`postcss-cssstats`] returns an object with CSS statistics. [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple From 9f8faf59358a378a7db724536f9a16cee1963945 Mon Sep 17 00:00:00 2001 From: Simon Smith Date: Thu, 7 May 2015 09:13:09 +0100 Subject: [PATCH 0261/3047] Add postcss-generate-preset --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b16d0cbc6..93880b76c 100644 --- a/README.md +++ b/README.md @@ -254,6 +254,7 @@ on different parts of CSS. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. +* [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. @@ -341,6 +342,7 @@ on different parts of CSS. [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`postcss-focus`]: https://github.com/postcss/postcss-focus [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x +[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker From 2e8735019018e6c6054a178e5df41f8a02578cf5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 7 May 2015 14:01:52 +0300 Subject: [PATCH 0262/3047] Reorder plugin links --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 93880b76c..6cca82e5b 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,7 @@ on different parts of CSS. [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments [`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries +[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values @@ -342,7 +343,6 @@ on different parts of CSS. [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`postcss-focus`]: https://github.com/postcss/postcss-focus [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x -[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker From 2fb88a475ad3b5030dd27dbcf99493ede70c37eb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 8 May 2015 05:04:01 +0300 Subject: [PATCH 0263/3047] Add example to postcss-plugin-context --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 6cca82e5b..20be1b9e4 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,17 @@ Read the [PostCSS API] for more details about the JS API. With [`postcss-plugin-context`] you can run different plugins on different parts of CSS. +```css +.css-example.is-test-for-css4-browsers { + color: gray(255, 50%); +} +@context cssnext { + .css-example.is-fallback-for-all-browsers { + color: gray(255, 50%); + } +} +``` + [`postcss-plugin-context`]: https://github.com/postcss/postcss-plugin-context ### Packs From 033b696f9a1b102767111bc2c51cacb08d2c88ce Mon Sep 17 00:00:00 2001 From: Godfrey Chan Date: Fri, 8 May 2015 12:31:18 -0700 Subject: [PATCH 0264/3047] Add Canadian Style Sheets to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 20be1b9e4..0295d3c8e 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,7 @@ on different parts of CSS. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. +* [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness @@ -296,6 +297,7 @@ on different parts of CSS. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. +[`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates From 449865a9fdb8d2f5330963778c533a45e628e908 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 8 May 2015 23:40:42 +0300 Subject: [PATCH 0265/3047] Fix plugins links indent --- README.md | 156 +++++++++++++++++++++++++++--------------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 0295d3c8e..5c5ef02b1 100644 --- a/README.md +++ b/README.md @@ -298,84 +298,84 @@ on different parts of CSS. for code review. [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets -[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback -[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple -[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates -[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight -[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face -[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties -[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors -[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments -[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors -[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries -[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset -[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha -[`postcss-color-function`]: https://github.com/postcss/postcss-color-function -[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values -[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements -[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset -[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url -[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette -[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty -[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents -[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend -[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables -[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals -[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not -[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit -[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax -[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media -[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings -[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors -[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant -[`postcss-will-change`]: https://github.com/postcss/postcss-will-change -[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules -[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars -[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer -[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family -[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha -[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter -[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray -[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind -[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb -[`postcss-image-set`]: https://github.com/alex499/postcss-image-set -[`postcss-colormin`]: https://github.com/ben-eb/colormin -[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters -[`postcss-messages`]: https://github.com/postcss/postcss-messages -[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing -[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats -[`postcss-easings`]: https://github.com/postcss/postcss-easings -[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity -[`postcss-assets`]: https://github.com/borodean/postcss-assets -[`postcss-import`]: https://github.com/postcss/postcss-import -[`postcss-nested`]: https://github.com/postcss/postcss-nested -[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex -[`postcss-mixins`]: https://github.com/postcss/postcss-mixins -[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim -[`list-selectors`]: https://github.com/davidtheclark/list-selectors -[`css2modernizr`]: https://github.com/vovanbo/css2modernizr -[`postcss-focus`]: https://github.com/postcss/postcss-focus -[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x -[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat -[`autoprefixer`]: https://github.com/postcss/autoprefixer -[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker -[`postcss-epub`]: https://github.com/Rycochet/postcss-epub -[`postcss-calc`]: https://github.com/postcss/postcss-calc -[`postcss-size`]: https://github.com/postcss/postcss-size -[`postcss-host`]: https://github.com/vitkarpov/postcss-host -[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin -[`postcss-url`]: https://github.com/postcss/postcss-url -[`postcss-map`]: https://github.com/pascalduez/postcss-map -[`postcss-for`]: https://github.com/antyakushev/postcss-for -[`css-byebye`]: https://github.com/AoDev/css-byebye -[`cssgrace`]: https://github.com/cssdream/cssgrace -[`csswring`]: https://github.com/hail2u/node-csswring -[`csstyle`]: https://github.com/geddski/csstyle -[`webpcss`]: https://github.com/lexich/webpcss -[`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`pixrem`]: https://github.com/robwierzbowski/node-pixrem -[`doiuse`]: https://github.com/anandthakker/doiuse -[`lost`]: https://github.com/corysimmons/lost +[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback +[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates +[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight +[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face +[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties +[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors +[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments +[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors +[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries +[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset +[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values +[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements +[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url +[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette +[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty +[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents +[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables +[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals +[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit +[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax +[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media +[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings +[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors +[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-will-change`]: https://github.com/postcss/postcss-will-change +[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules +[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer +[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family +[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha +[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter +[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray +[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind +[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`postcss-image-set`]: https://github.com/alex499/postcss-image-set +[`postcss-colormin`]: https://github.com/ben-eb/colormin +[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-messages`]: https://github.com/postcss/postcss-messages +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing +[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-easings`]: https://github.com/postcss/postcss-easings +[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-import`]: https://github.com/postcss/postcss-import +[`postcss-nested`]: https://github.com/postcss/postcss-nested +[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex +[`postcss-mixins`]: https://github.com/postcss/postcss-mixins +[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim +[`list-selectors`]: https://github.com/davidtheclark/list-selectors +[`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`postcss-focus`]: https://github.com/postcss/postcss-focus +[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x +[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat +[`autoprefixer`]: https://github.com/postcss/autoprefixer +[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker +[`postcss-epub`]: https://github.com/Rycochet/postcss-epub +[`postcss-calc`]: https://github.com/postcss/postcss-calc +[`postcss-size`]: https://github.com/postcss/postcss-size +[`postcss-host`]: https://github.com/vitkarpov/postcss-host +[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin +[`postcss-url`]: https://github.com/postcss/postcss-url +[`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-for`]: https://github.com/antyakushev/postcss-for +[`css-byebye`]: https://github.com/AoDev/css-byebye +[`cssgrace`]: https://github.com/cssdream/cssgrace +[`csswring`]: https://github.com/hail2u/node-csswring +[`csstyle`]: https://github.com/geddski/csstyle +[`webpcss`]: https://github.com/lexich/webpcss +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`pixrem`]: https://github.com/robwierzbowski/node-pixrem +[`doiuse`]: https://github.com/anandthakker/doiuse +[`lost`]: https://github.com/corysimmons/lost ## How to Develop PostCSS Plugin From 5204d66bd3044f254bb0426b2928782735dc3265 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 9 May 2015 04:40:49 +0300 Subject: [PATCH 0266/3047] Update PostCSS plugins for benchmark --- benchmark/general.js | 12 ++++++------ package.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/benchmark/general.js b/benchmark/general.js index 315f8dbc3..12eaeee43 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -1,11 +1,11 @@ /* Results on io.js 2.0, Fedora 21, Intel 5Y70, 8 GB RAM and SSD: -PostCSS: 45 ms -Rework: 77 ms (1.7 times slower) -libsass: 134 ms (3.0 times slower) -Less: 160 ms (3.6 times slower) -Stylus: 194 ms (4.4 times slower) -Ruby Sass: 1083 ms (24.3 times slower) +PostCSS: 36 ms +Rework: 77 ms (2.1 times slower) +libsass: 133 ms (3.7 times slower) +Stylus: 167 ms (4.6 times slower) +Less: 194 ms (5.4 times slower) +Ruby Sass: 1084 ms (30.1 times slower) */ var exec = require('child_process').exec; diff --git a/package.json b/package.json index 3837c01f9..ed73dc14c 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.2.15", + "babel-core": "5.2.17", "js-base64": "~2.1.8" }, "devDependencies": { @@ -25,7 +25,7 @@ "yaspeller": "2.1.0", "gulp-util": "3.0.4", "gulp-run": "1.6.8", - "fs-extra": "0.18.2", + "fs-extra": "0.18.3", "through2": "0.6.5", "request": "2.55.0", "sinon": "1.14.1", @@ -34,11 +34,11 @@ "chai": "2.3.0" }, "benchmarkDependencies": { - "postcss-simple-vars": "0.2.4", + "postcss-simple-vars": "0.3.0", "gulp-bench-summary": "0.1.0", - "stylecow-parser": "2.2.1", - "postcss-nested": "0.2.2", - "postcss-mixins": "0.1.1", + "stylecow-parser": "2.2.2", + "postcss-nested": "0.3.1", + "postcss-mixins": "0.2.0", "postcss-calc": "4.0.1", "gonzales-pe": "3.0.0-26", "gulp-bench": "1.1.0", From 5d2dff9caa6702ac91f008e52e5c973f79befcdd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 9 May 2015 18:17:47 +0300 Subject: [PATCH 0267/3047] Add RTLCSS as power example --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5c5ef02b1..7853ab4eb 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,8 @@ As a result, PostCSS offers three main benefits: meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS plugins can read and change every part of CSS. - It makes many new classes of tools possible. [Autoprefixer], [`doiuse`] - or [`postcss-colorblind`] are good examples. + It makes many new classes of tools possible. [Autoprefixer], [`rtlcss`], + [`doiuse`] or [`postcss-colorblind`] are good examples. [3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js From 54e465367ed9331d98741c97b80e180e0a36e8e7 Mon Sep 17 00:00:00 2001 From: David Lewis Date: Sun, 10 May 2015 17:50:07 +1000 Subject: [PATCH 0268/3047] Add Australian Style Sheets to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7853ab4eb..3aba54b80 100644 --- a/README.md +++ b/README.md @@ -271,6 +271,7 @@ on different parts of CSS. ### Others +* [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. @@ -297,6 +298,7 @@ on different parts of CSS. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. +[`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple From 5638118450b5831bc637b4b3a58009dc4a84b4cc Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sun, 10 May 2015 11:23:37 +0100 Subject: [PATCH 0269/3047] Update README indentation. --- README.md | 158 +++++++++++++++++++++++++++--------------------------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 3aba54b80..652351e9b 100644 --- a/README.md +++ b/README.md @@ -299,85 +299,85 @@ on different parts of CSS. for code review. [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets -[`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets -[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback -[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple -[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates -[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight -[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face -[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties -[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors -[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments -[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors -[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries -[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset -[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha -[`postcss-color-function`]: https://github.com/postcss/postcss-color-function -[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values -[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements -[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset -[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url -[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette -[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty -[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents -[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend -[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables -[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals -[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not -[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit -[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax -[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media -[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings -[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors -[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant -[`postcss-will-change`]: https://github.com/postcss/postcss-will-change -[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules -[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars -[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer -[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family -[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha -[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter -[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray -[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind -[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb -[`postcss-image-set`]: https://github.com/alex499/postcss-image-set -[`postcss-colormin`]: https://github.com/ben-eb/colormin -[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters -[`postcss-messages`]: https://github.com/postcss/postcss-messages -[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing -[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats -[`postcss-easings`]: https://github.com/postcss/postcss-easings -[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity -[`postcss-assets`]: https://github.com/borodean/postcss-assets -[`postcss-import`]: https://github.com/postcss/postcss-import -[`postcss-nested`]: https://github.com/postcss/postcss-nested -[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex -[`postcss-mixins`]: https://github.com/postcss/postcss-mixins -[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim -[`list-selectors`]: https://github.com/davidtheclark/list-selectors -[`css2modernizr`]: https://github.com/vovanbo/css2modernizr -[`postcss-focus`]: https://github.com/postcss/postcss-focus -[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x -[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat -[`autoprefixer`]: https://github.com/postcss/autoprefixer -[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker -[`postcss-epub`]: https://github.com/Rycochet/postcss-epub -[`postcss-calc`]: https://github.com/postcss/postcss-calc -[`postcss-size`]: https://github.com/postcss/postcss-size -[`postcss-host`]: https://github.com/vitkarpov/postcss-host -[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin -[`postcss-url`]: https://github.com/postcss/postcss-url -[`postcss-map`]: https://github.com/pascalduez/postcss-map -[`postcss-for`]: https://github.com/antyakushev/postcss-for -[`css-byebye`]: https://github.com/AoDev/css-byebye -[`cssgrace`]: https://github.com/cssdream/cssgrace -[`csswring`]: https://github.com/hail2u/node-csswring -[`csstyle`]: https://github.com/geddski/csstyle -[`webpcss`]: https://github.com/lexich/webpcss -[`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`pixrem`]: https://github.com/robwierzbowski/node-pixrem -[`doiuse`]: https://github.com/anandthakker/doiuse -[`lost`]: https://github.com/corysimmons/lost +[`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets +[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback +[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates +[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight +[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face +[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties +[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors +[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments +[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors +[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries +[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset +[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values +[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements +[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url +[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette +[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty +[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents +[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables +[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals +[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit +[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax +[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media +[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings +[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors +[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-will-change`]: https://github.com/postcss/postcss-will-change +[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules +[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer +[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family +[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha +[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter +[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray +[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind +[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`postcss-image-set`]: https://github.com/alex499/postcss-image-set +[`postcss-colormin`]: https://github.com/ben-eb/colormin +[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-messages`]: https://github.com/postcss/postcss-messages +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing +[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-easings`]: https://github.com/postcss/postcss-easings +[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-import`]: https://github.com/postcss/postcss-import +[`postcss-nested`]: https://github.com/postcss/postcss-nested +[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex +[`postcss-mixins`]: https://github.com/postcss/postcss-mixins +[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim +[`list-selectors`]: https://github.com/davidtheclark/list-selectors +[`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`postcss-focus`]: https://github.com/postcss/postcss-focus +[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x +[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat +[`autoprefixer`]: https://github.com/postcss/autoprefixer +[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker +[`postcss-epub`]: https://github.com/Rycochet/postcss-epub +[`postcss-calc`]: https://github.com/postcss/postcss-calc +[`postcss-size`]: https://github.com/postcss/postcss-size +[`postcss-host`]: https://github.com/vitkarpov/postcss-host +[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin +[`postcss-url`]: https://github.com/postcss/postcss-url +[`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-for`]: https://github.com/antyakushev/postcss-for +[`css-byebye`]: https://github.com/AoDev/css-byebye +[`cssgrace`]: https://github.com/cssdream/cssgrace +[`csswring`]: https://github.com/hail2u/node-csswring +[`csstyle`]: https://github.com/geddski/csstyle +[`webpcss`]: https://github.com/lexich/webpcss +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`pixrem`]: https://github.com/robwierzbowski/node-pixrem +[`doiuse`]: https://github.com/anandthakker/doiuse +[`lost`]: https://github.com/corysimmons/lost ## How to Develop PostCSS Plugin From e8c1b1b5be4ac461bb0af9146125e00e6dc0868f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 10 May 2015 14:51:16 +0300 Subject: [PATCH 0270/3047] Create a Fun category --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 652351e9b..944a731b9 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,8 @@ on different parts of CSS. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`webpcss`] adds URLs for WebP images, so they can be used by browsers that support WebP. +* [`postcss-single-charset`] ensures that there is one + and only one `@charset` rule at the top of file. ### Shortcuts @@ -270,11 +272,8 @@ on different parts of CSS. with one declaration. ### Others - -* [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. -* [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness @@ -283,9 +282,6 @@ on different parts of CSS. in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. -* [`postcss-single-charset`] ensures that there is one - and only one `@charset` rule at the top of file. -* [`postcss-spiffing`] lets you use British English in your CSS * [`rtlcss`] mirrors styles for right-to-left locales. ### Analysis @@ -298,6 +294,12 @@ on different parts of CSS. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. +### Fun + +* [`postcss-australian-stylesheets`] Australian Style Sheets. +* [`postcss-canadian-stylesheets`] Canadian Style Sheets. +* [`postcss-spiffing`] lets you use British English in your CSS. + [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback From 170f280f615cb12294ad8d1b5c92105e33e4ffc1 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sun, 10 May 2015 23:07:25 +0100 Subject: [PATCH 0271/3047] Add postcss-merge-idents. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 652351e9b..bf6fec5ca 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ on different parts of CSS. * [`postcss-discard-font-face`] removes unused `@font-face` declarations. * [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. +* [`postcss-merge-idents`] merges duplicated `@keyframes` with different names. * [`postcss-merge-rules`] merges adjacent rules when selectors/properties overlap. * [`postcss-minify-font-weight`] compresses `font-weight` values. @@ -326,6 +327,7 @@ on different parts of CSS. [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax +[`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media [`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors From 36de407319e9be964816a4b7512e04d5b1c7f3f4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 15:20:42 +0300 Subject: [PATCH 0272/3047] Autofill CssSyntaxError#plugin and fix async errors --- docs/api.md | 5 ++- docs/guidelines/plugin.md | 2 -- lib/css-syntax-error.js | 21 +++++++----- lib/lazy-result.js | 72 ++++++++++++++++++++++++--------------- test/css-syntax-error.js | 41 +++++++++++++++++++--- test/processor.js | 10 ++++-- 6 files changed, 105 insertions(+), 46 deletions(-) diff --git a/docs/api.md b/docs/api.md index 4482a490b..532ecaefa 100644 --- a/docs/api.md +++ b/docs/api.md @@ -705,6 +705,8 @@ Contains PostCSS plugin name if error came not from CSS parser. error.plugin //=> 'postcss-vars' ``` +PostCSS will fill it automatically. + ### `error.file` Contains absolute path to broken file, if use set `from` option to parser. @@ -985,7 +987,7 @@ This method produces very useful error messages. ```js if ( !variables[name] ) { - throw decl.error('Unknown variable ' + name, { plugin: 'postcss-vars' }); + throw decl.error('Unknown variable ' + name); // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black // a // color: $black @@ -999,6 +1001,7 @@ Arguments: * `message (string)`: error description. * `opts (object) optional`: options. * `plugin (string)`: plugin name, that created this error. + PostCSS will set it automatically. See also [`Result#warn()`] for warnings. diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 85d94303b..fe3d46fe1 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -130,8 +130,6 @@ if ( typeof mixins[name] === 'undefined' ) { } ``` -You must set your plugin name in `plugin` options. - ### 3.2. Use `result.warn` for warnings Do not print warnings by `console.warn`, because some PostCSS runner may has diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index d1d1c0bbf..d3f3b5d21 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -5,25 +5,30 @@ export default class CssSyntaxError extends SyntaxError { super(message); this.reason = message; - this.message = plugin ? plugin + ': ' : ''; - this.message += file ? file : ''; + if ( file ) this.file = file; + if ( source ) this.source = source; + if ( plugin ) this.plugin = plugin; if ( typeof line !== 'undefined' && typeof column !== 'undefined' ) { this.line = line; this.column = column; - this.message += ':' + line + ':' + column + ': ' + message; - } else { - this.message += ': ' + message; } - if ( file ) this.file = file; - if ( source ) this.source = source; - if ( plugin ) this.plugin = plugin; + this.setMessage(); if ( Error.captureStackTrace ) { Error.captureStackTrace(this, CssSyntaxError); } } + setMessage() { + this.message = this.plugin ? this.plugin + ': ' : ''; + this.message += this.file ? this.file : ''; + if ( typeof this.line !== 'undefined' ) { + this.message += ':' + this.line + ':' + this.column; + } + this.message += ': ' + this.reason; + } + showSourceCode(color) { if ( !this.source ) return ''; diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 0f3831689..7d43e3222 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -27,7 +27,7 @@ export default class LazyResult { try { root = parse(css, opts); } catch (error) { - this.parseError = error; + this.error = error; } } @@ -74,26 +74,57 @@ export default class LazyResult { return this.async().catch(onRejected); } + handleError(error, plugin) { + this.error = error; + if ( error.name === 'CssSyntaxError' && !error.plugin ) { + error.plugin = plugin.postcssPlugin; + error.setMessage(); + } else if ( plugin.postcssVersion ) { + let pluginName = plugin.postcssPlugin; + let pluginVersion = plugin.postcssVersion; + let runtimeVersion = this.result.processor.version; + let a = pluginVersion.split('.'); + let b = runtimeVersion.split('.'); + + if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { + warnOnce(`${pluginName} is based on ` + + `PostCSS ${pluginVersion} but you use it ` + + `with PostCSS ${runtimeVersion}. ` + + `Maybe this is a source of error below.`); + } + } + } + asyncTick(plugins, resolve, reject) { if ( plugins.length === 0 ) return resolve(); - let promise = this.run(plugins.shift()); - if ( isPromise(promise) ) { - promise.then( () => { + try { + let plugin = plugins.shift(); + let promise = this.run(plugin); + + if ( isPromise(promise) ) { + promise.then( () => { + this.asyncTick(plugins, resolve, reject); + }).catch( (error) => { + this.handleError(error, plugin); + this.processed = true; + reject(error); + }); + } else { this.asyncTick(plugins, resolve, reject); - }).catch( (error) => { - reject(error); - }); - } else { - this.asyncTick(plugins, resolve, reject); + } + + } catch (error) { + this.processed = true; + reject(error); } } async() { if ( this.processed ) { return new Promise( (resolve, reject) => { - if ( this.parseError ) { - reject(this.parseError); + if ( this.error ) { + reject(this.error); } else { resolve(this.stringify()); } @@ -105,7 +136,7 @@ export default class LazyResult { let plugins = this.processor.plugins.slice(0); this.processing = new Promise( (resolve, reject) => { - if ( this.parseError ) return reject(this.parseError); + if ( this.error ) return reject(this.error); this.asyncTick(plugins, resolve, reject); }).then( () => { this.processed = true; @@ -123,7 +154,7 @@ export default class LazyResult { throw 'Use process(css).then(cb) to work with async plugins'; } - if ( this.parseError ) throw this.parseError; + if ( this.error ) throw this.error; for ( let plugin of this.result.processor.plugins ) { let promise = this.run(plugin); @@ -142,20 +173,7 @@ export default class LazyResult { try { returned = plugin(this.result.root, this.result); } catch (error) { - if ( plugin.postcssVersion ) { - let pluginName = plugin.postcssPlugin; - let pluginVersion = plugin.postcssVersion; - let runtimeVersion = this.result.processor.version; - let a = pluginVersion.split('.'); - let b = runtimeVersion.split('.'); - - if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - warnOnce(`${pluginName} is based on ` + - `PostCSS ${pluginVersion} but you use it ` + - `with PostCSS ${runtimeVersion}. ` + - `Maybe this is a source of error below.`); - } - } + this.handleError(error, plugin); throw error; } diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 7d02459e5..163195060 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -1,5 +1,5 @@ import CssSyntaxError from '../lib/css-syntax-error'; -import parse from '../lib/parse'; +import postcss from '../lib/postcss'; import Concat from 'concat-with-sourcemaps'; import { expect } from 'chai'; @@ -8,7 +8,7 @@ import path from 'path'; let parseError = function (css, opts) { let error; try { - parse(css, opts); + postcss.parse(css, opts); } catch (e) { if ( e.name === 'CssSyntaxError' ) { error = e; @@ -112,10 +112,41 @@ describe('CssSyntaxError', () => { }); it('set source plugin', () => { - let error = parse('a{}').first.error('Error', { plugin: 'test' }); - expect(error.plugin).to.eql('test'); + let error = postcss.parse('a{}').first.error('Error', { plugin: 'PL' }); + expect(error.plugin).to.eql('PL'); expect(error.toString()).to.match( - /^CssSyntaxError: test: :1:1: Error/); + /^CssSyntaxError: PL: :1:1: Error/); + }); + + it('set source plugin automatically', (done) => { + let plugin = postcss.plugin('test-plugin', () => { + return (css) => { + throw css.first.error('Error'); + }; + }); + + postcss([plugin]).process('a{}').catch( (error) => { + if ( error.name !== 'CssSyntaxError' ) throw error; + expect(error.plugin).to.eql('test-plugin'); + expect(error.toString()).to.match(/test-plugin/); + done(); + }).catch( (error) => done(error) ); + }); + + it('set plugin automatically in async', (done) => { + let plugin = postcss.plugin('async-plugin', () => { + return (css) => { + return new Promise( (resolve, reject) => { + reject(css.first.error('Error')); + }); + }; + }); + + postcss([plugin]).process('a{}').catch( (error) => { + if ( error.name !== 'CssSyntaxError' ) throw error; + expect(error.plugin).to.eql('async-plugin'); + done(); + }).catch( (error) => done(error) ); }); }); diff --git a/test/processor.js b/test/processor.js index 1f56c8abe..0b051780e 100644 --- a/test/processor.js +++ b/test/processor.js @@ -245,12 +245,16 @@ describe('Processor', () => { reject(error); }); }; - (new Processor([async])).process('').then( () => { + let result = (new Processor([async])).process(''); + result.then( () => { done('should not run then callback'); }).catch(function (err) { expect(err).to.eql(error); - done(); - }); + result.catch(function (err) { + expect(err).to.eql(error); + done(); + }); + }).catch( (error) => done(error) ); }); it('supports sync errors in async mode', (done) => { From c20510d32b97e51a2e3f517e9a54271e5ca69506 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 15:24:50 +0300 Subject: [PATCH 0273/3047] Fix ESLint warnings --- test/processor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/processor.js b/test/processor.js index 0b051780e..fd12e444a 100644 --- a/test/processor.js +++ b/test/processor.js @@ -250,11 +250,11 @@ describe('Processor', () => { done('should not run then callback'); }).catch(function (err) { expect(err).to.eql(error); - result.catch(function (err) { - expect(err).to.eql(error); + result.catch(function (err2) { + expect(err2).to.eql(error); done(); }); - }).catch( (error) => done(error) ); + }).catch( (err) => done(err) ); }); it('supports sync errors in async mode', (done) => { From 0c1e7031aa3ac239f02f7019b0b9e64441d192ff Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 11 May 2015 13:38:20 +0100 Subject: [PATCH 0274/3047] Updated version warning. --- lib/lazy-result.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 7d43e3222..e16fc29b6 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -87,10 +87,9 @@ export default class LazyResult { let b = runtimeVersion.split('.'); if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - warnOnce(`${pluginName} is based on ` + - `PostCSS ${pluginVersion} but you use it ` + - `with PostCSS ${runtimeVersion}. ` + - `Maybe this is a source of error below.`); + warnOnce(`Your current PostCSS version is ${runtimeVersion}` + + `, but ${pluginName} uses ${pluginVersion}. Perhaps ` + + `this is the source of the error below.`); } } } From a7144c87c64074b1cb20a5bebaa1a71888c984c4 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 11 May 2015 15:08:12 +0100 Subject: [PATCH 0275/3047] Update warning test. --- test/processor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/processor.js b/test/processor.js index fd12e444a..91b8451b7 100644 --- a/test/processor.js +++ b/test/processor.js @@ -304,8 +304,8 @@ describe('Processor', () => { expect( () => processBy('1.0.0') ).to.throws('Er'); expect(console.warn.callCount).to.eql(1); expect(console.warn.args[0][0]).to.eql( - 'test is based on PostCSS 2.1.5 but you use it with ' + - 'PostCSS 1.0.0. Maybe this is a source of error below.'); + 'Your current PostCSS version is 1.0.0, but test uses 2.1.5. ' + + 'Perhaps this is the source of the error below.'); expect( () => processBy('3.0.0') ).to.throws('Er'); expect(console.warn.callCount).to.eql(2); From 95aac564789d3d710353119bc13d7b18e0f35e68 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 20:15:53 +0300 Subject: [PATCH 0276/3047] Add postcss-pxtorem plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 56d453fb6..056d731c3 100644 --- a/README.md +++ b/README.md @@ -283,6 +283,7 @@ on different parts of CSS. in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. +* [`postcss-pxtorem`] convert pixel units to rem. * [`rtlcss`] mirrors styles for right-to-left locales. ### Analysis @@ -352,6 +353,7 @@ on different parts of CSS. [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-nested`]: https://github.com/postcss/postcss-nested From 4ebb30434a62752c315ef829b77b8480c406675f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 20:17:52 +0300 Subject: [PATCH 0277/3047] Clean up warning text --- lib/lazy-result.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index e16fc29b6..8f2831ad3 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -87,8 +87,8 @@ export default class LazyResult { let b = runtimeVersion.split('.'); if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - warnOnce(`Your current PostCSS version is ${runtimeVersion}` + - `, but ${pluginName} uses ${pluginVersion}. Perhaps ` + + warnOnce(`Your current PostCSS version is ${runtimeVersion}, ` + + `but ${pluginName} uses ${pluginVersion}. Perhaps ` + `this is the source of the error below.`); } } From b4317c13f36e1b7eabeb71a81d7c5e0dd74583c6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 20:20:23 +0300 Subject: [PATCH 0278/3047] Update dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ed73dc14c..7d5bf83c2 100644 --- a/package.json +++ b/package.json @@ -19,10 +19,10 @@ "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", - "gulp-eslint": "0.11.1", + "gulp-eslint": "0.12.0", "gulp-babel": "5.1.0", "gulp-mocha": "2.0.1", - "yaspeller": "2.1.0", + "yaspeller": "2.2.0", "gulp-util": "3.0.4", "gulp-run": "1.6.8", "fs-extra": "0.18.3", From 6261bb8b12667382ed94773cb256c0384ffabb3a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 20:22:24 +0300 Subject: [PATCH 0279/3047] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 056d731c3..a7738429c 100644 --- a/README.md +++ b/README.md @@ -283,7 +283,7 @@ on different parts of CSS. in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. -* [`postcss-pxtorem`] convert pixel units to rem. +* [`postcss-pxtorem`] convert pixel units to `rem`. * [`rtlcss`] mirrors styles for right-to-left locales. ### Analysis From 471ce7525007e4e81a840e836ba4111a6159eb8a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 20:42:38 +0300 Subject: [PATCH 0280/3047] Add npm-debug.log to .npmignore --- .npmignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.npmignore b/.npmignore index ed26106b3..eb8f0329d 100644 --- a/.npmignore +++ b/.npmignore @@ -11,6 +11,7 @@ test/ origin.css fail.css /postcss.js +npm-debug.log gulpfile.js logo.svg From e9128d7a81f0411d92b4311cfe886130c409583e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 11 May 2015 20:58:41 +0300 Subject: [PATCH 0281/3047] Release 4.1.10 version --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9850afd06..822bd07e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 4.1.10 +* Fix Promise behavior on sync plugin errors. +* Automatically fill `plugin` field in `CssSyntaxError`. +* Fix warning message (by Ben Briggs). + ## 4.1.9 * Speed up `node.clone()`. diff --git a/package.json b/package.json index 7d5bf83c2..2ffad66c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.9", + "version": "4.1.10", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 77ec77c9acb7d9152bb0ef7f199b0151602e1e2c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 12 May 2015 01:03:21 +0300 Subject: [PATCH 0282/3047] Update benchmark dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2ffad66c5..98dcbe148 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ "benchmarkDependencies": { "postcss-simple-vars": "0.3.0", "gulp-bench-summary": "0.1.0", - "stylecow-parser": "2.2.2", + "stylecow-parser": "2.3.1", "postcss-nested": "0.3.1", - "postcss-mixins": "0.2.0", + "postcss-mixins": "0.3.0", "postcss-calc": "4.0.1", "gonzales-pe": "3.0.0-26", "gulp-bench": "1.1.0", From 24b889a8584f23bc0bd694a31d326c62eef8083e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 13 May 2015 15:19:12 +0300 Subject: [PATCH 0283/3047] Update Babel --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 98dcbe148..0ae7888be 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.2.17", + "babel-core": "5.3.1", "js-base64": "~2.1.8" }, "devDependencies": { From 3c0e6d1e8410dfbbe09e226e382c977bf93f5660 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 14 May 2015 00:19:17 +0300 Subject: [PATCH 0284/3047] Add 80 column linter --- .eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index d24d89bdb..dbeac671b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,7 +12,7 @@ "no-unused-vars": [2], "no-loop-func": [0], "key-spacing": [0], - "max-len": [2], + "max-len": [2, 80], "strict": [0], "indent": [2], "quotes": [2, "single", "avoid-escape"], From 4d74d4a4c1f150827cc98602da390ece5c637d3b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 14 May 2015 21:59:56 +0300 Subject: [PATCH 0285/3047] Move HTTP code to load-resources --- .npmignore | 1 - {tasks => benchmark}/compare.js | 0 gulpfile.js | 86 ++++++++++++++++++--------------- package.json | 4 +- tasks/get.js | 48 ------------------ tasks/styles.js | 58 ---------------------- 6 files changed, 48 insertions(+), 149 deletions(-) rename {tasks => benchmark}/compare.js (100%) delete mode 100644 tasks/get.js delete mode 100644 tasks/styles.js diff --git a/.npmignore b/.npmignore index eb8f0329d..257c8dc3b 100644 --- a/.npmignore +++ b/.npmignore @@ -4,7 +4,6 @@ node_modules/ benchmark/ build/ -tasks/ test/ .travis.yml diff --git a/tasks/compare.js b/benchmark/compare.js similarity index 100% rename from tasks/compare.js rename to benchmark/compare.js diff --git a/gulpfile.js b/gulpfile.js index d0f6d5240..8d85f42d9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -48,11 +48,7 @@ gulp.task('build', ['build:lib', 'build:docs', 'build:package']); gulp.task('lint', function () { var eslint = require('gulp-eslint'); - return gulp.src(['*.js', - 'lib/*.js', - 'test/*.js', - 'tasks/*.js', - 'benchmark/**/*.js']) + return gulp.src(['*.js', 'lib/*.js', 'test/*.js', 'benchmark/**/*.js']) .pipe(eslint()) .pipe(eslint.format()) .pipe(eslint.failAfterError()); @@ -82,7 +78,7 @@ gulp.task('bench:clean', function (done) { ['tokenizer', 'parser'].forEach(function (type) { gulp.task('bench:' + type, ['build:lib'], function() { - var compare = require('./tasks/compare'); + var compare = require('./benchmark/compare'); var bench = require('gulp-bench'); var child = require('child_process'); @@ -99,9 +95,9 @@ gulp.task('bench:clean', function (done) { gulp.task('bench:bootstrap', function (done) { if ( fs.existsSync('./benchmark/cache/bootstrap.css') ) return done(); - var get = require('./tasks/get'); - get('github:twbs/bootstrap:dist/css/bootstrap.css', function (css) { - fs.outputFile('./benchmark/cache/bootstrap.css', css, done); + var load = require('load-resources'); + load('github:twbs/bootstrap:dist/css/bootstrap.css', '.css', function (f) { + fs.outputFile('./benchmark/cache/bootstrap.css', f, done); }); }); @@ -125,51 +121,61 @@ gulp.task('bench:parsers', ['build', 'bench:bootstrap'], function () { gulp.task('integration', ['build:lib', 'build:package'], function (done) { var gutil = require('gulp-util'); + var load = require('load-resources'); var postcss = require('./build/lib/postcss'); - var styles = require('./tasks/styles'); - var error = function (message) { + var error = function (url, message) { + gutil.log(gutil.colors.red('Fail on ' + url)); done(new gutil.PluginError('integration', { showStack: false, message: message })); }; - var sites = [ - { GitHub: 'https://github.com/' }, - { Twitter: 'https://twitter.com/' }, - { Bootstrap: 'github:twbs/bootstrap:dist/css/bootstrap.css' }, - { Habrahabr: 'http://habrahabr.ru/' }, - { Browserhacks: 'http://browserhacks.com/' } - ]; - - styles(sites, { - site: function (name) { - gutil.log('Test ' + name + ' styles'); - }, - css: function (css, url) { - var processed; - try { - processed = postcss().process(css, { - map: { annotation: false }, - safe: url.match('browserhacks.com') - }).css; - } catch (e) { - fs.writeFileSync('fail.css', css); - return error('Parsing error: ' + e.message + e.stack); - } + var sites = { + GitHub: 'https://github.com/', + Twitter: 'https://twitter.com/', + Bootstrap: 'github:twbs/bootstrap:dist/css/bootstrap.css', + Habrahabr: 'http://habrahabr.ru/', + Browserhacks: 'http://browserhacks.com/' + }; + var urls = Object.keys(sites).map(function (i) { + return sites[i]; + }); + + var lastDomain = false; + var siteIndex = -1; + + load(urls, '.css', function (css, url, last) { + postcss().process(css, { + map: { annotation: false }, + safe: url.match('browserhacks.com') - if ( processed !== css ) { + }).catch(function (e) { + fs.writeFileSync('fail.css', css); + return error(url, 'Parsing error: ' + e.message + e.stack); + + }).then(function (result) { + if ( !result ) return; + + if ( result.css !== css ) { fs.writeFileSync('origin.css', css); - fs.writeFileSync('fail.css', processed); - return error('Output is not equal input'); + fs.writeFileSync('fail.css', result.css); + error(url, 'Output is not equal input'); + return; } + var domain = url.match(/https?:\/\/[^\/]+/)[0]; + if ( domain !== lastDomain ) { + lastDomain = domain; + siteIndex += 1; + gutil.log('Test ' + Object.keys(sites)[siteIndex] + ' styles'); + } gutil.log(' ' + gutil.colors.green(path.basename(url))); - return true; - }, - done: done + + if ( last ) done(); + }).catch(done); }); }); diff --git a/package.json b/package.json index 0ae7888be..4db868723 100644 --- a/package.json +++ b/package.json @@ -13,12 +13,13 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.3.1", + "babel-core": "5.3.3", "js-base64": "~2.1.8" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", + "load-resources": "0.1.0", "gulp-eslint": "0.12.0", "gulp-babel": "5.1.0", "gulp-mocha": "2.0.1", @@ -27,7 +28,6 @@ "gulp-run": "1.6.8", "fs-extra": "0.18.3", "through2": "0.6.5", - "request": "2.55.0", "sinon": "1.14.1", "mocha": "2.2.4", "gulp": "3.8.11", diff --git a/tasks/get.js b/tasks/get.js deleted file mode 100644 index 4cb8258c9..000000000 --- a/tasks/get.js +++ /dev/null @@ -1,48 +0,0 @@ -var request = require('request'); -var zlib = require('zlib'); - -var load = function (url, callback, errors) { - request.get({ - url: url, - headers: { 'accept-encoding': 'gzip,deflate' } - }).on('error', function (error) { - if ( errors > 2 ) throw error; - console.error(error.toString()); - load(url, callback, (errors || 1) + 1); - }).on('response', function (res) { - callback(res); - }); -}; - -module.exports = function (url, callback) { - if ( url.match(/^github:/) ) { - var p = url.split(':'); - url = 'https://raw.githubusercontent.com/' + p[1] + '/master/' + p[2]; - } - - load(url, function (res) { - var chunks = []; - res.on('data', function (i) { - chunks.push(i); - }); - res.on('end', function () { - var buffer = Buffer.concat(chunks); - - if ( res.headers['content-encoding'] === 'gzip' ) { - zlib.gunzip(buffer, function (err, decoded) { - if ( err ) throw err; - callback(decoded.toString()); - }); - - } else if ( res.headers['content-encoding'] === 'deflate' ) { - zlib.inflate(buffer, function (err, decoded) { - if ( err ) throw err; - callback(decoded.toString()); - }); - - } else { - callback(buffer.toString()); - } - }); - }); -}; diff --git a/tasks/styles.js b/tasks/styles.js deleted file mode 100644 index d3dbf4a77..000000000 --- a/tasks/styles.js +++ /dev/null @@ -1,58 +0,0 @@ -var get = require('./get'); - -var findStyles = function (url, callback) { - if ( url.match(/\.css$/) ) { - callback([url]); - return; - } - - get(url, function (html) { - var files = html.match(/[^"]+\.css("|')/g); - if ( !files ) throw "Can't find CSS links at " + url; - files = files.map(function(path) { - path = path.slice(0, -1); - if ( path.match(/^https?:/) ) { - return path; - } else { - return path.replace(/^\.?\.?\/?/, url); - } - }); - callback(files); - }); -}; - -module.exports = function (sites, callbacks) { - var nextLink, nextSite; - - var links = []; - nextLink = function () { - if ( links.length === 0 ) { - nextSite(); - return; - } - - var url = links.shift(); - get(url, function (css) { - if ( callbacks.css(css, url) ) { - nextLink(); - } - }); - }; - - nextSite = function () { - if ( sites.length === 0 ) { - callbacks.done(); - return; - } - var site = sites.shift(); - var name = Object.keys(site)[0]; - callbacks.site(name); - - findStyles(site[name], function (files) { - links = files; - nextLink(); - }); - }; - - nextSite(); -}; From 746f8c1c1532081e413c3d7208fd8091b2a4ad60 Mon Sep 17 00:00:00 2001 From: Masaaki Morishita Date: Fri, 15 May 2015 15:32:53 +0900 Subject: [PATCH 0286/3047] Add postcss-style-guide to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a7738429c..e0ef5d2f0 100644 --- a/README.md +++ b/README.md @@ -284,6 +284,7 @@ on different parts of CSS. * [`postcss-messages`] displays warning messages from other plugins right in your browser. * [`postcss-pxtorem`] convert pixel units to `rem`. +* [`postcss-style-guide`] generate a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. ### Analysis @@ -384,6 +385,7 @@ on different parts of CSS. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost +[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide ## How to Develop PostCSS Plugin From 93065bf35ee7febbe59e446384177dd95e6c2adf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 15 May 2015 12:14:31 +0300 Subject: [PATCH 0287/3047] Fix plugins link order --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e0ef5d2f0..9c5d92a20 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,7 @@ on different parts of CSS. with one declaration. ### Others + * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. @@ -336,6 +337,7 @@ on different parts of CSS. [`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars @@ -385,7 +387,6 @@ on different parts of CSS. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost -[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide ## How to Develop PostCSS Plugin From f0ba0163f22fd62a1d3bae4e9829775fa6af50b9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 15 May 2015 13:17:18 +0300 Subject: [PATCH 0288/3047] Fix holy 80 columns line --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c5d92a20..cada18c17 100644 --- a/README.md +++ b/README.md @@ -268,7 +268,8 @@ on different parts of CSS. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. -* [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. +* [`postcss-generate-preset`] allows quick generation of rules. + Useful for creating repetitive utilities. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. From 80bbbcc330c0eb72552da8f4b1a4f34c25063b6c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 15 May 2015 13:28:19 +0300 Subject: [PATCH 0289/3047] Add Stylecow to general benchmark --- benchmark/general.js | 34 +++++++++++++++++++++++++++++----- benchmark/parsers.js | 2 +- package.json | 10 +++++----- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/benchmark/general.js b/benchmark/general.js index 12eaeee43..ea52c1502 100644 --- a/benchmark/general.js +++ b/benchmark/general.js @@ -2,9 +2,10 @@ PostCSS: 36 ms Rework: 77 ms (2.1 times slower) -libsass: 133 ms (3.7 times slower) +libsass: 136 ms (3.8 times slower) +Less: 160 ms (4.4 times slower) Stylus: 167 ms (4.6 times slower) -Less: 194 ms (5.4 times slower) +Stylecow: 208 ms (5.7 times slower) Ruby Sass: 1084 ms (30.1 times slower) */ @@ -39,14 +40,26 @@ for ( var i = 0; i < 100; i++ ) { // Myth var myth = require('myth'); var rcss = css; -rcss += ':root { --name: 100px; }'; +rcss += ':root { --size: 100px; }'; for ( var i = 0; i < 100; i++ ) { rcss += 'body h1 a { color: black; }'; - rcss += 'h2 { width: $size; }'; - rcss += 'h1 { width: calc(2 * $size); }'; + rcss += 'h2 { width: var(--size); }'; + rcss += 'h1 { width: calc(2 * var(--size)); }'; rcss += '.search { fill: black; width: 16px; height: 16px; }'; } +// Stylecow +var stylecow = require('stylecow'); +stylecow.loadPlugin('variables').loadPlugin('nested-rules').loadPlugin('calc'); +var cowcss = css; +cowcss += ':root { --size: 100px; }'; +for ( var i = 0; i < 100; i++ ) { + cowcss += 'body { h1 { a { color: black; } } }'; + cowcss += 'h2 { width: var(--size); }'; + cowcss += 'h1 { width: calc(2 * var(--size)); }'; + cowcss += '.search { fill: black; width: 16px; height: 16px; }'; +} + // Sass var libsass = require('node-sass'); var scss = css; @@ -112,6 +125,17 @@ module.exports = { }); } }, + { + name: 'Stylecow', + defer: true, + fn: function (done) { + var file = new stylecow.Reader(new stylecow.Tokens(cowcss)); + var ast = stylecow.Root.create(file); + stylecow.run(ast); + ast.toString(); + done.resolve(); + } + }, { name: 'Stylus', defer: true, diff --git a/benchmark/parsers.js b/benchmark/parsers.js index 7eb467873..94d8918cb 100644 --- a/benchmark/parsers.js +++ b/benchmark/parsers.js @@ -19,7 +19,7 @@ var CSSOM = require('cssom'); var rework = require('rework'); var mensch = require('mensch'); var postcss = require('../build'); -var stylecow = require('stylecow-parser'); +var stylecow = require('stylecow'); var gonzales = require('gonzales'); var gonzalesPe = require('gonzales-pe'); diff --git a/package.json b/package.json index 4db868723..1c6ef70df 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.3.3", + "babel-core": "5.4.2", "js-base64": "~2.1.8" }, "devDependencies": { @@ -29,20 +29,20 @@ "fs-extra": "0.18.3", "through2": "0.6.5", "sinon": "1.14.1", - "mocha": "2.2.4", + "mocha": "2.2.5", "gulp": "3.8.11", "chai": "2.3.0" }, "benchmarkDependencies": { "postcss-simple-vars": "0.3.0", "gulp-bench-summary": "0.1.0", - "stylecow-parser": "2.3.1", "postcss-nested": "0.3.1", "postcss-mixins": "0.3.0", "postcss-calc": "4.0.1", - "gonzales-pe": "3.0.0-26", + "gonzales-pe": "3.0.0-27", "gulp-bench": "1.1.0", - "node-sass": "3.0.0", + "node-sass": "3.1.1", + "stylecow": "6.5.0", "gonzales": "1.0.7", "mensch": "0.3.1", "stylus": "0.51.1", From 252363d76f41fcb5d0cdd11fdf952768c2712bb5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 16 May 2015 11:01:26 +0300 Subject: [PATCH 0290/3047] Remove benchmark to separated repo --- .gitignore | 2 - .npmignore | 1 - .yaspellerrc | 2 +- README.md | 2 +- benchmark/Gemfile | 3 - benchmark/Gemfile.lock | 10 --- benchmark/compare.js | 48 ------------ benchmark/general.js | 173 ----------------------------------------- benchmark/parser.js | 20 ----- benchmark/parsers.js | 76 ------------------ benchmark/test.css | 82 ------------------- benchmark/tokenizer.js | 16 ---- gulpfile.js | 66 ++-------------- package.json | 19 ----- 14 files changed, 9 insertions(+), 511 deletions(-) delete mode 100644 benchmark/Gemfile delete mode 100644 benchmark/Gemfile.lock delete mode 100644 benchmark/compare.js delete mode 100644 benchmark/general.js delete mode 100644 benchmark/parser.js delete mode 100644 benchmark/parsers.js delete mode 100644 benchmark/test.css delete mode 100644 benchmark/tokenizer.js diff --git a/.gitignore b/.gitignore index c81fb4f4f..3282aff5d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,6 @@ node_modules/ .bundle/ -benchmark/results/ -benchmark/cache/ build/ npm-debug.log diff --git a/.npmignore b/.npmignore index 257c8dc3b..1dc8e3b23 100644 --- a/.npmignore +++ b/.npmignore @@ -2,7 +2,6 @@ node_modules/ -benchmark/ build/ test/ diff --git a/.yaspellerrc b/.yaspellerrc index e48fd54a6..b404daee7 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -2,7 +2,7 @@ "lang": "en", "format": "markdown", "fileExtensions": [".md"], - "excludeFiles": [".git", "node_modules", "benchmark/.bundle", "build"], + "excludeFiles": [".git", "node_modules", "build"], "ignoreCapitalization": true, "dictionary": [ "6to5", diff --git a/README.md b/README.md index cada18c17..ad8ba5958 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ As a result, PostCSS offers three main benefits: It makes many new classes of tools possible. [Autoprefixer], [`rtlcss`], [`doiuse`] or [`postcss-colorblind`] are good examples. -[3 times faster]: https://github.com/postcss/postcss/blob/master/benchmark/general.js +[3 times faster]: https://github.com/postcss/benchmark ## Usage diff --git a/benchmark/Gemfile b/benchmark/Gemfile deleted file mode 100644 index 33311605c..000000000 --- a/benchmark/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem 'sass' diff --git a/benchmark/Gemfile.lock b/benchmark/Gemfile.lock deleted file mode 100644 index 04731e67a..000000000 --- a/benchmark/Gemfile.lock +++ /dev/null @@ -1,10 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - sass (3.4.13) - -PLATFORMS - ruby - -DEPENDENCIES - sass diff --git a/benchmark/compare.js b/benchmark/compare.js deleted file mode 100644 index ab5a89fc4..000000000 --- a/benchmark/compare.js +++ /dev/null @@ -1,48 +0,0 @@ -var through = require('through2'); -var gutil = require('gulp-util'); -var path = require('path'); -var gulp = require('gulp'); - -function compare(prev, current) { - var prevName = path.basename(prev.file, '.json'); - var currentName = path.basename(current.file, '.json'); - prev = prev.contents[0].hz; - current = current.contents[0].hz; - if ( current > prev ) { - gutil.log(currentName, 'is', - gutil.colors.green( (current / prev).toFixed(2) + ' times faster'), - 'that', prevName); - } else { - gutil.log(currentName, 'is', - gutil.colors.red( (prev / current).toFixed(2) + ' times slower'), - 'that', prevName); - } -} - -function result(buff) { - return { - contents: JSON.parse(buff.contents.toString()), - file: path.basename(buff.path) - }; -} - -function pipe(file, alldone) { - var current = result(file); - - return through.obj(function (prevFile, type, done) { - var prev = result(prevFile); - compare(prev, current); - done(); - }, function (callback) { - alldone(); - callback(); - }); -} - -module.exports = function(name) { - return through.obj(function (file, type, done) { - gulp.src(['!benchmark/results/' + name + '.json', - 'benchmark/results/*.json']).pipe( pipe(file, done) ); - this.push(file); - }); -}; diff --git a/benchmark/general.js b/benchmark/general.js deleted file mode 100644 index ea52c1502..000000000 --- a/benchmark/general.js +++ /dev/null @@ -1,173 +0,0 @@ -/* Results on io.js 2.0, Fedora 21, Intel 5Y70, 8 GB RAM and SSD: - -PostCSS: 36 ms -Rework: 77 ms (2.1 times slower) -libsass: 136 ms (3.8 times slower) -Less: 160 ms (4.4 times slower) -Stylus: 167 ms (4.6 times slower) -Stylecow: 208 ms (5.7 times slower) -Ruby Sass: 1084 ms (30.1 times slower) -*/ - -var exec = require('child_process').exec; -var path = require('path'); -var fs = require('fs'); - -var example = path.join(__dirname, 'cache', 'bootstrap.css'); -var css = fs.readFileSync(example).toString(); - -css = css.replace(/\s+filter:[^;\}]+;?/g, ''); -css = css.replace('/*# sourceMappingURL=bootstrap.css.map */', ''); - -// PostCSS -var postcss = require('../build'); -var processor = postcss([ - require('postcss-nested'), - require('postcss-simple-vars'), - require('postcss-calc')(), - require('postcss-mixins') -]); -var pcss = css; -pcss += '$size: 100px;'; -pcss += '@define-mixin icon { width: 16px; height: 16px; }'; -for ( var i = 0; i < 100; i++ ) { - pcss += 'body { h1 { a { color: black; } } }'; - pcss += 'h2 { width: $size; }'; - pcss += 'h1 { width: calc(2 * $size); }'; - pcss += '.search { fill: black; @mixin icon; }'; -} - -// Myth -var myth = require('myth'); -var rcss = css; -rcss += ':root { --size: 100px; }'; -for ( var i = 0; i < 100; i++ ) { - rcss += 'body h1 a { color: black; }'; - rcss += 'h2 { width: var(--size); }'; - rcss += 'h1 { width: calc(2 * var(--size)); }'; - rcss += '.search { fill: black; width: 16px; height: 16px; }'; -} - -// Stylecow -var stylecow = require('stylecow'); -stylecow.loadPlugin('variables').loadPlugin('nested-rules').loadPlugin('calc'); -var cowcss = css; -cowcss += ':root { --size: 100px; }'; -for ( var i = 0; i < 100; i++ ) { - cowcss += 'body { h1 { a { color: black; } } }'; - cowcss += 'h2 { width: var(--size); }'; - cowcss += 'h1 { width: calc(2 * var(--size)); }'; - cowcss += '.search { fill: black; width: 16px; height: 16px; }'; -} - -// Sass -var libsass = require('node-sass'); -var scss = css; -scss += '$size: 100px;'; -scss += '@mixin icon { width: 16px; height: 16px; }'; -for ( var i = 0; i < 100; i++ ) { - scss += 'body { h1 { a { color: black; } } }'; - scss += 'h2 { width: $size; }'; - scss += 'h1 { width: 2 * $size; }'; - scss += '.search { fill: black; @include icon; }'; -} -var scssFile = path.join(__dirname, 'cache', 'bootstrap.scss'); -fs.writeFileSync(scssFile, scss); - -// Stylus -var stylus = require('stylus'); -var styl = css; -styl += 'size = 100px;'; -styl += 'icon() { width: 16px; height: 16px; }'; -for ( var i = 0; i < 100; i++ ) { - styl += 'body { h1 { a { color: black; } } }'; - styl += 'h2 { width: size; }'; - styl += 'h1 { width: 2 * size; }'; - styl += '.search { fill: black; icon(); }'; -} - -// Less -var less = require('less'); -var lcss = css; -lcss += '@size: 100px;'; -lcss += '.icon() { width: 16px; height: 16px; }'; -for ( var i = 0; i < 100; i++ ) { - lcss += 'body { h1 { a { color: black; } } }'; - lcss += 'h2 { width: @size; }'; - lcss += 'h1 { width: 2 * @size; }'; - lcss += '.search { fill: black; .icon() }'; -} - -module.exports = { - name: 'Bootstrap', - maxTime: 15, - tests: [ - { - name: 'libsass', - fn: function () { - libsass.renderSync({ data: scss }); - } - }, - { - name: 'Rework', - defer: true, - fn: function (done) { - myth(rcss, { features: { prefixes: false } }); - done.resolve(); - } - }, - { - name: 'PostCSS', - defer: true, - fn: function (done) { - processor.process(pcss, { map: false }).then(function () { - done.resolve(); - }); - } - }, - { - name: 'Stylecow', - defer: true, - fn: function (done) { - var file = new stylecow.Reader(new stylecow.Tokens(cowcss)); - var ast = stylecow.Root.create(file); - stylecow.run(ast); - ast.toString(); - done.resolve(); - } - }, - { - name: 'Stylus', - defer: true, - fn: function (done) { - stylus.render(styl, { filename: example }, function (err) { - if ( err ) throw err; - done.resolve(); - }); - } - }, - { - name: 'Less', - defer: true, - fn: function (done) { - less.render(lcss, function (err) { - if ( err ) throw err; - done.resolve(); - }); - } - }, - { - name: 'Ruby Sass', - defer: true, - fn: function (done) { - var command = 'sass -C --sourcemap=none ' + scssFile; - var dir = __dirname; - exec('cd ' + dir + '; bundle exec ' + command, - function (error, stdout, stderr) { - if ( error ) throw stderr; - done.resolve(); - }); - } - } - ] -}; diff --git a/benchmark/parser.js b/benchmark/parser.js deleted file mode 100644 index 3aa3bf241..000000000 --- a/benchmark/parser.js +++ /dev/null @@ -1,20 +0,0 @@ -var path = require('path'); -var fs = require('fs'); - -var tokenizer = require('../build/lib/tokenize'); -var Parser = require('../build/lib/parser'); -var Input = require('../build/lib/input'); - -var css = fs.readFileSync(path.join(__dirname, 'test.css')); -var input = new Input(css); -var tokens = tokenizer(input); - -module.exports = { - fn: function () { - var parser = new Parser(input); - parser.tokens = tokens.slice(); - parser.loop(); - }, - maxTime: 15, - name: 'Parser' -}; diff --git a/benchmark/parsers.js b/benchmark/parsers.js deleted file mode 100644 index 94d8918cb..000000000 --- a/benchmark/parsers.js +++ /dev/null @@ -1,76 +0,0 @@ -/* Results on Fedora 21, Intel 5Y70, 8 GB RAM and SSD: - -PostCSS: 37 ms -CSSOM: 38 ms (1.0 times slower) -Mensch: 39 ms (1.0 times slower) -Rework: 67 ms (1.8 times slower) -Stylecow: 120 ms (3.2 times slower) -Gonzales: 173 ms (4.6 times slower) -Gonzales PE: 935 ms (25.0 times slower) -*/ - -var path = require('path'); -var fs = require('fs'); - -var example = path.join(__dirname, 'cache', 'bootstrap.css'); -var css = fs.readFileSync(example).toString(); - -var CSSOM = require('cssom'); -var rework = require('rework'); -var mensch = require('mensch'); -var postcss = require('../build'); -var stylecow = require('stylecow'); -var gonzales = require('gonzales'); -var gonzalesPe = require('gonzales-pe'); - -module.exports = { - name: 'Bootstrap', - maxTime: 15, - tests: [ - { - name: 'Rework', - fn: function () { - rework(css).toString(); - } - }, - { - name: 'PostCSS', - defer: true, - fn: function (done) { - postcss.parse(css, { from: example }).toResult(); - done.resolve(); - } - }, - { - name: 'CSSOM', - fn: function () { - CSSOM.parse(css).toString(); - } - }, - { - name: 'Mensch', - fn: function () { - mensch.stringify( mensch.parse(css) ); - } - }, - { - name: 'Gonzales', - fn: function () { - gonzales.csspToSrc( gonzales.srcToCSSP(css) ); - } - }, - { - name: 'Gonzales PE', - fn: function () { - gonzalesPe.parse(css).toString(); - } - }, - { - name: 'Stylecow', - fn: function () { - var file = new stylecow.Reader(new stylecow.Tokens(css)); - stylecow.Root.create(file).toString(); - } - } - ] -}; diff --git a/benchmark/test.css b/benchmark/test.css deleted file mode 100644 index 7a43b5279..000000000 --- a/benchmark/test.css +++ /dev/null @@ -1,82 +0,0 @@ -@charset "UTF-8"; - -/** - * Timeline component - */ -.timeline { - width: 100%; - height: 178px; - position: absolute; - left: 0; - bottom: 0; - z-index: 1000; - font-size: 12px; -} -.timeline::after { - content: ""; - clear: both; -} -.timeline_icon { - color: white; -} -.timeline_icon::after { - content: "A"; - font-family: Icons; -} -.timeline_wrapper { - position: relative; - transition-property: bottom; - transition-duration: 0.5s; -} -.timeline_toggler { - text-align: center; -} -.timeline_container { - width: 100%; - height: 110px; -} -.timeline_status-bar { - background: rgba(17, 17, 17, 0.4); -} -.timeline_date .active-day, -.timeline_date .active-month, -.timeline_date .active-year { - height: 30px; - position: absolute; - height: 18px; - border: thin solid #fff; - background-color: rgba(255, 255, 255, 0.1); - border-radius: 4px; - transition-property: left; - transition-duration: .25s; -} -.timeline_date .active-day { - width: 3.22%; -} -.timeline_date .active-month, .timeline_date .active-year { - width: 8.3%; -} -.timeline_date ul { - padding: 0; -} -.timeline_date ul li { - text-align: center; - display: inline-block; -} - -/** - * Fading animation - */ -@supports (opacity: 0) { - .timeline.is-hidden { - animation: fading; - } - @keyframes fading { - from { - opacity: 1; - } - to { - opacity: 0; - } - } -} diff --git a/benchmark/tokenizer.js b/benchmark/tokenizer.js deleted file mode 100644 index 6d4a741e2..000000000 --- a/benchmark/tokenizer.js +++ /dev/null @@ -1,16 +0,0 @@ -var path = require('path'); -var fs = require('fs'); - -var tokenizer = require('../build/lib/tokenize'); -var Input = require('../build/lib/input'); - -var css = fs.readFileSync(path.join(__dirname, 'test.css')); -var input = new Input(css); - -module.exports = { - fn: function () { - tokenizer(input); - }, - maxTime: 15, - name: 'Tokenizer' -}; diff --git a/gulpfile.js b/gulpfile.js index 8d85f42d9..e74e6c44e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,15 +2,15 @@ var gulp = require('gulp'); var path = require('path'); var fs = require('fs-extra'); -// Build - -gulp.task('build:clean', function (done) { +gulp.task('clean', function (done) { fs.remove(path.join(__dirname, 'postcss.js'), function () { fs.remove(path.join(__dirname, 'build'), done); }); }); -gulp.task('build:lib', ['build:clean'], function () { +// Build + +gulp.task('build:lib', ['clean'], function () { var babel = require('gulp-babel'); return gulp.src('lib/*.js') @@ -18,7 +18,7 @@ gulp.task('build:lib', ['build:clean'], function () { .pipe(gulp.dest('build/lib')); }); -gulp.task('build:docs', ['build:clean'], function () { +gulp.task('build:docs', ['clean'], function () { var ignore = require('fs').readFileSync('.npmignore').toString() .trim().split(/\n+/) .concat(['.npmignore', 'index.js', 'package.json']) @@ -28,7 +28,7 @@ gulp.task('build:docs', ['build:clean'], function () { .pipe(gulp.dest('build')); }); -gulp.task('build:package', ['build:clean'], function () { +gulp.task('build:package', ['clean'], function () { var editor = require('gulp-json-editor'); gulp.src('./package.json') @@ -47,8 +47,7 @@ gulp.task('build', ['build:lib', 'build:docs', 'build:package']); gulp.task('lint', function () { var eslint = require('gulp-eslint'); - - return gulp.src(['*.js', 'lib/*.js', 'test/*.js', 'benchmark/**/*.js']) + return gulp.src(['*.js', 'lib/*.js', 'test/*.js']) .pipe(eslint()) .pipe(eslint.format()) .pipe(eslint.failAfterError()); @@ -68,55 +67,6 @@ gulp.task('spellcheck', function (done) { .on('finish', done); }); -// Benchmark - -gulp.task('bench:clean', function (done) { - fs.remove(path.join(__dirname, '/benchmark/results'), function () { - fs.remove(path.join(__dirname, '/benchmark/cache'), done); - }); -}); - -['tokenizer', 'parser'].forEach(function (type) { - gulp.task('bench:' + type, ['build:lib'], function() { - var compare = require('./benchmark/compare'); - var bench = require('gulp-bench'); - var child = require('child_process'); - - var status = child.execSync('git status --porcelain').toString().trim(); - var name = status === '' ? 'master' : 'current'; - - return gulp.src('./benchmark/' + type + '.js', { read: false }) - .pipe(bench({ outputFormat: 'json', output: name + '.json' })) - .pipe(compare(name)) - .pipe(gulp.dest('./benchmark/results')); - }); -}); - -gulp.task('bench:bootstrap', function (done) { - if ( fs.existsSync('./benchmark/cache/bootstrap.css') ) return done(); - - var load = require('load-resources'); - load('github:twbs/bootstrap:dist/css/bootstrap.css', '.css', function (f) { - fs.outputFile('./benchmark/cache/bootstrap.css', f, done); - }); -}); - -gulp.task('bench', ['build', 'bench:bootstrap'], function () { - var bench = require('gulp-bench'); - var summary = require('gulp-bench-summary'); - return gulp.src('./benchmark/general.js', { read: false }) - .pipe(bench()) - .pipe(summary('PostCSS')); -}); - -gulp.task('bench:parsers', ['build', 'bench:bootstrap'], function () { - var bench = require('gulp-bench'); - var summary = require('gulp-bench-summary'); - return gulp.src('./benchmark/parsers.js', { read: false }) - .pipe(bench()) - .pipe(summary('PostCSS')); -}); - // Tests gulp.task('integration', ['build:lib', 'build:package'], function (done) { @@ -203,6 +153,4 @@ gulp.task('cases', function () { // Common -gulp.task('clean', ['build:clean', 'bench:clean']); - gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); diff --git a/package.json b/package.json index 1c6ef70df..2db30bd5c 100644 --- a/package.json +++ b/package.json @@ -27,30 +27,11 @@ "gulp-util": "3.0.4", "gulp-run": "1.6.8", "fs-extra": "0.18.3", - "through2": "0.6.5", "sinon": "1.14.1", "mocha": "2.2.5", "gulp": "3.8.11", "chai": "2.3.0" }, - "benchmarkDependencies": { - "postcss-simple-vars": "0.3.0", - "gulp-bench-summary": "0.1.0", - "postcss-nested": "0.3.1", - "postcss-mixins": "0.3.0", - "postcss-calc": "4.0.1", - "gonzales-pe": "3.0.0-27", - "gulp-bench": "1.1.0", - "node-sass": "3.1.1", - "stylecow": "6.5.0", - "gonzales": "1.0.7", - "mensch": "0.3.1", - "stylus": "0.51.1", - "rework": "1.0.1", - "cssom": "0.3.0", - "less": "2.5.0", - "myth": "1.4.0" - }, "scripts": { "test": "gulp" } From baff66b8d1a74e6e2cf6de787fb890078bb022a0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 16 May 2015 16:15:18 +0300 Subject: [PATCH 0291/3047] Prevent hiding error on wrong plugin format --- lib/lazy-result.js | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 8f2831ad3..441660826 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -75,22 +75,26 @@ export default class LazyResult { } handleError(error, plugin) { - this.error = error; - if ( error.name === 'CssSyntaxError' && !error.plugin ) { - error.plugin = plugin.postcssPlugin; - error.setMessage(); - } else if ( plugin.postcssVersion ) { - let pluginName = plugin.postcssPlugin; - let pluginVersion = plugin.postcssVersion; - let runtimeVersion = this.result.processor.version; - let a = pluginVersion.split('.'); - let b = runtimeVersion.split('.'); - - if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { - warnOnce(`Your current PostCSS version is ${runtimeVersion}, ` + - `but ${pluginName} uses ${pluginVersion}. Perhaps ` + - `this is the source of the error below.`); + try { + this.error = error; + if ( error.name === 'CssSyntaxError' && !error.plugin ) { + error.plugin = plugin.postcssPlugin; + error.setMessage(); + } else if ( plugin.postcssVersion ) { + let pluginName = plugin.postcssPlugin; + let pluginVer = plugin.postcssVersion; + let runtimeVer = this.result.processor.version; + let a = pluginVer.split('.'); + let b = runtimeVer.split('.'); + + if ( a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1]) ) { + warnOnce(`Your current PostCSS version is ${runtimeVer}, ` + + `but ${pluginName} uses ${pluginVer}. Perhaps ` + + `this is the source of the error below.`); + } } + } catch (err) { + // Prevent hiding events because of error in error handler } } From a7201a2fc4939f495e2157913f9b4f325662cb08 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 16 May 2015 19:19:53 +0300 Subject: [PATCH 0292/3047] Downgrade ESLint to fix warnings --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2db30bd5c..6e8aba3bc 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.4.2", + "babel-core": "5.4.3", "js-base64": "~2.1.8" }, "devDependencies": { @@ -27,6 +27,7 @@ "gulp-util": "3.0.4", "gulp-run": "1.6.8", "fs-extra": "0.18.3", + "eslint": "0.21.0", "sinon": "1.14.1", "mocha": "2.2.5", "gulp": "3.8.11", From 960222609f09c2bf06de11566319cb07ee3fd183 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 16 May 2015 20:13:15 +0300 Subject: [PATCH 0293/3047] Release 4.1.11 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 822bd07e7..2a162d6ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.11 +* Fix error message on wrong plugin format. + ## 4.1.10 * Fix Promise behavior on sync plugin errors. * Automatically fill `plugin` field in `CssSyntaxError`. diff --git a/package.json b/package.json index 6e8aba3bc..b3951480e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.10", + "version": "4.1.11", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From d0c2b38705c6fcfdec66ee02066153b69b46c74f Mon Sep 17 00:00:00 2001 From: Alexander Madyankin Date: Mon, 18 May 2015 14:43:10 +0600 Subject: [PATCH 0294/3047] Add postcss-each to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ad8ba5958..324d94a75 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,7 @@ on different parts of CSS. ### Language Extensions +* [`postcss-each`] adds `@each` statement. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. * [`postcss-for`] adds `@for` loops. @@ -371,6 +372,7 @@ on different parts of CSS. [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker +[`postcss-each`]: https://github.com/outpunk/postcss-each [`postcss-epub`]: https://github.com/Rycochet/postcss-epub [`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-size`]: https://github.com/postcss/postcss-size From 608a302bd5603814a69d146b004f58ccfa8aef05 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 18 May 2015 13:15:20 +0300 Subject: [PATCH 0295/3047] Fix plugins order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 324d94a75..36f226a54 100644 --- a/README.md +++ b/README.md @@ -211,9 +211,9 @@ on different parts of CSS. ### Language Extensions -* [`postcss-each`] adds `@each` statement. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. +* [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-mixins`] enables mixins more powerful than Sass’s, From 159aab240fc3ffaf14b95435109943c172872a2f Mon Sep 17 00:00:00 2001 From: Ivan Yan Date: Mon, 18 May 2015 20:29:40 +0800 Subject: [PATCH 0296/3047] fix typos --- docs/api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api.md b/docs/api.md index 532ecaefa..1e148b8ee 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1187,7 +1187,7 @@ var noPrefixes = rule.every(function (decl) { Arguments: -* `callback (function)`: iterator, that returns true of false. +* `callback (function)`: iterator, that returns true or false. ### `container.some(callback)` @@ -1202,7 +1202,7 @@ var hasPrefix = rule.some(function (decl) { Arguments: -* `callback (function)`: iterator, that returns true of false. +* `callback (function)`: iterator, that returns true or false. ### `container.each(callback)` From da2ed0add3fea2b4b0890113351a0654ef05b46f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 19 May 2015 21:57:01 +0300 Subject: [PATCH 0297/3047] Add cssnext note --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 36f226a54..61b0c85c6 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,8 @@ on different parts of CSS. * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. * [`mq4-hover-shim`] supports the `@media (hover)` feature. +*[`cssnext`] plugins pack contains most of this plugins* + ### Fallbacks * [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal. From 577df579723e9c3eabe2657dd74be95ed7123b49 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 19 May 2015 22:00:39 +0300 Subject: [PATCH 0298/3047] Fix cssnext mention --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 61b0c85c6..ac09f031e 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ on different parts of CSS. * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. * [`mq4-hover-shim`] supports the `@media (hover)` feature. -*[`cssnext`] plugins pack contains most of this plugins* +See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Fallbacks From 653465c1a059b080eaf891b0be3a3c7c4cc4ce1a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 19 May 2015 22:08:30 +0300 Subject: [PATCH 0299/3047] Move cssnano plugins to mention under the list --- README.md | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index ac09f031e..cd6d719a4 100644 --- a/README.md +++ b/README.md @@ -237,24 +237,11 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). -* [`postcss-colormin`] reduces color values to their smallest representations. -* [`postcss-convert-values`] reduces length and time values (e.g. ms -> s). * [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet and into a separate file. -* [`postcss-discard-duplicates`] removes duplicate declarations and rules. -* [`postcss-discard-empty`] removes empty rules and declarations. -* [`postcss-discard-font-face`] removes unused `@font-face` declarations. -* [`postcss-font-family`] optimises `font` and `font-family` declarations. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. -* [`postcss-merge-idents`] merges duplicated `@keyframes` with different names. -* [`postcss-merge-rules`] merges adjacent rules when - selectors/properties overlap. -* [`postcss-minify-font-weight`] compresses `font-weight` values. -* [`postcss-minify-selectors`] normalizes selectors for better compression. -* [`postcss-normalize-url`] normalizes `url()`s and trims quotes - where they are unnecessary. -* [`postcss-reduce-idents`] compresses `@keyframes`, `@counter-style` & - `counter` identifiers. +* [`postcss-single-charset`] ensures that there is one and only one + `@charset` rule at the top of file. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`csswring`] is a CSS minifier. @@ -262,8 +249,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`webpcss`] adds URLs for WebP images, so they can be used by browsers that support WebP. -* [`postcss-single-charset`] ensures that there is one - and only one `@charset` rule at the top of file. + +See also plugins in modular minifier [`cssnano`]. ### Shortcuts @@ -283,7 +270,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness -* [`postcss-discard-comments`] removes comments based on rules you specify. * [`postcss-log-warnings`] logs warnings messages from other plugins in the console. * [`postcss-messages`] displays warning messages from other plugins From 9c03730b5eb5f13a84f5b63ca3a18de9cc91cc83 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 19 May 2015 23:36:32 +0300 Subject: [PATCH 0300/3047] Clean up package.json after ESLint fixes --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index b3951480e..ae3d337ae 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "gulp-util": "3.0.4", "gulp-run": "1.6.8", "fs-extra": "0.18.3", - "eslint": "0.21.0", "sinon": "1.14.1", "mocha": "2.2.5", "gulp": "3.8.11", From dda8df89f0ff890d3af6790f487f96ea9e86bde3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 20 May 2015 05:24:02 +0300 Subject: [PATCH 0301/3047] Better test for warning --- test/warning.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/warning.js b/test/warning.js index 071733f5f..46129c99b 100644 --- a/test/warning.js +++ b/test/warning.js @@ -17,6 +17,12 @@ describe('Warning', () => { expect(warning.toString()).to.eql('plugin: text'); }); + it('outputs warning with position', () => { + let root = parse('a{}'); + let warning = new Warning('text', { node: root.first }); + expect(warning.toString()).to.eql(':1:1: text'); + }); + it('outputs warning with plugin and node', () => { let root = parse('a{}', { from: '/a.css' }); let warning = new Warning('text', { From 616aecfa0b78c7a5df6e051a0591dbe2aa1882ec Mon Sep 17 00:00:00 2001 From: David Hemphill Date: Sat, 23 May 2015 00:30:51 -0500 Subject: [PATCH 0302/3047] Add postcss-verthorz to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cd6d719a4..1cfb5df64 100644 --- a/README.md +++ b/README.md @@ -227,6 +227,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. +* [`postcss-verthorz`] adds vertical and horizontal spacing declarations; * [`csstyle`] adds components workflow to your styles. * [`lost`] feature rich `calc()` grid system by Jeet author. @@ -331,6 +332,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha From d3bbcc6d8f992f3c2a8be54fedc064f1771eff96 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 23 May 2015 09:11:27 +0300 Subject: [PATCH 0303/3047] Fix plugin order --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1cfb5df64..0a883a7cf 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. -* [`postcss-verthorz`] adds vertical and horizontal spacing declarations; * [`csstyle`] adds components workflow to your styles. * [`lost`] feature rich `calc()` grid system by Jeet author. @@ -263,6 +262,7 @@ See also plugins in modular minifier [`cssnano`]. Useful for creating repetitive utilities. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. +* [`postcss-verthorz`] adds vertical and horizontal spacing declarations. ### Others @@ -332,7 +332,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars -[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha @@ -341,6 +340,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-image-set`]: https://github.com/alex499/postcss-image-set +[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-messages`]: https://github.com/postcss/postcss-messages From a9b88a0042e668bdfefd4ad879982e0cf4c9d9ea Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 23 May 2015 09:14:43 +0300 Subject: [PATCH 0304/3047] Fix main example --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a883a7cf..c65796ab5 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ There are plugins for [Grunt], [Gulp], [webpack], [Broccoli] and [Brunch]. gulp.task('css', function () { var postcss = require('gulp-postcss'); return gulp.src('src/**/*.css') - .pipe( postcss([ require('cssnext'), require('cssgrace') ]) ) + .pipe( postcss([ require('cssnext')(), require('cssnano')() ]) ) .pipe( gulp.dest('build/') ); }); ``` @@ -125,7 +125,7 @@ For other environments you can use the [CLI tool] or the JS API: ```js var postcss = require('postcss'); -postcss([ require('cssnext'), require('cssgrace') ]) +postcss([ require('cssnext')(), require('cssnano')() ]) .process(css, { from: 'src/app.css', to: 'app.css' }) .then(function (result) { fs.writeFileSync('app.css', result.css); From a43c3deb0c143c39d0d277ca78cccea8880ae812 Mon Sep 17 00:00:00 2001 From: Simon Smith Date: Sat, 23 May 2015 22:20:16 +0100 Subject: [PATCH 0305/3047] Add postcss-property-lookup --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c65796ab5..a19a83cb8 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-focus`] adds `:focus` selector to every `:hover`. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. +* [`postcss-property-lookup`] allows referencing property values without a variable. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. @@ -309,6 +310,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements From 7b3591b2e771ed19058e19816d54361cdfdaa6e1 Mon Sep 17 00:00:00 2001 From: Dmitriy Semyushkin Date: Mon, 25 May 2015 22:05:02 +0300 Subject: [PATCH 0306/3047] Add postcss-color-hcl --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a19a83cb8..02f6c6047 100644 --- a/README.md +++ b/README.md @@ -215,6 +215,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. +* [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, α)` to `#rgb` and `rgba()`. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. * [`postcss-conditionals`] adds `@if` statements. @@ -337,6 +338,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha +[`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind From 184e7d385ce4cd1d64385a5b636c330e34af28e0 Mon Sep 17 00:00:00 2001 From: Andrew Del Prete Date: Mon, 25 May 2015 21:03:28 -0800 Subject: [PATCH 0307/3047] Added 'postcss-fakeid' plugin to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a19a83cb8..accc08803 100644 --- a/README.md +++ b/README.md @@ -279,6 +279,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] convert pixel units to `rem`. * [`postcss-style-guide`] generate a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. +* [`postcss-fakeid`] transforms ids in the form of #foo to attribute selectors [id="foo"]. ### Analysis @@ -343,6 +344,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz +[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-messages`]: https://github.com/postcss/postcss-messages From ed1cf03992fa760fcdf95665630236c5456abe71 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 26 May 2015 12:34:21 +0300 Subject: [PATCH 0308/3047] Clean up plugins list --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 82a8df2ac..6b1554904 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] convert pixel units to `rem`. * [`postcss-style-guide`] generate a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`postcss-fakeid`] transforms ids in the form of #foo to attribute selectors [id="foo"]. +* [`postcss-fakeid`] transforms ``#foo` IDs to attribute selectors `[id="foo"]`. ### Analysis @@ -339,14 +339,13 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha -[`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind +[`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz -[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-colormin`]: https://github.com/ben-eb/colormin [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-messages`]: https://github.com/postcss/postcss-messages @@ -359,6 +358,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-nested`]: https://github.com/postcss/postcss-nested [`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex +[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-mixins`]: https://github.com/postcss/postcss-mixins [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`list-selectors`]: https://github.com/davidtheclark/list-selectors From 78c05fd3c5ac9a31f3f4444bdea983e71767ef04 Mon Sep 17 00:00:00 2001 From: Anton Winogradov Date: Tue, 26 May 2015 18:54:17 +0300 Subject: [PATCH 0309/3047] add info about ENB plugin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b1554904..4192eb3a0 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ You just need to follow these two steps to use PostCSS: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. -There are plugins for [Grunt], [Gulp], [webpack], [Broccoli] and [Brunch]. +There are plugins for [Grunt], [Gulp], [webpack], [ENB], [Broccoli] and [Brunch]. ```js gulp.task('css', function () { @@ -139,6 +139,7 @@ Read the [PostCSS API] for more details about the JS API. [CLI tool]: https://github.com/code42day/postcss-cli [Broccoli]: https://github.com/jeffjewiss/broccoli-postcss [webpack]: https://github.com/postcss/postcss-loader +[ENB]: https://github.com/theprotein/enb-postcss [Brunch]: https://github.com/iamvdo/postcss-brunch [Grunt]: https://github.com/nDmitry/grunt-postcss [Gulp]: https://github.com/postcss/gulp-postcss From 2874b85bb561c9f886bc02e30d91fab781bccb75 Mon Sep 17 00:00:00 2001 From: Steve Mao Date: Wed, 27 May 2015 14:17:06 +1000 Subject: [PATCH 0310/3047] Remove an extra ` (backtick) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b1554904..0033b7c38 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] convert pixel units to `rem`. * [`postcss-style-guide`] generate a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`postcss-fakeid`] transforms ``#foo` IDs to attribute selectors `[id="foo"]`. +* [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. ### Analysis From 6d06422eb55f3364fc9ce4eb7f5abe66240a4e79 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 27 May 2015 13:50:35 +0300 Subject: [PATCH 0311/3047] Fix spellchecking --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index b404daee7..d2bd78c2f 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -27,6 +27,7 @@ "IE8", "IE9", "ES6", + "ENB", "SemVer", "Sass", "Sass’s", From bdd172d20ccd460af3a95b622583c8cf576467b8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 27 May 2015 13:51:43 +0300 Subject: [PATCH 0312/3047] Sort builders by npm popularity --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e2f6ce3c9..937c300b1 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,8 @@ You just need to follow these two steps to use PostCSS: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. -There are plugins for [Grunt], [Gulp], [webpack], [ENB], [Broccoli] and [Brunch]. +There are plugins for [Grunt], [Gulp], [webpack], [Broccoli], +[Brunch] and [ENB]. ```js gulp.task('css', function () { From 4980fac0d4f303d96f5ef90d1b5b0ce2dc6b4b04 Mon Sep 17 00:00:00 2001 From: Viktor Vasilev Date: Thu, 28 May 2015 09:51:18 +0300 Subject: [PATCH 0313/3047] Add postcss-sprites plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 937c300b1..90c5c111f 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`webpcss`] adds URLs for WebP images, so they can be used by browsers that support WebP. +* [`postcss-sprites`] generates CSS sprites from stylesheets. See also plugins in modular minifier [`cssnano`]. @@ -388,6 +389,7 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost +[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites ## How to Develop PostCSS Plugin From d71b51a62a14377686e102b4c8271abad5d3f51c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 28 May 2015 11:42:16 +0300 Subject: [PATCH 0314/3047] Fix plugin order and cssnext link --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 90c5c111f..eed539c4f 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Or if you like the Sass syntax, you could combine } ``` -[cssnext]: https://cssnext.github.io/ +[cssnext]: http://cssnext.io/ ## Features @@ -173,7 +173,7 @@ on different parts of CSS. to special annotation comments. [`cssnano`]: https://github.com/ben-eb/cssnano -[`cssnext`]: https://cssnext.github.io/ +[`cssnext`]: http://cssnext.io/ [`atcss`]: https://github.com/morishitter/atcss ### Future CSS Syntax @@ -245,6 +245,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. +* [`postcss-sprites`] generates CSS sprites from stylesheets. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`csswring`] is a CSS minifier. @@ -252,7 +253,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`webpcss`] adds URLs for WebP images, so they can be used by browsers that support WebP. -* [`postcss-sprites`] generates CSS sprites from stylesheets. See also plugins in modular minifier [`cssnano`]. @@ -356,6 +356,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-import`]: https://github.com/postcss/postcss-import @@ -389,7 +390,6 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost -[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites ## How to Develop PostCSS Plugin From d43262ab626cfb43cde30cfbfa98fb1f99f4522e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 28 May 2015 11:44:13 +0300 Subject: [PATCH 0315/3047] Typo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eed539c4f..bc6dd3146 100644 --- a/README.md +++ b/README.md @@ -280,8 +280,8 @@ See also plugins in modular minifier [`cssnano`]. in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. -* [`postcss-pxtorem`] convert pixel units to `rem`. -* [`postcss-style-guide`] generate a style guide automatically. +* [`postcss-pxtorem`] converts pixel units to `rem`. +* [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. From ce54b2fea0d72023fd1c6baabca29760dafa23cc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 28 May 2015 11:45:33 +0300 Subject: [PATCH 0316/3047] All plugins must use one line to descript itself --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index bc6dd3146..0ed698bb4 100644 --- a/README.md +++ b/README.md @@ -240,8 +240,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). -* [`postcss-data-packer`] moves embedded Base64 data out of the stylesheet - and into a separate file. +* [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. From 75440bb0ffc14b672c46e1cf4d2e87adb775c0c9 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 28 May 2015 11:55:30 +0100 Subject: [PATCH 0317/3047] Fix language in API docs. --- docs/api.md | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/docs/api.md b/docs/api.md index 1e148b8ee..3fa548187 100644 --- a/docs/api.md +++ b/docs/api.md @@ -67,7 +67,7 @@ Arguments: ### `postcss.plugin(name, initializer)` -Creates PostCSS plugin with standard API. +Creates a PostCSS plugin with a standard API. ```js var remove = postcss.plugin('postcss-remove', function (opts) { @@ -100,7 +100,7 @@ processor.plugins[0].postcssVersion //=> '4.1.0' Plugin function receive 2 arguments: [`Root` node] and [`Result`] instance. Then it should mutate the passed `Root` node, or you can create new `Root` node -and put it to `result.root` property. +and override the `result.root` property. ```js postcss.plugin('postcss-cleaner', function () { @@ -242,7 +242,7 @@ processor.use(autoprefixer).use(cssnext).use(cssgrace); Arguments: -* `plugin (function|#postcss|Processor)`: PostCSS plugin. I can be in three +* `plugin (function|#postcss|Processor)`: PostCSS plugin. It can be in three formats: * A plugin created by [`postcss.plugin()`] method. * A function. PostCSS will pass the function a [`Root` node] @@ -431,7 +431,7 @@ any asynchronous plugin it will throw a error. You should use ### `lazy.processor` -Returns a [`Processor`] instance, that will be used for CSS transformations. +Returns a [`Processor`] instance, which will be used for CSS transformations. ```js var lazy = postcss([cssnext, cssgrace]).process(css); @@ -449,7 +449,7 @@ postcss().process(css, opts).opts == opts; ## `Result` class -Provides result of PostCSS transformations. +Provides the result of the PostCSS transformations. A `Result` instance is returned by [`Root#toResult(opts)`] or [`LazyResult#then()`] methods. @@ -500,7 +500,7 @@ Arguments: ### `result.warnings()` -Returns warnings from plugins. It just a filters [`Warning`] instances +Returns warnings from plugins. It just filters [`Warning`] instances from [Result#messages]. ```js @@ -715,9 +715,9 @@ Contains absolute path to broken file, if use set `from` option to parser. error.file //=> 'a.sass' ``` -PostCSS will use input source map to detect origin place of error. If you wrote -Sass file, then compile it to CSS and put to PostCSS, PostCSS will show -position in origin Sass file. +PostCSS will use input source map to detect the original error location. If +you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), you can use `error.generated.file`. @@ -735,9 +735,9 @@ Contains source line of error. error.line //=> 2 ``` -PostCSS will use input source map to detect origin place of error. If you wrote -Sass file, then compile it to CSS and put to PostCSS, PostCSS will show -position in origin Sass file. +PostCSS will use input source map to detect the original error location. If +you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), you can use `error.generated.line`. @@ -755,9 +755,9 @@ Contains source column of error. error.column //=> 1 ``` -PostCSS will use input source map to detect origin place of error. If you wrote -Sass file, then compile it to CSS and put to PostCSS, PostCSS will show -position in origin Sass file. +PostCSS will use input source map to detect the original error location. If +you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), you can use `error.generated.column`. @@ -775,9 +775,9 @@ Contains source code of broken file. error.source //=> 'a {} b {' ``` -PostCSS will use input source map to detect origin place of error. If you wrote -Sass file, then compile it to CSS and put to PostCSS, PostCSS will show -position in origin Sass file. +PostCSS will use input source map to detect the original error location. If +you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), you can use `error.generated.source`. @@ -870,8 +870,8 @@ root.source.input.id //=> ### `input.from` -The CSS source identifier. Contains [`input.file`](#inputfile) if the user set the -[`from` option], or [`input.id`](#inputid) if he/she did not. +The CSS source identifier. Contains [`input.file`](#inputfile) if the user set +the [`from` option], or [`input.id`](#inputid) if he/she did not. ```js var root = postcss.parse(css, { from: 'a.css' }); @@ -1058,7 +1058,7 @@ The resultant clone node and its (clone) children will have clean `parent` and code style properties. ```js -var clonded = decl.clone({ prop: '-moz-' + decl.prop }); +var cloned = decl.clone({ prop: '-moz-' + decl.prop }); cloned.before //=> undefined cloned.parent //=> undefined cloned.toString() //=> -moz-transform: scale(0) @@ -1434,8 +1434,9 @@ root.append({ selector: 'a' }); // rule rule.append({ prop: 'color', value: 'black' }); // declaration rule.append({ text: 'Comment' }) // comment ``` + Also you can use string with CSS of new element. But it will be a little bit -slower, that shortcuts above. +slower than the above shortcuts. ```js root.append('a {}'); From 55a6144f381eae31300c02336248f7225c7bcb5a Mon Sep 17 00:00:00 2001 From: Kristofer Joseph Date: Thu, 28 May 2015 10:17:18 -0700 Subject: [PATCH 0318/3047] Adds links to modular-scale and color-scale to Language Features section of the README. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0ed698bb4..a48b598c9 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. * [`lost`] feature rich `calc()` grid system by Jeet author. +* [`postcss-modular-scale`](https://github.com/kristoferjoseph/postcss-modular-scale) adds a modular scale `ms()` function. +* [`postcss-color-scale`](https://github.com/kristoferjoseph/postcss-color-scale) adds a color scale `cs()` function. ### Optimizations From a36b30c3c7433c6469e43a3cd6e438d6b71d1f06 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 29 May 2015 01:30:15 +0300 Subject: [PATCH 0319/3047] Fix plugin order --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a48b598c9..d6e1385c2 100644 --- a/README.md +++ b/README.md @@ -220,10 +220,12 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, α)` to `#rgb` and `rgba()`. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. +* [`postcss-color-scale`] adds a color scale `cs()` function. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. +* [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-neat`] is a semantic and fluid grid framework. * [`postcss-nested`] unwraps nested rules. * [`postcss-quantity-queries`] enables quantity queries. @@ -232,8 +234,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-vars`] supports for Sass-style variables. * [`csstyle`] adds components workflow to your styles. * [`lost`] feature rich `calc()` grid system by Jeet author. -* [`postcss-modular-scale`](https://github.com/kristoferjoseph/postcss-modular-scale) adds a modular scale `ms()` function. -* [`postcss-color-scale`](https://github.com/kristoferjoseph/postcss-color-scale) adds a color scale `cs()` function. ### Optimizations @@ -327,6 +327,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables +[`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit @@ -337,6 +338,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide +[`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars From a317ec9755a0ae81e4964b2b2a885f756231ce21 Mon Sep 17 00:00:00 2001 From: Greg Thompson Date: Mon, 1 Jun 2015 09:18:30 -0500 Subject: [PATCH 0320/3047] add postcss-class-prefix --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d6e1385c2..d2ff54bd1 100644 --- a/README.md +++ b/README.md @@ -285,6 +285,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. +* [`postcss-class-prefix`] adds a prefix/namespace to class selectors. ### Analysis @@ -337,6 +338,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-will-change`]: https://github.com/postcss/postcss-will-change From 275acbc56a222363c29e78d0d3e90fe94df3c1af Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 1 Jun 2015 17:56:18 +0300 Subject: [PATCH 0321/3047] Fix plugin order --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d2ff54bd1..5a96c1c5f 100644 --- a/README.md +++ b/README.md @@ -265,7 +265,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-focus`] adds `:focus` selector to every `:hover`. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. -* [`postcss-property-lookup`] allows referencing property values without a variable. +* [`postcss-property-lookup`] allows referencing property values without + a variable. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. @@ -274,9 +275,11 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. +* [`postcss-class-prefix`] adds a prefix/namespace to class selectors. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-colorblind`] transforms colors using filters to simulate - colorblindness + colorblindness. +* [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-log-warnings`] logs warnings messages from other plugins in the console. * [`postcss-messages`] displays warning messages from other plugins @@ -284,8 +287,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. -* [`postcss-class-prefix`] adds a prefix/namespace to class selectors. ### Analysis From c796937e236872fa62f80fb14a89188a16320b86 Mon Sep 17 00:00:00 2001 From: andyjansson Date: Tue, 2 Jun 2015 22:10:32 +0200 Subject: [PATCH 0322/3047] Add postcss-grid to README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5a96c1c5f..63da0876c 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. +* [`postcss-grid`] adds a semantic grid system. * [`postcss-map`] enables configuration maps. * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-neat`] is a semantic and fluid grid framework. @@ -381,6 +382,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-each`]: https://github.com/outpunk/postcss-each [`postcss-epub`]: https://github.com/Rycochet/postcss-epub [`postcss-calc`]: https://github.com/postcss/postcss-calc +[`postcss-grid`]: https://github.com/andyjansson/postcss-grid [`postcss-size`]: https://github.com/postcss/postcss-size [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin From 5340e97f0060bfc05d0b641b90283ee37ba87c7b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 3 Jun 2015 00:15:10 +0300 Subject: [PATCH 0323/3047] Use Gulp 3.9 with Babel support --- .eslintrc | 1 + gulpfile.js => gulpfile.babel.js | 96 +++++++++++++++----------------- index.js | 4 +- package.json | 12 ++-- test/mocha.opts | 2 +- 5 files changed, 55 insertions(+), 60 deletions(-) rename gulpfile.js => gulpfile.babel.js (56%) diff --git a/.eslintrc b/.eslintrc index dbeac671b..eb4b61c40 100644 --- a/.eslintrc +++ b/.eslintrc @@ -16,6 +16,7 @@ "strict": [0], "indent": [2], "quotes": [2, "single", "avoid-escape"], + "no-var": [2], "curly": [0] }, "env": { diff --git a/gulpfile.js b/gulpfile.babel.js similarity index 56% rename from gulpfile.js rename to gulpfile.babel.js index e74e6c44e..14c1b5bb7 100644 --- a/gulpfile.js +++ b/gulpfile.babel.js @@ -1,41 +1,38 @@ -var gulp = require('gulp'); -var path = require('path'); -var fs = require('fs-extra'); +import gulp from 'gulp'; +import path from 'path'; +import fs from 'fs-extra'; -gulp.task('clean', function (done) { - fs.remove(path.join(__dirname, 'postcss.js'), function () { +gulp.task('clean', (done) => { + fs.remove(path.join(__dirname, 'postcss.js'), () => { fs.remove(path.join(__dirname, 'build'), done); }); }); // Build -gulp.task('build:lib', ['clean'], function () { - var babel = require('gulp-babel'); - +gulp.task('build:lib', ['clean'], () => { + let babel = require('gulp-babel'); return gulp.src('lib/*.js') .pipe(babel({ loose: 'all' })) .pipe(gulp.dest('build/lib')); }); -gulp.task('build:docs', ['clean'], function () { - var ignore = require('fs').readFileSync('.npmignore').toString() +gulp.task('build:docs', ['clean'], () => { + let ignore = require('fs').readFileSync('.npmignore').toString() .trim().split(/\n+/) .concat(['.npmignore', 'index.js', 'package.json']) - .map(function (i) { return '!' + i; }); - + .map( i => '!' + i ); return gulp.src(['*'].concat(ignore)) .pipe(gulp.dest('build')); }); -gulp.task('build:package', ['clean'], function () { - var editor = require('gulp-json-editor'); - +gulp.task('build:package', ['clean'], () => { + let editor = require('gulp-json-editor'); gulp.src('./package.json') - .pipe(editor(function (p) { + .pipe(editor( (p) => { p.main = 'lib/postcss'; - p.devDependencies['babel-core'] = p.dependencies['babel-core']; - delete p.dependencies['babel-core']; + p.devDependencies.babel = p.dependencies.babel; + delete p.dependencies.babel; return p; })) .pipe(gulp.dest('build')); @@ -45,20 +42,19 @@ gulp.task('build', ['build:lib', 'build:docs', 'build:package']); // Lint -gulp.task('lint', function () { - var eslint = require('gulp-eslint'); +gulp.task('lint', () => { + let eslint = require('gulp-eslint'); return gulp.src(['*.js', 'lib/*.js', 'test/*.js']) .pipe(eslint()) .pipe(eslint.format()) .pipe(eslint.failAfterError()); }); -gulp.task('spellcheck', function (done) { - var gutil = require('gulp-util'); - var run = require('gulp-run'); - +gulp.task('spellcheck', (done) => { + let gutil = require('gulp-util'); + let run = require('gulp-run'); run('yaspeller .').exec() - .on('error', function (err) { + .on('error', (err) => { done(new gutil.PluginError('spellcheck', { showStack: false, message: err.message @@ -69,13 +65,13 @@ gulp.task('spellcheck', function (done) { // Tests -gulp.task('integration', ['build:lib', 'build:package'], function (done) { - var gutil = require('gulp-util'); - var load = require('load-resources'); +gulp.task('integration', ['build:lib', 'build:package'], (done) => { + let gutil = require('gulp-util'); + let load = require('load-resources'); - var postcss = require('./build/lib/postcss'); + let postcss = require('./build/lib/postcss'); - var error = function (url, message) { + let error = (url, message) => { gutil.log(gutil.colors.red('Fail on ' + url)); done(new gutil.PluginError('integration', { showStack: false, @@ -83,30 +79,28 @@ gulp.task('integration', ['build:lib', 'build:package'], function (done) { })); }; - var sites = { + let sites = { GitHub: 'https://github.com/', Twitter: 'https://twitter.com/', Bootstrap: 'github:twbs/bootstrap:dist/css/bootstrap.css', Habrahabr: 'http://habrahabr.ru/', Browserhacks: 'http://browserhacks.com/' }; - var urls = Object.keys(sites).map(function (i) { - return sites[i]; - }); + let urls = Object.keys(sites).map( i => sites[i] ); - var lastDomain = false; - var siteIndex = -1; + let lastDomain = false; + let siteIndex = -1; - load(urls, '.css', function (css, url, last) { + load(urls, '.css', (css, url, last) => { postcss().process(css, { map: { annotation: false }, safe: url.match('browserhacks.com') - }).catch(function (e) { + }).catch( (e) => { fs.writeFileSync('fail.css', css); return error(url, 'Parsing error: ' + e.message + e.stack); - }).then(function (result) { + }).then( (result) => { if ( !result ) return; if ( result.css !== css ) { @@ -116,7 +110,7 @@ gulp.task('integration', ['build:lib', 'build:package'], function (done) { return; } - var domain = url.match(/https?:\/\/[^\/]+/)[0]; + let domain = url.match(/https?:\/\/[^\/]+/)[0]; if ( domain !== lastDomain ) { lastDomain = domain; siteIndex += 1; @@ -129,24 +123,22 @@ gulp.task('integration', ['build:lib', 'build:package'], function (done) { }); }); -gulp.task('test', function () { - require('./'); - var mocha = require('gulp-mocha'); +gulp.task('test', () => { + let mocha = require('gulp-mocha'); return gulp.src('test/*.js', { read: false }).pipe(mocha()); }); // Helpers -gulp.task('cases', function () { - var postcss = require('./'); - var cases = path.join(__dirname, 'test', 'cases'); - - fs.readdirSync(cases).forEach(function (name) { +gulp.task('cases', () => { + let postcss = require('./lib/postcss'); + let cases = path.join(__dirname, 'test', 'cases'); + fs.readdirSync(cases).forEach( (name) => { if ( !name.match(/\.css$/) ) return; - var css = fs.readFileSync(path.join(cases, name)); - var root = postcss.parse(css, { from: '/' + name }); - var json = JSON.stringify(root, null, 4); - var file = path.join(cases, name.replace(/\.css$/, '.json')); + let css = fs.readFileSync(path.join(cases, name)); + let root = postcss.parse(css, { from: '/' + name }); + let json = JSON.stringify(root, null, 4); + let file = path.join(cases, name.replace(/\.css$/, '.json')); fs.writeFileSync(file, json + '\n'); }); }); diff --git a/index.js b/index.js index 868a97388..36439815b 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,5 @@ +/* eslint-disable no-var */ + var path = require('path'); var escape = function (str) { @@ -8,7 +10,7 @@ var regexp = ['lib', 'test'].map(function (i) { return '^' + escape(path.join(__dirname, i) + path.sep); }).join('|'); -require('babel-core/register')({ +require('babel/register')({ only: new RegExp('(' + regexp + ')'), ignore: false, loose: 'all' diff --git a/package.json b/package.json index ae3d337ae..d78c40661 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "dependencies": { "es6-promise": "~2.1.1", "source-map": "~0.4.2", - "babel-core": "5.4.3", - "js-base64": "~2.1.8" + "js-base64": "~2.1.8", + "babel": "5.4.7" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -22,14 +22,14 @@ "load-resources": "0.1.0", "gulp-eslint": "0.12.0", "gulp-babel": "5.1.0", - "gulp-mocha": "2.0.1", - "yaspeller": "2.2.0", + "gulp-mocha": "2.1.0", + "yaspeller": "2.4.0", "gulp-util": "3.0.4", "gulp-run": "1.6.8", - "fs-extra": "0.18.3", + "fs-extra": "0.18.4", "sinon": "1.14.1", "mocha": "2.2.5", - "gulp": "3.8.11", + "gulp": "3.9.0", "chai": "2.3.0" }, "scripts": { diff --git a/test/mocha.opts b/test/mocha.opts index 362a89961..59ef7836a 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,3 +1,3 @@ --inline-diffs --reporter spec ---require ./index +--require babel/register From 9e566685e4eb0c572f49c19f1f6bf5568dc727ca Mon Sep 17 00:00:00 2001 From: Mark Goodyear Date: Thu, 4 Jun 2015 16:46:57 +0100 Subject: [PATCH 0324/3047] Add postcss-vertical-rhythm plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 63da0876c..b492cde13 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. +* [`postcss-vertical-rhythm`] adds a vertical rhythm unit calculated from base font-size and line-height. * [`csstyle`] adds components workflow to your styles. * [`lost`] feature rich `calc()` grid system by Jeet author. @@ -320,6 +321,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup +[`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements From afd0c750e40d67e1b17ab7203f495e06cd4918cd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Jun 2015 12:24:00 +0300 Subject: [PATCH 0325/3047] Typo --- README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b492cde13..f0ef99f5e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ PostCSS is a tool for transforming CSS with JS plugins. These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more. -PostCSS is used by Google, Twitter, Alibaba, and Shopify. +Google, Twitter, Alibaba, and Shopify uses PostCSS. Its plugin, [Autoprefixer], is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. @@ -122,7 +122,7 @@ gulp.task('css', function () { }); ``` -For other environments you can use the [CLI tool] or the JS API: +For other environments, you can use the [CLI tool] or the JS API: ```js var postcss = require('postcss'); @@ -167,7 +167,7 @@ on different parts of CSS. ### Packs -* [`cssnano`] contains plugins that optimise CSS size for use in production. +* [`cssnano`] contains plugins that optimize CSS size for use in production. * [`cssnext`] contains plugins that allow you to use future CSS features today. * [`atcss`] contains plugins that transform your CSS according to special annotation comments. @@ -235,7 +235,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-vars`] supports for Sass-style variables. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit calculated from base font-size and line-height. * [`csstyle`] adds components workflow to your styles. -* [`lost`] feature rich `calc()` grid system by Jeet author. +* [`lost`] feature-rich `calc()` grid system by Jeet author. ### Optimizations @@ -254,8 +254,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`csswring`] is a CSS minifier. * [`css-byebye`] removes the CSS rules that you don’t want. * [`css-mqpacker`] joins matching CSS media queries into a single statement. -* [`webpcss`] adds URLs for WebP images, so they can be used by browsers - that support WebP. +* [`webpcss`] adds URLs for WebP images for browsers that support WebP. See also plugins in modular minifier [`cssnano`]. @@ -445,7 +444,7 @@ If you want more control over source map generation, you can define the `map` option as an object with the following parameters: * `inline` boolean: indicates that the source map should be embedded - in the output CSS as a Base64-encoded comment. By default it is `true`. + in the output CSS as a Base64-encoded comment. By default, it is `true`. But if all previous maps are external, not inline, PostCSS will not embed the map even if you do not set this option. @@ -460,7 +459,7 @@ option as an object with the following parameters: with `prev: false`. * `sourcesContent` boolean: indicates that PostCSS should set the origin - content (for example, Sass source) of the source map. By default it is `true`. + content (for example, Sass source) of the source map. By default, it’s `true`. But if all previous maps do not contain sources content, PostCSS will also leave it out even if you do not set this option. From 0ac7b3f25ff24af473b1667c7ed2439d2c3be61e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Jun 2015 13:16:14 +0300 Subject: [PATCH 0326/3047] Update npm dependecies --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d78c40661..c64057b96 100644 --- a/package.json +++ b/package.json @@ -11,26 +11,26 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "es6-promise": "~2.1.1", + "es6-promise": "~2.2.0", "source-map": "~0.4.2", "js-base64": "~2.1.8", - "babel": "5.4.7" + "babel": "5.5.1" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", "load-resources": "0.1.0", - "gulp-eslint": "0.12.0", + "gulp-eslint": "0.13.2", "gulp-babel": "5.1.0", - "gulp-mocha": "2.1.0", + "gulp-mocha": "2.1.1", "yaspeller": "2.4.0", - "gulp-util": "3.0.4", + "gulp-util": "3.0.5", "gulp-run": "1.6.8", "fs-extra": "0.18.4", "sinon": "1.14.1", "mocha": "2.2.5", "gulp": "3.9.0", - "chai": "2.3.0" + "chai": "3.0.0" }, "scripts": { "test": "gulp" From 1585e5ec91418fe71cdabffdbb47bddd779759f3 Mon Sep 17 00:00:00 2001 From: "Hallvord R. M. Steen" Date: Mon, 8 Jun 2015 16:38:51 +0200 Subject: [PATCH 0327/3047] Add links to my two new plugins These plugins add the functionality demonstrated on http://hallvord.com/temp/moz/cssfixme.htm to PostCSS --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index f0ef99f5e..363900d7d 100644 --- a/README.md +++ b/README.md @@ -288,6 +288,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. +* [`postcss-flexboxfixer`] adds standardised equivalents to CSS using outdated and vendor-prefixed flexbox syntax +* [`postcss-gradientfixer`] adds standardised equivalents to CSS using outdated and vendor-prefixed CSS gradient syntax ### Analysis @@ -399,6 +401,8 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost +[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer +[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer ## How to Develop PostCSS Plugin From d0063b3147f217aab2d57f3f942c496a9673db26 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 8 Jun 2015 20:00:35 +0300 Subject: [PATCH 0328/3047] Clean up plugins list --- .yaspellerrc | 2 ++ README.md | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index d2bd78c2f..da685f8ab 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -70,6 +70,8 @@ "Autodetect", "autodetect", "codebases", + "flexbox", + "unprefixes", "regexp", "changelog", "Changelog", diff --git a/README.md b/README.md index 363900d7d..1ae040729 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. +* [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. +* [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. * [`postcss-log-warnings`] logs warnings messages from other plugins in the console. * [`postcss-messages`] displays warning messages from other plugins @@ -288,8 +290,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`postcss-flexboxfixer`] adds standardised equivalents to CSS using outdated and vendor-prefixed flexbox syntax -* [`postcss-gradientfixer`] adds standardised equivalents to CSS using outdated and vendor-prefixed CSS gradient syntax ### Analysis @@ -334,6 +334,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables [`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale +[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit @@ -344,6 +345,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix +[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-will-change`]: https://github.com/postcss/postcss-will-change @@ -401,8 +403,6 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost -[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer -[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer ## How to Develop PostCSS Plugin From a2190583802df456692ca95500eea6f1ff1cc53f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 9 Jun 2015 13:25:48 +0300 Subject: [PATCH 0329/3047] Move grids to separated category --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1ae040729..bc297dabb 100644 --- a/README.md +++ b/README.md @@ -224,10 +224,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. -* [`postcss-grid`] adds a semantic grid system. * [`postcss-map`] enables configuration maps. * [`postcss-modular-scale`] adds a modular scale `ms()` function. -* [`postcss-neat`] is a semantic and fluid grid framework. * [`postcss-nested`] unwraps nested rules. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-simple-extend`] supports extending of silent classes, @@ -235,6 +233,11 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-vars`] supports for Sass-style variables. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit calculated from base font-size and line-height. * [`csstyle`] adds components workflow to your styles. + +### Grids + +* [`postcss-grid`] adds a semantic grid system. +* [`postcss-neat`] is a semantic and fluid grid framework. * [`lost`] feature-rich `calc()` grid system by Jeet author. ### Optimizations From f6e4e622ca58c34c3c5669231ec628ec3b322da4 Mon Sep 17 00:00:00 2001 From: Malte-Maurice Dreyer Date: Thu, 11 Jun 2015 18:24:10 +0000 Subject: [PATCH 0330/3047] Add postcss-bem to README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bc297dabb..972d40898 100644 --- a/README.md +++ b/README.md @@ -215,6 +215,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions +* [`postcss-bem`] adds at-rules for BEM and SUIT style classes * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, α)` to `#rgb` and `rgba()`. @@ -394,6 +395,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-size`]: https://github.com/postcss/postcss-size [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin +[`postcss-bem`]: https://github.com/ileri/postcss-bem [`postcss-url`]: https://github.com/postcss/postcss-url [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-for`]: https://github.com/antyakushev/postcss-for From 94fade8e5603ef66c39a3f99810335c0916c611b Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 11 Jun 2015 21:56:01 +0100 Subject: [PATCH 0331/3047] Add BEM to the dictionary. --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index da685f8ab..311ab21b9 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -95,6 +95,7 @@ "stylesheet", "stylesheets", "stringifier", + "BEM", "CLI", "CSS3", "CSS4", From fd52e0cda7565d5497cd864802f2f15a6d1be478 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 12 Jun 2015 01:01:02 +0300 Subject: [PATCH 0332/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 972d40898..768e22cdd 100644 --- a/README.md +++ b/README.md @@ -215,7 +215,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions -* [`postcss-bem`] adds at-rules for BEM and SUIT style classes +* [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, α)` to `#rgb` and `rgba()`. From 59186f4a4b83383969cf83cbdf9f7cbc6cfc17bb Mon Sep 17 00:00:00 2001 From: Sean King Date: Mon, 15 Jun 2015 22:59:59 +1000 Subject: [PATCH 0333/3047] Add postcss-position to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 768e22cdd..6dc600559 100644 --- a/README.md +++ b/README.md @@ -275,6 +275,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. +* [`postcss-position`] adds shorthand declarations for position attributes. ### Others @@ -370,6 +371,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-position`]: https://github.com/seaneking/postcss-position [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites From 60969793e1b15457aa080bdaf6b5d226f7fc16da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 15 Jun 2015 09:15:34 -0400 Subject: [PATCH 0334/3047] Fix plugins order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6dc600559..ae333dc83 100644 --- a/README.md +++ b/README.md @@ -270,12 +270,12 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-focus`] adds `:focus` selector to every `:hover`. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. +* [`postcss-position`] adds shorthand declarations for position attributes. * [`postcss-property-lookup`] allows referencing property values without a variable. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. -* [`postcss-position`] adds shorthand declarations for position attributes. ### Others From a3e6f7d6be2d5231720bc0863a3220b472013892 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Mon, 15 Jun 2015 14:31:45 -0400 Subject: [PATCH 0335/3047] Add postcss-pseudo-class-enter --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ae333dc83..77465d848 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-map`] enables configuration maps. * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-nested`] unwraps nested rules. +* [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. @@ -318,6 +319,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight +[`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter [`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors From 5dbcfaf21fde20111a7ba6d49a5e24bf096799fa Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Mon, 15 Jun 2015 14:38:39 -0400 Subject: [PATCH 0336/3047] Add postcss-pseudo-class-any-link http://dev.w3.org/csswg/selectors-4/#the-any-link-pseudo --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ae333dc83..b1a0192af 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,7 @@ on different parts of CSS. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. * [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. +* [`postcss-pseudo-class-any-link`] adds `:any-link` pseudo-class. * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. * [`mq4-hover-shim`] supports the `@media (hover)` feature. @@ -313,6 +314,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-spiffing`] lets you use British English in your CSS. [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets +[`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple From c57f63da6152b8d96336aab0ab5d98f75f6da421 Mon Sep 17 00:00:00 2001 From: Sean King Date: Wed, 17 Jun 2015 11:22:25 +1000 Subject: [PATCH 0337/3047] Add PostStylus to README --- README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 138027e5a..a9ea77409 100644 --- a/README.md +++ b/README.md @@ -134,16 +134,19 @@ postcss([ require('cssnext')(), require('cssnano')() ]) }); ``` +You can also use PostCSS plugins with the Stylus preprocessor by using [`poststylus`] + Read the [PostCSS API] for more details about the JS API. -[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md -[CLI tool]: https://github.com/code42day/postcss-cli -[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss -[webpack]: https://github.com/postcss/postcss-loader -[ENB]: https://github.com/theprotein/enb-postcss -[Brunch]: https://github.com/iamvdo/postcss-brunch -[Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/postcss/gulp-postcss +[`poststylus`]: https://github.com/seaneking/poststylus +[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md +[CLI tool]: https://github.com/code42day/postcss-cli +[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss +[webpack]: https://github.com/postcss/postcss-loader +[ENB]: https://github.com/theprotein/enb-postcss +[Brunch]: https://github.com/iamvdo/postcss-brunch +[Grunt]: https://github.com/nDmitry/grunt-postcss +[Gulp]: https://github.com/postcss/gulp-postcss ## Plugins From cc9bc822dd4d875566790d464eda24d6dc379de0 Mon Sep 17 00:00:00 2001 From: Vladimir Starkov Date: Wed, 17 Jun 2015 08:14:04 +0200 Subject: [PATCH 0338/3047] fix native gitter badge --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a9ea77409..b71c9e2fb 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ Twitter account: [@postcss](https://twitter.com/postcss). Weibo account: [postcss](http://weibo.com/postcss). VK.com page: [postcss](https://vk.com/postcss). -[chat-img]: https://badges.gitter.im/Join%20Chat.svg -[ci-img]: https://travis-ci.org/postcss/postcss.svg +[chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg +[ci-img]: https://img.shields.io/travis/postcss/postcss.svg [chat]: https://gitter.im/postcss/postcss [ci]: https://travis-ci.org/postcss/postcss From 61a7fc3182ca6d4b56d6c1fafe36ac65f518001e Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Wed, 17 Jun 2015 15:47:26 +0200 Subject: [PATCH 0339/3047] Update cssnext homepage url --- docs/guidelines/plugin.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index fe3d46fe1..f00c2efec 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -22,7 +22,7 @@ This rule is not mandatory for plugins promoted as separated tool, not like a part of PostCSS ecosystem. Like [cssnext] or [Autoprefixer]. [Autoprefixer]: https://github.com/postcss/autoprefixer -[cssnext]: https://cssnext.github.io/ +[cssnext]: http://cssnext.io/ ### 1.2. Do one thing, and do it well @@ -32,7 +32,7 @@ a plugins pack will be a better solution. For example, [cssnext] contains many small plugins for each W3C specification. Or [cssnano] contains a plugin for each optimization. -[cssnext]: https://cssnext.github.io/ +[cssnext]: http://cssnext.io/ [cssnano]: https://github.com/ben-eb/cssnano ### 1.3. Do not use mixins From 3ca60c1a39ef9dcf97ab84c6e2b69857499bef03 Mon Sep 17 00:00:00 2001 From: Sean King Date: Thu, 18 Jun 2015 01:12:43 +1000 Subject: [PATCH 0340/3047] Add postcss-hexrgba to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b71c9e2fb..966de3818 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. +* [`postcss-hexrgba`] adds shorthad hex methods to rbga() values. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. @@ -383,6 +384,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem +[`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-nested`]: https://github.com/postcss/postcss-nested From c71e2a436d65cddd16eaa216e275241aa6ef9ff7 Mon Sep 17 00:00:00 2001 From: Sean King Date: Thu, 18 Jun 2015 01:28:30 +1000 Subject: [PATCH 0341/3047] Fix typos in postcss-hexrgba addition --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 966de3818..18281a43a 100644 --- a/README.md +++ b/README.md @@ -273,7 +273,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. -* [`postcss-hexrgba`] adds shorthad hex methods to rbga() values. +* [`postcss-hexrgba`] adds shorthand hex methods to rgba() values. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. From a929770dbb039ec40cfbf1ff62b74e472940e08d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 17 Jun 2015 15:34:36 -0400 Subject: [PATCH 0342/3047] Fix spellcheck --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18281a43a..1aa465bb5 100644 --- a/README.md +++ b/README.md @@ -273,7 +273,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. -* [`postcss-hexrgba`] adds shorthand hex methods to rgba() values. +* [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. From 34100898144045b86680ee614e2c687f825a6881 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 17 Jun 2015 15:52:04 -0400 Subject: [PATCH 0343/3047] Fix plugin description width --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1aa465bb5..957142de8 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. -* [`postcss-vertical-rhythm`] adds a vertical rhythm unit calculated from base font-size and line-height. +* [`postcss-vertical-rhythm`] adds a vertical rhythm unit + based on `font-size` and `line-height`. * [`csstyle`] adds components workflow to your styles. ### Grids From 693dae43962c348816695155f7cbcec8ff3fd7be Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 17 Jun 2015 16:04:13 -0400 Subject: [PATCH 0344/3047] Add Color section to Plugins --- README.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 957142de8..63132a351 100644 --- a/README.md +++ b/README.md @@ -220,12 +220,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. -* [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` - to `rgba()`. -* [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, α)` to `#rgb` and `rgba()`. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. -* [`postcss-color-scale`] adds a color scale `cs()` function. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. @@ -241,6 +237,18 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. based on `font-size` and `line-height`. * [`csstyle`] adds components workflow to your styles. +### Colors + +* [`postcss-brand-colors`] inserts company brand colors + in the `brand-colors` module. +* [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` + to `rgba()`. +* [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, alpha)` + to `#rgb` and `rgba()`. +* [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. +* [`postcss-color-scale`] adds a color scale `cs()` function. +* [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. + ### Grids * [`postcss-grid`] adds a semantic grid system. @@ -274,7 +282,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. -* [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. @@ -286,10 +293,7 @@ See also plugins in modular minifier [`cssnano`]. ### Others -* [`postcss-brand-colors`] inserts company brand colors - in the `brand-colors` module. * [`postcss-class-prefix`] adds a prefix/namespace to class selectors. -* [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. From 39b4991dae5df2c2f4f1853601570fb94a748563 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 18 Jun 2015 14:14:07 -0400 Subject: [PATCH 0345/3047] Remove csswring to promote cssnano --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 63132a351..110d2c4d8 100644 --- a/README.md +++ b/README.md @@ -269,7 +269,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-sprites`] generates CSS sprites from stylesheets. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. -* [`csswring`] is a CSS minifier. * [`css-byebye`] removes the CSS rules that you don’t want. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. From eb2987af6a2736a4a78c7bf4a760b62bcbc9c47b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 18 Jun 2015 14:14:45 -0400 Subject: [PATCH 0346/3047] Clean links --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 110d2c4d8..e19ab238f 100644 --- a/README.md +++ b/README.md @@ -416,7 +416,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-for`]: https://github.com/antyakushev/postcss-for [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace -[`csswring`]: https://github.com/hail2u/node-csswring [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss From c98504eccfbfec14d58f3264c35c25e53005e8f2 Mon Sep 17 00:00:00 2001 From: Romain Date: Sat, 20 Jun 2015 00:12:50 +0500 Subject: [PATCH 0347/3047] Optimize and idiomantify tokenizer --- lib/tokenize.js | 123 ++++++++++++++++++++++++------------------------ 1 file changed, 62 insertions(+), 61 deletions(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index f54d8c5a0..f996b81e2 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -1,23 +1,24 @@ -let singleQuote = "'".charCodeAt(0), - doubleQuote = '"'.charCodeAt(0), - backslash = '\\'.charCodeAt(0), - slash = '/'.charCodeAt(0), - newline = '\n'.charCodeAt(0), - space = ' '.charCodeAt(0), - feed = '\f'.charCodeAt(0), - tab = '\t'.charCodeAt(0), - cr = '\r'.charCodeAt(0), - openBracket = '('.charCodeAt(0), - closeBracket = ')'.charCodeAt(0), - openCurly = '{'.charCodeAt(0), - closeCurly = '}'.charCodeAt(0), - semicolon = ';'.charCodeAt(0), - asterisk = '*'.charCodeAt(0), - colon = ':'.charCodeAt(0), - at = '@'.charCodeAt(0), - atEnd = /[ \n\t\r\{\(\)'"\\;/]/g, - wordEnd = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g, - badBracket = /.[\\\/\("'\n]/; +const SINGLE_QUOTE_CHAR = 39; // `'' +const DOUBLE_QUOTE_CHAR = 34; // `"' +const BACKSLASH_CHAR = 92; // `\' +const SLASH_CHAR = 47; // `/' +const NEWLINE_CHAR = 10; // `\n' +const SPACE_CHAR = 32; // ` ' +const FEED_CHAR = 12; // `\f' +const TAB_CHAR = 9; // `\t' +const CR_CHAR = 13; // `\r' +const OPEN_PARENTHESES_CHAR = 40; // `(' +const CLOSE_PARENTHESES_CHAR = 41; // `)' +const OPEN_CURLY_CHAR = 123; // `{' +const CLOSE_CURLY_CHAR = 125; // `}' +const SEMICOLON_CHAR = 59; // `;' +const ASTERICK_CHAR = 42; // `*' +const COLON_CHAR = 58; // `:' +const AT_CHAR = 64; // `@' +const RE_AT_END = /[ \n\t\r\{\(\)'"\\;/]/g; +const RE_WORD_END = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g; +const RE_BAD_BRACKET = /.[\\\/\("'\n]/; + export default function tokenize(input) { let tokens = []; @@ -43,56 +44,56 @@ export default function tokenize(input) { while ( pos < length ) { code = css.charCodeAt(pos); - if ( code === newline ) { + if ( code === NEWLINE_CHAR ) { offset = pos; line += 1; } switch ( code ) { - case newline: - case space: - case tab: - case cr: - case feed: + case NEWLINE_CHAR: + case SPACE_CHAR: + case TAB_CHAR: + case CR_CHAR: + case FEED_CHAR: next = pos; do { next += 1; code = css.charCodeAt(next); - if ( code === newline ) { + if ( code === NEWLINE_CHAR ) { offset = next; line += 1; } - } while ( code === space || - code === newline || - code === tab || - code === cr || - code === feed ); + } while ( code === SPACE_CHAR || + code === NEWLINE_CHAR || + code === TAB_CHAR || + code === CR_CHAR || + code === FEED_CHAR ); tokens.push(['space', css.slice(pos, next)]); pos = next - 1; break; - case openCurly: + case OPEN_CURLY_CHAR: tokens.push(['{', '{', line, pos - offset]); break; - case closeCurly: + case CLOSE_CURLY_CHAR: tokens.push(['}', '}', line, pos - offset]); break; - case colon: + case COLOR_CHAR: tokens.push([':', ':', line, pos - offset]); break; - case semicolon: + case SEMICOLON_CHAR: tokens.push([';', ';', line, pos - offset]); break; - case openBracket: + case OPEN_PARENTHESES_CHAR: next = css.indexOf(')', pos + 1); content = css.slice(pos, next + 1); - if ( next === -1 || badBracket.test(content) ) { + if ( next === -1 || RE_BAD_BRACKET.test(content) ) { tokens.push(['(', '(', line, pos - offset]); } else { tokens.push(['brackets', content, @@ -104,20 +105,20 @@ export default function tokenize(input) { break; - case closeBracket: + case CLOSE_PARENTHESES_CHAR: tokens.push([')', ')', line, pos - offset]); break; - case singleQuote: - case doubleQuote: - quote = code === singleQuote ? "'" : '"'; + case SINGLE_QUOTE_CHAR: + case DOUBLE_QUOTE_CHAR: + quote = code === SINGLE_QUOTE_CHAR ? "'" : '"'; next = pos; do { escaped = false; next = css.indexOf(quote, next + 1); if ( next === -1 ) unclosed('quote', quote); escapePos = next; - while ( css.charCodeAt(escapePos - 1) === backslash ) { + while ( css.charCodeAt(escapePos - 1) === BACKSLASH_CHAR ) { escapePos -= 1; escaped = !escaped; } @@ -130,13 +131,13 @@ export default function tokenize(input) { pos = next; break; - case at: - atEnd.lastIndex = pos + 1; - atEnd.test(css); - if ( atEnd.lastIndex === 0 ) { + case AT_CHAR: + RE_AT_END.lastIndex = pos + 1; + RE_AT_END.test(css); + if ( RE_AT_END.lastIndex === 0 ) { next = css.length - 1; } else { - next = atEnd.lastIndex - 2; + next = RE_AT_END.lastIndex - 2; } tokens.push(['at-word', css.slice(pos, next + 1), line, pos - offset, @@ -145,20 +146,20 @@ export default function tokenize(input) { pos = next; break; - case backslash: + case BACKSLASH_CHAR: next = pos; escape = true; - while ( css.charCodeAt(next + 1) === backslash ) { + while ( css.charCodeAt(next + 1) === BACKSLASH_CHAR ) { next += 1; escape = !escape; } code = css.charCodeAt(next + 1); - if ( escape && (code !== slash && - code !== space && - code !== newline && - code !== tab && - code !== cr && - code !== feed ) ) { + if ( escape && (code !== SLASH_CHAR && + code !== SPACE_CHAR && + code !== NEWLINE_CHAR && + code !== TAB_CHAR && + code !== CR_CHAR && + code !== FEED_CHAR ) ) { next += 1; } tokens.push(['word', css.slice(pos, next + 1), @@ -169,7 +170,7 @@ export default function tokenize(input) { break; default: - if ( code === slash && css.charCodeAt(pos + 1) === asterisk ) { + if ( code === SLASH_CHAR && css.charCodeAt(pos + 1) === ASTERICK_CHAR ) { next = css.indexOf('*/', pos + 2) + 1; if ( next === 0 ) unclosed('comment', '*/'); @@ -195,12 +196,12 @@ export default function tokenize(input) { pos = next; } else { - wordEnd.lastIndex = pos + 1; - wordEnd.test(css); - if ( wordEnd.lastIndex === 0 ) { + RE_WORD_END.lastIndex = pos + 1; + RE_WORD_END.test(css); + if ( RE_WORD_END.lastIndex === 0 ) { next = css.length - 1; } else { - next = wordEnd.lastIndex - 2; + next = RE_WORD_END.lastIndex - 2; } tokens.push(['word', css.slice(pos, next + 1), From 42a1986a985ed34107361c624918610598d47bc6 Mon Sep 17 00:00:00 2001 From: Romain Date: Sat, 20 Jun 2015 00:23:30 +0500 Subject: [PATCH 0348/3047] Typos correct --- lib/tokenize.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index f996b81e2..454d34ef5 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -19,7 +19,6 @@ const RE_AT_END = /[ \n\t\r\{\(\)'"\\;/]/g; const RE_WORD_END = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g; const RE_BAD_BRACKET = /.[\\\/\("'\n]/; - export default function tokenize(input) { let tokens = []; let css = input.css.valueOf(); @@ -81,7 +80,7 @@ export default function tokenize(input) { tokens.push(['}', '}', line, pos - offset]); break; - case COLOR_CHAR: + case COLON_CHAR: tokens.push([':', ':', line, pos - offset]); break; From b3f6f495190cbd9e2a5b03137fa7101f019c2ef3 Mon Sep 17 00:00:00 2001 From: Romain Date: Sat, 20 Jun 2015 00:31:47 +0500 Subject: [PATCH 0349/3047] ESLint fixing --- lib/tokenize.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index 454d34ef5..c16151dc6 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -169,7 +169,8 @@ export default function tokenize(input) { break; default: - if ( code === SLASH_CHAR && css.charCodeAt(pos + 1) === ASTERICK_CHAR ) { + if ( code === SLASH_CHAR && + css.charCodeAt(pos + 1) === ASTERICK_CHAR ) { next = css.indexOf('*/', pos + 2) + 1; if ( next === 0 ) unclosed('comment', '*/'); From c629fec88ed9cbbb7ebcf949c2639fb76d24a8ab Mon Sep 17 00:00:00 2001 From: Sean King Date: Sat, 20 Jun 2015 12:57:08 +1000 Subject: [PATCH 0350/3047] Add postcss-clearfix to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e19ab238f..2f10cd4cd 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,8 @@ See also plugins in modular minifier [`cssnano`]. ### Shortcuts +* [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` + declaration. * [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. @@ -384,6 +386,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats [`postcss-position`]: https://github.com/seaneking/postcss-position +[`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites From 3a147ac6aee8735149d9f6e9d395b501f9bf7ea2 Mon Sep 17 00:00:00 2001 From: Vladimir Starkov Date: Sun, 21 Jun 2015 11:44:51 +0200 Subject: [PATCH 0351/3047] =?UTF-8?q?add=20postcss-color-mix=20to=20plugin?= =?UTF-8?q?s=E2=80=99=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2f10cd4cd..5e025dd8c 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. +* [`postcss-color-mix`] mixes two colors together. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, alpha)` @@ -377,6 +378,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl +[`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz From 3a97b707612db1306392fd14204be4c71a6df6c1 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Sun, 21 Jun 2015 12:21:08 -0500 Subject: [PATCH 0352/3047] Update postcss-css-variables plugin description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e025dd8c..a684cba4e 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ on different parts of CSS. * [`postcss-custom-media`] supports custom aliases for media queries. * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. -* [`postcss-css-variables`] supports variables for descendant/nested rules and at-rules +* [`postcss-css-variables`] supports variables for descendant/nested rules, pseudo selectors, and at-rules * [`postcss-custom-selectors`] adds custom aliases for selectors. * [`postcss-font-variant`] transpiles human-readable `font-variant` to more widely supported CSS. From 2ed9de546d08074dba19bc78f05a0d31972c5c4d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Jun 2015 21:52:18 -0400 Subject: [PATCH 0353/3047] Shorter names --- lib/tokenize.js | 105 ++++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 53 deletions(-) diff --git a/lib/tokenize.js b/lib/tokenize.js index c16151dc6..905170a6e 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -1,23 +1,23 @@ -const SINGLE_QUOTE_CHAR = 39; // `'' -const DOUBLE_QUOTE_CHAR = 34; // `"' -const BACKSLASH_CHAR = 92; // `\' -const SLASH_CHAR = 47; // `/' -const NEWLINE_CHAR = 10; // `\n' -const SPACE_CHAR = 32; // ` ' -const FEED_CHAR = 12; // `\f' -const TAB_CHAR = 9; // `\t' -const CR_CHAR = 13; // `\r' -const OPEN_PARENTHESES_CHAR = 40; // `(' -const CLOSE_PARENTHESES_CHAR = 41; // `)' -const OPEN_CURLY_CHAR = 123; // `{' -const CLOSE_CURLY_CHAR = 125; // `}' -const SEMICOLON_CHAR = 59; // `;' -const ASTERICK_CHAR = 42; // `*' -const COLON_CHAR = 58; // `:' -const AT_CHAR = 64; // `@' -const RE_AT_END = /[ \n\t\r\{\(\)'"\\;/]/g; -const RE_WORD_END = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g; -const RE_BAD_BRACKET = /.[\\\/\("'\n]/; +const SINGLE_QUOTE = 39; // `'' +const DOUBLE_QUOTE = 34; // `"' +const BACKSLASH = 92; // `\' +const SLASH = 47; // `/' +const NEWLINE = 10; // `\n' +const SPACE = 32; // ` ' +const FEED = 12; // `\f' +const TAB = 9; // `\t' +const CR = 13; // `\r' +const OPEN_PARENTHESES = 40; // `(' +const CLOSE_PARENTHESES = 41; // `)' +const OPEN_CURLY = 123; // `{' +const CLOSE_CURLY = 125; // `}' +const SEMICOLON = 59; // `;' +const ASTERICK = 42; // `*' +const COLON = 58; // `:' +const AT = 64; // `@' +const RE_AT_END = /[ \n\t\r\{\(\)'"\\;/]/g; +const RE_WORD_END = /[ \n\t\r\(\)\{\}:;@!'"\\]|\/(?=\*)/g; +const RE_BAD_BRACKET = /.[\\\/\("'\n]/; export default function tokenize(input) { let tokens = []; @@ -43,52 +43,52 @@ export default function tokenize(input) { while ( pos < length ) { code = css.charCodeAt(pos); - if ( code === NEWLINE_CHAR ) { + if ( code === NEWLINE ) { offset = pos; line += 1; } switch ( code ) { - case NEWLINE_CHAR: - case SPACE_CHAR: - case TAB_CHAR: - case CR_CHAR: - case FEED_CHAR: + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: next = pos; do { next += 1; code = css.charCodeAt(next); - if ( code === NEWLINE_CHAR ) { + if ( code === NEWLINE ) { offset = next; line += 1; } - } while ( code === SPACE_CHAR || - code === NEWLINE_CHAR || - code === TAB_CHAR || - code === CR_CHAR || - code === FEED_CHAR ); + } while ( code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED ); tokens.push(['space', css.slice(pos, next)]); pos = next - 1; break; - case OPEN_CURLY_CHAR: + case OPEN_CURLY: tokens.push(['{', '{', line, pos - offset]); break; - case CLOSE_CURLY_CHAR: + case CLOSE_CURLY: tokens.push(['}', '}', line, pos - offset]); break; - case COLON_CHAR: + case COLON: tokens.push([':', ':', line, pos - offset]); break; - case SEMICOLON_CHAR: + case SEMICOLON: tokens.push([';', ';', line, pos - offset]); break; - case OPEN_PARENTHESES_CHAR: + case OPEN_PARENTHESES: next = css.indexOf(')', pos + 1); content = css.slice(pos, next + 1); @@ -104,20 +104,20 @@ export default function tokenize(input) { break; - case CLOSE_PARENTHESES_CHAR: + case CLOSE_PARENTHESES: tokens.push([')', ')', line, pos - offset]); break; - case SINGLE_QUOTE_CHAR: - case DOUBLE_QUOTE_CHAR: - quote = code === SINGLE_QUOTE_CHAR ? "'" : '"'; + case SINGLE_QUOTE: + case DOUBLE_QUOTE: + quote = code === SINGLE_QUOTE ? "'" : '"'; next = pos; do { escaped = false; next = css.indexOf(quote, next + 1); if ( next === -1 ) unclosed('quote', quote); escapePos = next; - while ( css.charCodeAt(escapePos - 1) === BACKSLASH_CHAR ) { + while ( css.charCodeAt(escapePos - 1) === BACKSLASH ) { escapePos -= 1; escaped = !escaped; } @@ -130,7 +130,7 @@ export default function tokenize(input) { pos = next; break; - case AT_CHAR: + case AT: RE_AT_END.lastIndex = pos + 1; RE_AT_END.test(css); if ( RE_AT_END.lastIndex === 0 ) { @@ -145,20 +145,20 @@ export default function tokenize(input) { pos = next; break; - case BACKSLASH_CHAR: + case BACKSLASH: next = pos; escape = true; - while ( css.charCodeAt(next + 1) === BACKSLASH_CHAR ) { + while ( css.charCodeAt(next + 1) === BACKSLASH ) { next += 1; escape = !escape; } code = css.charCodeAt(next + 1); - if ( escape && (code !== SLASH_CHAR && - code !== SPACE_CHAR && - code !== NEWLINE_CHAR && - code !== TAB_CHAR && - code !== CR_CHAR && - code !== FEED_CHAR ) ) { + if ( escape && (code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED ) ) { next += 1; } tokens.push(['word', css.slice(pos, next + 1), @@ -169,8 +169,7 @@ export default function tokenize(input) { break; default: - if ( code === SLASH_CHAR && - css.charCodeAt(pos + 1) === ASTERICK_CHAR ) { + if ( code === SLASH && css.charCodeAt(pos + 1) === ASTERICK ) { next = css.indexOf('*/', pos + 2) + 1; if ( next === 0 ) unclosed('comment', '*/'); From 63d18d10a2ed131b2730e9dfc92bc4920dc93e5d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Jun 2015 21:58:36 -0400 Subject: [PATCH 0354/3047] Update dependencies --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c64057b96..988257b36 100644 --- a/package.json +++ b/package.json @@ -11,23 +11,23 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "es6-promise": "~2.2.0", + "es6-promise": "~2.3.0", "source-map": "~0.4.2", "js-base64": "~2.1.8", - "babel": "5.5.1" + "babel": "5.6.2" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", "load-resources": "0.1.0", - "gulp-eslint": "0.13.2", + "gulp-eslint": "0.14.0", "gulp-babel": "5.1.0", - "gulp-mocha": "2.1.1", + "gulp-mocha": "2.1.2", "yaspeller": "2.4.0", "gulp-util": "3.0.5", "gulp-run": "1.6.8", - "fs-extra": "0.18.4", - "sinon": "1.14.1", + "fs-extra": "0.20.0", + "sinon": "1.15.3", "mocha": "2.2.5", "gulp": "3.9.0", "chai": "3.0.0" From fb3bff8020a1cd1430ff55d7a26362e821cd6efa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Jun 2015 22:01:04 -0400 Subject: [PATCH 0355/3047] Release 4.1.12 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a162d6ff..57ddfdddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.12 +* Update Promise polyfill. + ## 4.1.11 * Fix error message on wrong plugin format. diff --git a/package.json b/package.json index 988257b36..9ba19d9fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.11", + "version": "4.1.12", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 136aeadf21bf54b8bfef614953ebb2ff17f6a849 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 22 Jun 2015 20:37:21 -0400 Subject: [PATCH 0356/3047] Add postcss-use to docs --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a684cba4e..65176dc05 100644 --- a/README.md +++ b/README.md @@ -152,8 +152,10 @@ Read the [PostCSS API] for more details about the JS API. ### Control -With [`postcss-plugin-context`] you can run different plugins -on different parts of CSS. +There is two way to make PostCSS magic more explicit. + +Define a plugins contexts and switch between them in different parts of CSS +by [`postcss-plugin-context`]: ```css .css-example.is-test-for-css4-browsers { @@ -166,7 +168,14 @@ on different parts of CSS. } ``` +Or to enable plugins right in CSS by [`postcss-use`]: + +```css +@use autoprefixer(browsers: ['last 2 versions']); +``` + [`postcss-plugin-context`]: https://github.com/postcss/postcss-plugin-context +[`postcss-use`]: https://github.com/postcss/postcss-use ### Packs From ef7657ddb140b9c415ed52f2c52b4e3407041355 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 22 Jun 2015 20:38:01 -0400 Subject: [PATCH 0357/3047] Better postcss-use example --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 65176dc05..6dae3bb0f 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,10 @@ Or to enable plugins right in CSS by [`postcss-use`]: ```css @use autoprefixer(browsers: ['last 2 versions']); + +:fullscreen a { + display: flex +} ``` [`postcss-plugin-context`]: https://github.com/postcss/postcss-plugin-context From 1a13f886ded0c3765d0d0f5457cf6bfa8409c325 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Tue, 23 Jun 2015 10:41:44 -0400 Subject: [PATCH 0358/3047] Add postcss-conic-gradient --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6dae3bb0f..ec8065329 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,7 @@ Or to enable plugins right in CSS by [`postcss-use`]: * [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. * [`postcss-color-hwb`] transforms `hwb()` to widely compatible `rgb()`. * [`postcss-color-rebeccapurple`] supports the `rebeccapurple` color. +* [`postcss-conic-gradient`] supports the `conic-gradient` background. * [`postcss-custom-media`] supports custom aliases for media queries. * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. @@ -357,6 +358,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm [`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset From dbafda0af11fd7afff5a7ac3fca2b1e12f57060e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 23 Jun 2015 18:42:13 -0400 Subject: [PATCH 0359/3047] Add support for inlined map with base64 encoding --- lib/previous-map.js | 12 ++++++++---- test/previous-map.js | 8 ++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/previous-map.js b/lib/previous-map.js index 24c7a4250..cef919b65 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -36,14 +36,18 @@ export default class PreviousMap { } decodeInline(text) { - let uri = 'data:application/json,'; - let base64 = 'data:application/json;base64,'; + let utf64 = 'data:application/json;charset=utf-8;base64,'; + let b64 = 'data:application/json;base64,'; + let uri = 'data:application/json,'; if ( this.startWith(text, uri) ) { return decodeURIComponent( text.substr(uri.length) ); - } else if ( this.startWith(text, base64) ) { - return Base64.decode( text.substr(base64.length) ); + } else if ( this.startWith(text, b64) ) { + return Base64.decode( text.substr(b64.length) ); + + } else if ( this.startWith(text, utf64) ) { + return Base64.decode( text.substr(utf64.length) ); } else { let encoding = text.match(/data:application\/json;([^,]+),/)[1]; diff --git a/test/previous-map.js b/test/previous-map.js index 95963d50b..742aa6de6 100644 --- a/test/previous-map.js +++ b/test/previous-map.js @@ -63,6 +63,14 @@ describe('PreviousMap', () => { expect(parse(css).prevMap.text).to.eql(map); }); + it('decodes base64 UTF-8 maps', () => { + let b64 = new Buffer(map).toString('base64'); + let css = 'a{}\n/*# sourceMappingURL=data:application/json;' + + 'charset=utf-8;base64,' + b64 + ' */'; + + expect(parse(css).prevMap.text).to.eql(map); + }); + it('decodes URI maps', () => { let uri = 'data:application/json,' + decodeURI(map); let css = `a{}\n/*# sourceMappingURL=${ uri } */`; From e320a2076c29c3414a307e1179744152477fc439 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 23 Jun 2015 18:54:29 -0400 Subject: [PATCH 0360/3047] Update dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9ba19d9fe..0e9371fe3 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "es6-promise": "~2.3.0", "source-map": "~0.4.2", "js-base64": "~2.1.8", - "babel": "5.6.2" + "babel": "5.6.4" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -24,9 +24,9 @@ "gulp-babel": "5.1.0", "gulp-mocha": "2.1.2", "yaspeller": "2.4.0", - "gulp-util": "3.0.5", + "gulp-util": "3.0.6", "gulp-run": "1.6.8", - "fs-extra": "0.20.0", + "fs-extra": "0.20.1", "sinon": "1.15.3", "mocha": "2.2.5", "gulp": "3.9.0", From 5c6c194475b1fe6ec20f5f5ac4aea7012bd28f13 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 23 Jun 2015 18:55:46 -0400 Subject: [PATCH 0361/3047] Release 4.1.13 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57ddfdddf..f5eca6de2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.13 +* Fix input inlined source maps with UTF-8 encoding. + ## 4.1.12 * Update Promise polyfill. diff --git a/package.json b/package.json index 0e9371fe3..18edf7525 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.12", + "version": "4.1.13", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From c3fac98ec506ca9753fbbc03ab0579019431b088 Mon Sep 17 00:00:00 2001 From: longdog Date: Wed, 24 Jun 2015 10:06:17 +0300 Subject: [PATCH 0362/3047] add postcss-color-pantone to plugins list --- .yaspellerrc | 3 ++- README.md | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 311ab21b9..f75d70fd8 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -101,6 +101,7 @@ "CSS4", "JS", "js", - "vs" + "vs", + "pantone" ] } diff --git a/README.md b/README.md index ec8065329..694f627c0 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, alpha)` to `#rgb` and `rgba()`. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. +* [`postcss-color-pantone`] transforms pantone color to rgb. * [`postcss-color-scale`] adds a color scale `cs()` function. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. @@ -362,6 +363,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty From 77c51598ac1b8d6329e809ba3e620a1db5bb3ce1 Mon Sep 17 00:00:00 2001 From: Mark Goodyear Date: Wed, 24 Jun 2015 18:09:37 +0100 Subject: [PATCH 0363/3047] Add postcss-pointer plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 694f627c0..afb72f91a 100644 --- a/README.md +++ b/README.md @@ -339,6 +339,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-spiffing`] lets you use British English in your CSS. +* [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link @@ -411,6 +412,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem [`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba +[`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-nested`]: https://github.com/postcss/postcss-nested From 9565f6e2f5257c2f982a595c8bb13fba9f43b63f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 24 Jun 2015 13:16:44 -0400 Subject: [PATCH 0364/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afb72f91a..00459bca4 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, alpha)` to `#rgb` and `rgba()`. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. -* [`postcss-color-pantone`] transforms pantone color to rgb. +* [`postcss-color-pantone`] transforms pantone color to RGB. * [`postcss-color-scale`] adds a color scale `cs()` function. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. From 03c9f5558f1bf5b3f66489e0e06e4786ff188f36 Mon Sep 17 00:00:00 2001 From: Wolfgang Kluge Date: Wed, 24 Jun 2015 21:59:48 +0200 Subject: [PATCH 0365/3047] Add postcss-media-variables --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 00459bca4..a478693db 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit based on `font-size` and `line-height`. * [`csstyle`] adds components workflow to your styles. +* [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules ### Colors @@ -446,6 +447,7 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost +[`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables ## How to Develop PostCSS Plugin From 5cfc245fb8eef9558c36c36741ba26b8262c82a4 Mon Sep 17 00:00:00 2001 From: Wolfgang Kluge Date: Wed, 24 Jun 2015 22:49:28 +0200 Subject: [PATCH 0366/3047] Fix position of links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a478693db..bb115aea2 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. * [`postcss-map`] enables configuration maps. +* [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-nested`] unwraps nested rules. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. @@ -250,7 +251,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit based on `font-size` and `line-height`. * [`csstyle`] adds components workflow to your styles. -* [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules ### Colors @@ -358,6 +358,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm [`postcss-color-function`]: https://github.com/postcss/postcss-color-function @@ -447,7 +448,6 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse [`lost`]: https://github.com/corysimmons/lost -[`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables ## How to Develop PostCSS Plugin From 6af3e1cb77aae3b1beaecf5abe8de973c2b833f0 Mon Sep 17 00:00:00 2001 From: Wolfgang Kluge Date: Thu, 25 Jun 2015 08:20:46 +0200 Subject: [PATCH 0367/3047] Ensure correct order of plugins and links Plugins: - `postcss-a*` to `postcss-z*` - `a*` to `z*` Links: sort only in between same length ids - `[postcss-a*]` to `[postcss-z*]` - `[a*]` to `[z*]` --- README.md | 102 +++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index bb115aea2..906f6eea6 100644 --- a/README.md +++ b/README.md @@ -140,13 +140,13 @@ Read the [PostCSS API] for more details about the JS API. [`poststylus`]: https://github.com/seaneking/poststylus [PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md -[CLI tool]: https://github.com/code42day/postcss-cli [Broccoli]: https://github.com/jeffjewiss/broccoli-postcss +[CLI tool]: https://github.com/code42day/postcss-cli [webpack]: https://github.com/postcss/postcss-loader -[ENB]: https://github.com/theprotein/enb-postcss [Brunch]: https://github.com/iamvdo/postcss-brunch [Grunt]: https://github.com/nDmitry/grunt-postcss [Gulp]: https://github.com/postcss/gulp-postcss +[ENB]: https://github.com/theprotein/enb-postcss ## Plugins @@ -183,10 +183,10 @@ Or to enable plugins right in CSS by [`postcss-use`]: ### Packs -* [`cssnano`] contains plugins that optimize CSS size for use in production. -* [`cssnext`] contains plugins that allow you to use future CSS features today. * [`atcss`] contains plugins that transform your CSS according to special annotation comments. +* [`cssnano`] contains plugins that optimize CSS size for use in production. +* [`cssnext`] contains plugins that allow you to use future CSS features today. [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ @@ -200,10 +200,10 @@ Or to enable plugins right in CSS by [`postcss-use`]: * [`postcss-color-hwb`] transforms `hwb()` to widely compatible `rgb()`. * [`postcss-color-rebeccapurple`] supports the `rebeccapurple` color. * [`postcss-conic-gradient`] supports the `conic-gradient` background. +* [`postcss-css-variables`] supports variables for descendant/nested rules, pseudo selectors, and at-rules * [`postcss-custom-media`] supports custom aliases for media queries. * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. -* [`postcss-css-variables`] supports variables for descendant/nested rules, pseudo selectors, and at-rules * [`postcss-custom-selectors`] adds custom aliases for selectors. * [`postcss-font-variant`] transpiles human-readable `font-variant` to more widely supported CSS. @@ -234,12 +234,12 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. +* [`postcss-conditionals`] adds `@if` statements. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. -* [`postcss-conditionals`] adds `@if` statements. +* [`postcss-map`] enables configuration maps. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. -* [`postcss-map`] enables configuration maps. * [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-nested`] unwraps nested rules. @@ -256,11 +256,11 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. -* [`postcss-color-mix`] mixes two colors together. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, alpha)` to `#rgb` and `rgba()`. +* [`postcss-color-mix`] mixes two colors together. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-color-pantone`] transforms pantone color to RGB. * [`postcss-color-scale`] adds a color scale `cs()` function. @@ -339,25 +339,25 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. -* [`postcss-spiffing`] lets you use British English in your CSS. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. +* [`postcss-spiffing`] lets you use British English in your CSS. [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets -[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight [`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter -[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties +[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments [`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries -[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm @@ -366,87 +366,87 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset -[`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone -[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette +[`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone +[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty +[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer +[`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale +[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend -[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables -[`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale -[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer +[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors +[`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals -[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit +[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer +[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents -[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media -[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings -[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors -[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant -[`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix -[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer -[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide +[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale -[`postcss-will-change`]: https://github.com/postcss/postcss-will-change -[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules -[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family -[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha +[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules +[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide +[`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl -[`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-image-set`]: https://github.com/alex499/postcss-image-set -[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz +[`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin -[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters -[`postcss-messages`]: https://github.com/postcss/postcss-messages -[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-position`]: https://github.com/seaneking/postcss-position -[`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing +[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz +[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-easings`]: https://github.com/postcss/postcss-easings -[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity -[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites -[`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem [`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba +[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer +[`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem +[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-import`]: https://github.com/postcss/postcss-import +[`postcss-mixins`]: https://github.com/postcss/postcss-mixins [`postcss-nested`]: https://github.com/postcss/postcss-nested [`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex -[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid -[`postcss-mixins`]: https://github.com/postcss/postcss-mixins -[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`list-selectors`]: https://github.com/davidtheclark/list-selectors -[`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`postcss-focus`]: https://github.com/postcss/postcss-focus +[`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x -[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat -[`autoprefixer`]: https://github.com/postcss/autoprefixer -[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker +[`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-each`]: https://github.com/outpunk/postcss-each [`postcss-epub`]: https://github.com/Rycochet/postcss-epub -[`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-grid`]: https://github.com/andyjansson/postcss-grid -[`postcss-size`]: https://github.com/postcss/postcss-size [`postcss-host`]: https://github.com/vitkarpov/postcss-host +[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat +[`postcss-size`]: https://github.com/postcss/postcss-size [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin +[`autoprefixer`]: https://github.com/postcss/autoprefixer +[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker [`postcss-bem`]: https://github.com/ileri/postcss-bem -[`postcss-url`]: https://github.com/postcss/postcss-url -[`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-for`]: https://github.com/antyakushev/postcss-for +[`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-url`]: https://github.com/postcss/postcss-url [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss -[`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`doiuse`]: https://github.com/anandthakker/doiuse +[`pixrem`]: https://github.com/robwierzbowski/node-pixrem +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost ## How to Develop PostCSS Plugin From 5ce027817f9ec04606a796b07992b9788ce61156 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 25 Jun 2015 12:44:05 -0400 Subject: [PATCH 0368/3047] Clean up plugins list --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 906f6eea6..8b319bf66 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ postcss([ require('cssnext')(), require('cssnano')() ]) }); ``` -You can also use PostCSS plugins with the Stylus preprocessor by using [`poststylus`] +You can also use PostCSS plugins with the Stylus by using [`poststylus`]. Read the [PostCSS API] for more details about the JS API. @@ -200,13 +200,14 @@ Or to enable plugins right in CSS by [`postcss-use`]: * [`postcss-color-hwb`] transforms `hwb()` to widely compatible `rgb()`. * [`postcss-color-rebeccapurple`] supports the `rebeccapurple` color. * [`postcss-conic-gradient`] supports the `conic-gradient` background. -* [`postcss-css-variables`] supports variables for descendant/nested rules, pseudo selectors, and at-rules +* [`postcss-css-variables`] supports variables for nested rules, + selectors, and at-rules * [`postcss-custom-media`] supports custom aliases for media queries. * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. * [`postcss-custom-selectors`] adds custom aliases for selectors. -* [`postcss-font-variant`] transpiles human-readable `font-variant` to more - widely supported CSS. +* [`postcss-font-variant`] transpiles human-readable `font-variant` + to more widely supported CSS. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. * [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. @@ -220,7 +221,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal. * [`postcss-epub`] adds the `-epub-` prefix to relevant properties. -* [`postcss-image-set`] adds `background-image` with first image for `image-set()` +* [`postcss-image-set`] adds `background-image` with first image + for `image-set()`. * [`postcss-opacity`] adds opacity filter for IE8. * [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors for IE 8 compatibility. @@ -240,7 +242,8 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-map`] enables configuration maps. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. -* [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules +* [`postcss-media-variables`] adds support for `var()` and `calc()` + in `@media` rules * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-nested`] unwraps nested rules. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. From 27451f34cf1f2fc716edc62705b7e028d9a4015f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 27 Jun 2015 10:47:10 -0400 Subject: [PATCH 0369/3047] Update dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 18edf7525..f35f26b8a 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "es6-promise": "~2.3.0", "source-map": "~0.4.2", "js-base64": "~2.1.8", - "babel": "5.6.4" + "babel": "5.6.14" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -27,7 +27,7 @@ "gulp-util": "3.0.6", "gulp-run": "1.6.8", "fs-extra": "0.20.1", - "sinon": "1.15.3", + "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", "chai": "3.0.0" From b354524a784063d6e9815d94f0247b1e21f4b664 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Mon, 29 Jun 2015 02:44:06 -0400 Subject: [PATCH 0370/3047] Add postcss-short --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8b319bf66..ecbc40f4c 100644 --- a/README.md +++ b/README.md @@ -308,6 +308,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-position`] adds shorthand declarations for position attributes. * [`postcss-property-lookup`] allows referencing property values without a variable. +* [`postcss-short`] adds and extends numerous shorthand properties. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. @@ -428,6 +429,7 @@ See also plugins in modular minifier [`cssnano`]. [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`postcss-focus`]: https://github.com/postcss/postcss-focus [`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`postcss-short`]: https://github.com/jonathantneal/postcss-short [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-each`]: https://github.com/outpunk/postcss-each From e97b9cbd252b650b180b533d3392d71cb0934000 Mon Sep 17 00:00:00 2001 From: Ivan Voischev Date: Mon, 29 Jun 2015 11:22:52 +0300 Subject: [PATCH 0371/3047] gulpfile.js > gulpfile.babel.js --- .npmignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.npmignore b/.npmignore index 1dc8e3b23..e80cc5a26 100644 --- a/.npmignore +++ b/.npmignore @@ -11,5 +11,5 @@ fail.css /postcss.js npm-debug.log -gulpfile.js +gulpfile.babel.js logo.svg From 9ae6888feda3bc544426c012553459a7fe807352 Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Mon, 29 Jun 2015 10:37:35 +0200 Subject: [PATCH 0372/3047] Fix custom-selector example --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ecbc40f4c..4da73bee3 100644 --- a/README.md +++ b/README.md @@ -50,11 +50,11 @@ You can use the [cssnext] plugin pack and write future CSS code right now: @custom-media --mobile (width <= 640px); @custom-selector --heading h1, h2, h3, h4, h5, h6; -.post-article --heading { +.post-article :--heading { color: color( var(--mainColor) blackness(+20%) ); } @media (--mobile) { - .post-article --heading { + .post-article :--heading { margin-top: 0; } } From fd12e3138d364b9fb0d72c7a341d112d469ef03f Mon Sep 17 00:00:00 2001 From: andrepolischuk Date: Mon, 29 Jun 2015 15:25:52 +0300 Subject: [PATCH 0373/3047] Add postcss-border to plugin list --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4da73bee3..de971f09d 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,8 @@ See also plugins in modular minifier [`cssnano`]. ### Shortcuts +* [`postcss-border`] adds shorthand declarations for width + and color of all borders in `border` property. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. * [`postcss-default-unit`] adds default unit to numeric CSS properties. @@ -405,6 +407,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-image-set`]: https://github.com/alex499/postcss-image-set +[`postcss-border`]: https://github.com/andrepolischuk/postcss-border [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats From bdb51386e758c27ca188395bd8cf0acd3b06df62 Mon Sep 17 00:00:00 2001 From: andrepolischuk Date: Mon, 29 Jun 2015 17:13:43 +0300 Subject: [PATCH 0374/3047] Fix link position --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de971f09d..9e41afc80 100644 --- a/README.md +++ b/README.md @@ -407,7 +407,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-image-set`]: https://github.com/alex499/postcss-image-set -[`postcss-border`]: https://github.com/andrepolischuk/postcss-border [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats @@ -423,6 +422,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-border`]: https://github.com/andrepolischuk/postcss-border [`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-mixins`]: https://github.com/postcss/postcss-mixins From 951ab647dfd4c2511ac6ddec5c4fd8610ec7fbd1 Mon Sep 17 00:00:00 2001 From: James Whitney Date: Tue, 30 Jun 2015 12:21:41 +1000 Subject: [PATCH 0375/3047] Add postcss-strip --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9e41afc80..70c4bedb3 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’s `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. +* [`postcss-strip-units`] strips units off of property values. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit based on `font-size` and `line-height`. * [`csstyle`] adds components workflow to your styles. @@ -398,6 +399,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter From 1d898ce536bb3e5c1ed84d3415bf153268b99646 Mon Sep 17 00:00:00 2001 From: Sean King Date: Sat, 4 Jul 2015 18:34:18 +1000 Subject: [PATCH 0376/3047] add postcss-fontpath to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 70c4bedb3..c493da759 100644 --- a/README.md +++ b/README.md @@ -306,6 +306,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. +* [`postcss-fontpath`] adds a `font-path` property to `@font-face` which expands to the [FontSpring syntax](http://blog.fontspring.com/2011/02/further-hardening-of-the-bulletproof-syntax/). * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. @@ -417,6 +418,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-fontpath`]: https://github.com/seaneking/postcss-fontpath [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity From 78ac7437c90e68e77ce73feb7abc72a7043fd137 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 12:04:49 +0300 Subject: [PATCH 0377/3047] Fix postcss-fontpath description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c493da759..72e6a596b 100644 --- a/README.md +++ b/README.md @@ -306,7 +306,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. -* [`postcss-fontpath`] adds a `font-path` property to `@font-face` which expands to the [FontSpring syntax](http://blog.fontspring.com/2011/02/further-hardening-of-the-bulletproof-syntax/). +* [`postcss-fontpath`] adds font links for different browsers. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. From c6153858759982eb4525392d437552d6ad2310fa Mon Sep 17 00:00:00 2001 From: Dale Eidd Date: Sat, 4 Jul 2015 20:19:49 +1000 Subject: [PATCH 0378/3047] Add postcss-define-property --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 72e6a596b..54d0a8bc2 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. +* [`postcss-define-property`] supports defining custom properties (not variables) * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. * [`postcss-map`] enables configuration maps. @@ -365,6 +366,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property [`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset [`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup From 431f64ddadff5b0a9ae5901eea51e7f7ee24e0c1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 13:27:35 +0300 Subject: [PATCH 0379/3047] More simple description for postcss-define-property --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54d0a8bc2..9e06defb1 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. -* [`postcss-define-property`] supports defining custom properties (not variables) +* [`postcss-define-property`] to define properties shorcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. * [`postcss-map`] enables configuration maps. From fda9ee7396519f9c252127ee1f0b1711d52a3787 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 13:30:20 +0300 Subject: [PATCH 0380/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e06defb1..6bb7866db 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. -* [`postcss-define-property`] to define properties shorcut. +* [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. * [`postcss-map`] enables configuration maps. From f77611df8267e6c851cd97c2a50442dc24cd4fa3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 13:42:39 +0300 Subject: [PATCH 0381/3047] Fix Processor instance in postcssed object --- lib/processor.js | 6 ++++-- test/processor.js | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/processor.js b/lib/processor.js index ee13de22b..b481ef94d 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -19,8 +19,10 @@ export default class Processor { for ( let i of plugins ) { let type = typeof i; if ( (type === 'object' || type === 'function') && i.postcss ) { - normalized.push(i.postcss); - } else if ( type === 'object' && Array.isArray(i.plugins) ) { + i = i.postcss; + } + + if ( typeof i === 'object' && Array.isArray(i.plugins) ) { normalized = normalized.concat(i.plugins); } else { normalized.push(i); diff --git a/test/processor.js b/test/processor.js index 91b8451b7..77a7270fd 100644 --- a/test/processor.js +++ b/test/processor.js @@ -44,6 +44,14 @@ describe('Processor', () => { expect(processor.plugins).to.eql([a]); }); + it('adds new processors from object', () => { + let a = () => 1; + let processor = new Processor(); + let other = new Processor([a]); + processor.use({ postcss: other }); + expect(processor.plugins).to.eql([a]); + }); + it('returns itself', () => { let a = () => 1; let b = () => 2; From ba599095ae0d5f4285fa05c133eeb37a705df269 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 13:57:24 +0300 Subject: [PATCH 0382/3047] Update dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f35f26b8a..d5212ea8b 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,10 @@ "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", "load-resources": "0.1.0", - "gulp-eslint": "0.14.0", + "gulp-eslint": "0.15.0", "gulp-babel": "5.1.0", "gulp-mocha": "2.1.2", - "yaspeller": "2.4.0", + "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.8", "fs-extra": "0.20.1", From eed7b26d007a87f69cc73343576fa291a35a2692 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 13:57:41 +0300 Subject: [PATCH 0383/3047] Release 4.1.14 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5eca6de2..991309f77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.14 +* Fix for plugins packs defined by `postcss.plugin`. + ## 4.1.13 * Fix input inlined source maps with UTF-8 encoding. diff --git a/package.json b/package.json index d5212ea8b..90b3cfa47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.13", + "version": "4.1.14", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From f0b2267c4c62c1101b441b18461c0d131d6261d5 Mon Sep 17 00:00:00 2001 From: Sean King Date: Sat, 4 Jul 2015 21:02:20 +1000 Subject: [PATCH 0384/3047] add postcss-alias to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6bb7866db..d10bdf7ff 100644 --- a/README.md +++ b/README.md @@ -235,6 +235,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions +* [`postcss-alias`] adds `@alias` rule for creating custom property aliases. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-define-property`] to define properties shortcut. @@ -439,6 +440,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-focus`]: https://github.com/postcss/postcss-focus [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`postcss-short`]: https://github.com/jonathantneal/postcss-short +[`postcss-alias`]: https://github.com/seaneking/postcss-alias [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-each`]: https://github.com/outpunk/postcss-each From ac0693edddcfbfa9499f90a167cac19219374403 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 14:07:00 +0300 Subject: [PATCH 0385/3047] Fix collision with Custom Properties in postcss-alias desc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d10bdf7ff..ae99d58c5 100644 --- a/README.md +++ b/README.md @@ -235,7 +235,7 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions -* [`postcss-alias`] adds `@alias` rule for creating custom property aliases. +* [`postcss-alias`] to create shorter aliases for properties. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-define-property`] to define properties shortcut. From 79efc2d92e5c8d3e565a90ca4b8bfd34ed0a88b7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 14:16:38 +0300 Subject: [PATCH 0386/3047] Shorter postcss-border description --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ae99d58c5..a9ce4bb00 100644 --- a/README.md +++ b/README.md @@ -235,7 +235,6 @@ See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. ### Language Extensions -* [`postcss-alias`] to create shorter aliases for properties. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-define-property`] to define properties shortcut. @@ -300,8 +299,9 @@ See also plugins in modular minifier [`cssnano`]. ### Shortcuts -* [`postcss-border`] adds shorthand declarations for width - and color of all borders in `border` property. +* [`postcss-alias`] to create shorter aliases for properties. +* [`postcss-border`] adds shorthand for width and color of all borders + in `border` property. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. * [`postcss-default-unit`] adds default unit to numeric CSS properties. From 15c1841ba12330b014d9c2bd56495aa1bb6e4959 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 4 Jul 2015 14:17:28 +0300 Subject: [PATCH 0387/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9ce4bb00..809c62404 100644 --- a/README.md +++ b/README.md @@ -215,7 +215,7 @@ Or to enable plugins right in CSS by [`postcss-use`]: * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. * [`mq4-hover-shim`] supports the `@media (hover)` feature. -See also [`cssnext`] plugins pack to add Future CSS syntax by one line of code. +See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. ### Fallbacks From 4c3713efdf11be1b1f4e94ea380477d06ea768d0 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 6 Jul 2015 13:23:41 +0100 Subject: [PATCH 0388/3047] Add stylehacks to the readme. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 809c62404..426cb0c67 100644 --- a/README.md +++ b/README.md @@ -334,6 +334,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. +* [`stylehacks`] removes CSS hacks based on browser support. ### Analysis @@ -457,6 +458,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-url`]: https://github.com/postcss/postcss-url [`css-byebye`]: https://github.com/AoDev/css-byebye +[`stylehacks`]: https://github.com/ben-eb/stylehacks [`cssgrace`]: https://github.com/cssdream/cssgrace [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss From baceb916911cf7a31f1a8c271f8cfa10f82fcbd3 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Tue, 7 Jul 2015 13:35:46 +0100 Subject: [PATCH 0389/3047] Support runtime plugin injection. --- lib/lazy-result.js | 20 +++++++++++++------- test/postcss.js | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 441660826..2e107730a 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -31,6 +31,8 @@ export default class LazyResult { } } + this.currentPlugin = -1; + this.result = new Result(processor, root, opts); } @@ -98,23 +100,28 @@ export default class LazyResult { } } - asyncTick(plugins, resolve, reject) { - if ( plugins.length === 0 ) return resolve(); + asyncTick(resolve, reject) { + this.currentPlugin ++; + + if (this.currentPlugin >= this.processor.plugins.length) { + this.processed = true; + return resolve(); + } try { - let plugin = plugins.shift(); + let plugin = this.processor.plugins[this.currentPlugin]; let promise = this.run(plugin); if ( isPromise(promise) ) { promise.then( () => { - this.asyncTick(plugins, resolve, reject); + this.asyncTick(resolve, reject); }).catch( (error) => { this.handleError(error, plugin); this.processed = true; reject(error); }); } else { - this.asyncTick(plugins, resolve, reject); + this.asyncTick(resolve, reject); } } catch (error) { @@ -137,10 +144,9 @@ export default class LazyResult { return this.processing; } - let plugins = this.processor.plugins.slice(0); this.processing = new Promise( (resolve, reject) => { if ( this.error ) return reject(this.error); - this.asyncTick(plugins, resolve, reject); + this.asyncTick(resolve, reject); }).then( () => { this.processed = true; return this.stringify(); diff --git a/test/postcss.js b/test/postcss.js index d76d956a9..a73645a4a 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -31,6 +31,26 @@ describe('postcss()', () => { expect(postcss([other, c]).plugins).to.eql([a, b, c]); }); + it('supports injecting additional processors at runtime', (done) => { + let plugin1 = postcss.plugin('one', () => { + return css => { + css.eachDecl(decl => { + decl.value = 'world'; + }); + }; + }); + let plugin2 = postcss.plugin('two', () => { + return (css, result) => { + result.processor.use(plugin1()); + }; + }); + + postcss([ plugin2 ]).process('a{hello: bob}').then(result => { + expect(result.css).to.equal('a{hello: world}'); + done(); + }); + }); + describe('.plugin()', () => { it('creates plugin', () => { From e55d5b9560ab6a622cd55252dd457039a3cea336 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 18:00:58 +0300 Subject: [PATCH 0390/3047] Clean up code --- lib/lazy-result.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 2e107730a..c3df9754e 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -31,8 +31,6 @@ export default class LazyResult { } } - this.currentPlugin = -1; - this.result = new Result(processor, root, opts); } @@ -101,16 +99,15 @@ export default class LazyResult { } asyncTick(resolve, reject) { - this.currentPlugin ++; - - if (this.currentPlugin >= this.processor.plugins.length) { + if (this.plugin >= this.processor.plugins.length) { this.processed = true; return resolve(); } try { - let plugin = this.processor.plugins[this.currentPlugin]; + let plugin = this.processor.plugins[this.plugin]; let promise = this.run(plugin); + this.plugin += 1; if ( isPromise(promise) ) { promise.then( () => { @@ -146,6 +143,7 @@ export default class LazyResult { this.processing = new Promise( (resolve, reject) => { if ( this.error ) return reject(this.error); + this.plugin = 0; this.asyncTick(resolve, reject); }).then( () => { this.processed = true; From 8271f24e765d2e89164da35fe71f0c4c806ba248 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 18:03:32 +0300 Subject: [PATCH 0391/3047] Fix async tests --- test/processor.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/processor.js b/test/processor.js index 77a7270fd..dd54f5878 100644 --- a/test/processor.js +++ b/test/processor.js @@ -149,7 +149,7 @@ describe('Processor', () => { result.then( () => { expect(calls).to.eql('ab'); done(); - }).catch( (error) => done(error) ); + }).catch(done) }); it('parses, converts and stringifies CSS', () => { @@ -215,14 +215,14 @@ describe('Processor', () => { expect(finish).to.eql(2); expect(result.css).to.eql('a {}\nb {}'); done(); - }).catch( (error) => done(error) ); + }).catch(done) }); it('works async without plugins', (done) => { (new Processor()).process('a {}').then( (result) => { expect(result.css).to.eql('a {}'); done(); - }).catch( (error) => done(error) ); + }).catch(done) }); it('runs async plugin only once', (done) => { @@ -282,7 +282,7 @@ describe('Processor', () => { (new Processor()).process('a{').catch(function (err) { expect(err.message).to.eql(':1:1: Unclosed block'); done(); - }); + }).catch(done); }); it('throws error on sync method to async plugin', () => { @@ -337,7 +337,7 @@ describe('Processor', () => { processor.process('a{}').then( (result) => { expect(result.lastPlugin).to.equal(plugin2); done(); - }); + }).catch(done); }); }); From 9bfc70a8456ad3cd48b0ab0dd5daa6b517ecd44d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 18:12:06 +0300 Subject: [PATCH 0392/3047] Update dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 90b3cfa47..ad9a56b90 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.8", - "fs-extra": "0.20.1", + "fs-extra": "0.21.0", "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", From 9ac61050101cea41fb1a0abccbca865b76801764 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 18:12:58 +0300 Subject: [PATCH 0393/3047] Fix ESLint warnings --- test/processor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/processor.js b/test/processor.js index dd54f5878..630799140 100644 --- a/test/processor.js +++ b/test/processor.js @@ -149,7 +149,7 @@ describe('Processor', () => { result.then( () => { expect(calls).to.eql('ab'); done(); - }).catch(done) + }).catch(done); }); it('parses, converts and stringifies CSS', () => { @@ -215,14 +215,14 @@ describe('Processor', () => { expect(finish).to.eql(2); expect(result.css).to.eql('a {}\nb {}'); done(); - }).catch(done) + }).catch(done); }); it('works async without plugins', (done) => { (new Processor()).process('a {}').then( (result) => { expect(result.css).to.eql('a {}'); done(); - }).catch(done) + }).catch(done); }); it('runs async plugin only once', (done) => { From 6c0f34a832cf0cd4463a340621a223877788afac Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 18:23:35 +0300 Subject: [PATCH 0394/3047] Release 4.1.15 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 991309f77..71ec6594a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.15 +* Allow asynchronous plugins to change processor plugins list (by Ben Briggs). + ## 4.1.14 * Fix for plugins packs defined by `postcss.plugin`. diff --git a/package.json b/package.json index ad9a56b90..0b3e7ac04 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.14", + "version": "4.1.15", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 1d350b3b3a517c17f2244ca72821ab8fad5aad8f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 21:46:46 +0300 Subject: [PATCH 0395/3047] Use only object errors --- lib/container.js | 4 ++-- lib/lazy-result.js | 6 ++++-- test/container.js | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/container.js b/lib/container.js index d81efae91..a3b1293ee 100644 --- a/lib/container.js +++ b/lib/container.js @@ -277,7 +277,7 @@ export default class Container extends Node { nodes = [nodes]; } else if ( nodes.prop ) { if ( typeof nodes.value === 'undefined' ) { - throw 'value field is missed in node creation'; + throw new Error('Value field is missed in node creation'); } nodes = [new Declaration(nodes)]; } else if ( nodes.selector ) { @@ -289,7 +289,7 @@ export default class Container extends Node { } else if ( nodes.text ) { nodes = [new Comment(nodes)]; } else { - throw 'Unknown node type in node creation'; + throw new Error('Unknown node type in node creation'); } } diff --git a/lib/lazy-result.js b/lib/lazy-result.js index c3df9754e..156e97136 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -158,7 +158,8 @@ export default class LazyResult { this.processed = true; if ( this.processing ) { - throw 'Use process(css).then(cb) to work with async plugins'; + throw new Error( + 'Use process(css).then(cb) to work with async plugins'); } if ( this.error ) throw this.error; @@ -166,7 +167,8 @@ export default class LazyResult { for ( let plugin of this.result.processor.plugins ) { let promise = this.run(plugin); if ( isPromise(promise) ) { - throw 'Use process(css).then(cb) to work with async plugins'; + throw new Error( + 'Use process(css).then(cb) to work with async plugins'); } } diff --git a/test/container.js b/test/container.js index 1d3e8b7a0..6c2382eb0 100644 --- a/test/container.js +++ b/test/container.js @@ -26,7 +26,7 @@ describe('Container', () => { it('throws error on declaration without value', () => { expect( () => { (new Rule()).append({prop: 'color', vlaue: 'black' }); - }).to.throw(/value field is missed/); + }).to.throw(/Value field is missed/); }); it('throws error on unknown node type', () => { From 9db087ead9581b8628ca2f5a49ed1731c266d9cc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Jul 2015 21:53:33 +0300 Subject: [PATCH 0396/3047] Release 4.1.16 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71ec6594a..60e7a91dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 4.1.16 +* Fix errors without stack trace. + ## 4.1.15 * Allow asynchronous plugins to change processor plugins list (by Ben Briggs). diff --git a/package.json b/package.json index 0b3e7ac04..7fea588f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.15", + "version": "4.1.16", "description": "Tool for transforming CSS with JS plugins", "keywords": ["css", "postproccessor", "parser", "source map", "transform", "manipulation", "preprocess", "transpiler"], From 23a385b31976445351f2944d279be9816af7f596 Mon Sep 17 00:00:00 2001 From: James Coleman Date: Wed, 8 Jul 2015 12:20:41 +1000 Subject: [PATCH 0397/3047] Add `postcss-local-constants` to readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 426cb0c67..5b76dc7c7 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. +* [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. * [`postcss-mixins`] enables mixins more powerful than Sass’s, defined within stylesheets or in JS. From 974574f6a4c0166e190b644846bf01ccfa371d52 Mon Sep 17 00:00:00 2001 From: James Coleman Date: Wed, 8 Jul 2015 12:24:01 +1000 Subject: [PATCH 0398/3047] Add `postcss-local-constants` link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5b76dc7c7..80d8da261 100644 --- a/README.md +++ b/README.md @@ -374,6 +374,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm +[`postcss-local-constants`]: https://github.com/macropodhq/postcss-local-constants [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values From 24d62d0df14c0a570db4d9d99f1cdaa8225b77dd Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Wed, 8 Jul 2015 10:34:44 -0400 Subject: [PATCH 0399/3047] Add precss plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 80d8da261..e9d953406 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ Or to enable plugins right in CSS by [`postcss-use`]: to special annotation comments. * [`cssnano`] contains plugins that optimize CSS size for use in production. * [`cssnext`] contains plugins that allow you to use future CSS features today. +* [`precss`] contains plugins that allow you to use Sass-like CSS. [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ @@ -466,6 +467,7 @@ See also plugins in modular minifier [`cssnano`]. [`webpcss`]: https://github.com/lexich/webpcss [`doiuse`]: https://github.com/anandthakker/doiuse [`pixrem`]: https://github.com/robwierzbowski/node-pixrem +[`precss`]: https://github.com/jonathantneal/precss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost From 4d58d98d43e29e7ae61e18f3be32d506a8bab7fb Mon Sep 17 00:00:00 2001 From: Cory Etzkorn Date: Wed, 8 Jul 2015 21:48:10 -0400 Subject: [PATCH 0400/3047] Grammatical fixes and README proofreading --- README.md | 41 +++++++++-------- docs/api.md | 130 ++++++++++++++++++++++++---------------------------- 2 files changed, 82 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index e9d953406..cc58648e4 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,13 @@ src="http://postcss.github.io/postcss/logo.svg"> PostCSS is a tool for transforming CSS with JS plugins. + These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more. -Google, Twitter, Alibaba, and Shopify uses PostCSS. -Its plugin, [Autoprefixer], is one of the most popular CSS processors. +PostCSS is used by industry leaders including Google, Twitter, Alibaba, and Shopify. + +The [Autoprefixer] PostCSS plugin is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 3-30 times faster, and much more powerful. @@ -23,7 +25,7 @@ VK.com page: [postcss](https://vk.com/postcss). [chat]: https://gitter.im/postcss/postcss [ci]: https://travis-ci.org/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#plugins) | [Write Own Plugin](#how-to-develop-postcss-plugin) | [Options](#options) +[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#plugins) | [Write Your Own Plugin](#how-to-develop-postcss-plugin) | [Options](#options) --- | --- | --- | --- | --- | --- @@ -87,6 +89,7 @@ Or if you like the Sass syntax, you could combine Preprocessors are template languages, where you mix styles with code (like PHP does with HTML). + In contrast, in PostCSS you write a custom subset of CSS. All code can only be in JS plugins. @@ -105,7 +108,7 @@ As a result, PostCSS offers three main benefits: ## Usage -You just need to follow these two steps to use PostCSS: +Start using PostCSS in just two steps: 1. Add PostCSS to your build tool. 2. Select plugins from the list below and add them to your PostCSS process. @@ -134,7 +137,7 @@ postcss([ require('cssnext')(), require('cssnano')() ]) }); ``` -You can also use PostCSS plugins with the Stylus by using [`poststylus`]. +You can also use PostCSS plugins with Stylus by using [`poststylus`]. Read the [PostCSS API] for more details about the JS API. @@ -152,10 +155,9 @@ Read the [PostCSS API] for more details about the JS API. ### Control -There is two way to make PostCSS magic more explicit. +There are two ways to make PostCSS magic more explicit. -Define a plugins contexts and switch between them in different parts of CSS -by [`postcss-plugin-context`]: +Limit a plugin's local stylesheet context using [`postcss-plugin-context`]: ```css .css-example.is-test-for-css4-browsers { @@ -168,7 +170,7 @@ by [`postcss-plugin-context`]: } ``` -Or to enable plugins right in CSS by [`postcss-use`]: +Or enable plugins directly in CSS using [`postcss-use`]: ```css @use autoprefixer(browsers: ['last 2 versions']); @@ -243,7 +245,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-for`] adds `@for` loops. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. -* [`postcss-mixins`] enables mixins more powerful than Sass’s, +* [`postcss-mixins`] enables mixins more powerful than Sass', defined within stylesheets or in JS. * [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules @@ -252,7 +254,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-simple-extend`] supports extending of silent classes, - like Sass’s `@extend`. + like Sass’ `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`postcss-strip-units`] strips units off of property values. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit @@ -301,7 +303,7 @@ See also plugins in modular minifier [`cssnano`]. ### Shortcuts -* [`postcss-alias`] to create shorter aliases for properties. +* [`postcss-alias`] creates shorter aliases for properties. * [`postcss-border`] adds shorthand for width and color of all borders in `border` property. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` @@ -471,7 +473,7 @@ See also plugins in modular minifier [`cssnano`]. [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -## How to Develop PostCSS Plugin +## How to Develop a PostCSS Plugin * [Plugin Guidelines](https://github.com/postcss/postcss/blob/master/docs/guidelines/plugin.md) * [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) @@ -487,11 +489,11 @@ from previous transformation steps, autodetect the format that you expect, and output both external and inline maps. To ensure that you generate an accurate source map, you must indicate the input -and output CSS files paths — using the options `from` and `to`, respectively. +and output CSS file paths — using the options `from` and `to`, respectively. To generate a new source map with the default options, simply set `map: true`. This will generate an inline source map that contains the source content. -If you don’t want the map inlined, you can use set `map.inline: false`. +If you don’t want the map inlined, you can set `map.inline: false`. ```js processor @@ -530,18 +532,17 @@ option as an object with the following parameters: with `prev: false`. * `sourcesContent` boolean: indicates that PostCSS should set the origin - content (for example, Sass source) of the source map. By default, it’s `true`. + content (for example, Sass source) of the source map. By default, it is `true`. But if all previous maps do not contain sources content, PostCSS will also leave it out even if you do not set this option. * `annotation` boolean or string: indicates that PostCSS should add annotation comments to the CSS. By default, PostCSS will always add a comment with a path - to the source map. But if the input CSS does not have any annotation - comment, PostCSS will omit it, too, even if you do not set this option. + to the source map. PostCSS will not add annotations to CSS files that do not contain any comments. By default, PostCSS presumes that you want to save the source map as `opts.to + '.map'` and will use this path in the annotation comment. - But you can set another path by providing a string value for `annotation`. + A different path can be set by providing a string value for `annotation`. If you have set `inline: true`, annotation cannot be disabled. @@ -549,7 +550,7 @@ option as an object with the following parameters: ### Safe Mode -If you provide a `safe: true` option to the `process` or `parse` methods, +If you pass the `safe: true` option to the `process` or `parse` methods, PostCSS will try to correct any syntax errors that it finds in the CSS. ```js diff --git a/docs/api.md b/docs/api.md index 3fa548187..1160c547c 100644 --- a/docs/api.md +++ b/docs/api.md @@ -36,9 +36,9 @@ postcss([autoprefixer, cssnext, cssgrace]).process(css).css; Arguments: -* `plugins (array)`: PostCSS plugins list to set them to new processor. +* `plugins (array)`: list of PostCSS plugins to be included as processors. -You can also set plugins with the [`Processor#use`] method. +Plugins can also be included with the [`Processor#use`] method. See its description below for details about plugin formats. ### `postcss.parse(css, opts)` @@ -98,8 +98,8 @@ processor.plugins[0].postcssPlugin //=> 'postcss-replace' processor.plugins[0].postcssVersion //=> '4.1.0' ``` -Plugin function receive 2 arguments: [`Root` node] and [`Result`] instance. -Then it should mutate the passed `Root` node, or you can create new `Root` node +The plugin function receives 2 arguments: [`Root` node] and [`Result`] instance. +Then it should mutate the passed `Root` node. Alternatively, create a new `Root` node and override the `result.root` property. ```js @@ -110,7 +110,7 @@ postcss.plugin('postcss-cleaner', function () { }); ``` -Asynchronous plugin should return `Promise` instance. +Asynchronous plugins should return `Promise` instance. ```js postcss.plugin('postcss-import', function () { @@ -125,7 +125,7 @@ postcss.plugin('postcss-import', function () { }); ``` -You can add warnings by [`Result#warn()`] method. +Add warnings using the [`Result#warn()`] method. ```js postcss.plugin('postcss-caniuse-test', function () { @@ -141,7 +141,7 @@ postcss.plugin('postcss-caniuse-test', function () { }); ``` -You can send some data to next plugins by [`Result#messages`] array. +Send data to next plugins using the [`Result#messages`] array. ### `postcss.root(props)` @@ -221,7 +221,7 @@ postcss.list.space('5px calc(10% + 5px)') //=> ['5px', 'calc(10% + 5px)'] ## `Processor` class -A `Processor` instance contains plugins to process CSS. You can create +A `Processor` instance contains plugins to process CSS. Create one `Processor` instance, initialize its plugins, and then use that instance on many CSS files. @@ -246,7 +246,7 @@ Arguments: formats: * A plugin created by [`postcss.plugin()`] method. * A function. PostCSS will pass the function a [`Root` node] - as the first argument and current [`Result`] instance as second. + as the first argument and current [`Result`] instance as the second. * An object with a `postcss` method. PostCSS will use that method as described in #2. * Another `Processor` instance. PostCSS will copy plugins @@ -255,13 +255,13 @@ Arguments: Plugins can also be added by passing them as arguments when creating a `postcss` instance (see [`postcss(plugins)`]). -Asynchronous plugin should return `Promise` instance. +Asynchronous Plugins should return `Promise` instance. ### `processor.process(css, opts)` Parses source CSS and returns [`LazyResult`] instance. Because some plugins can be asynchronous it doesn’t make any transformations. Transformations will -be apply in `LazyResult`’s methods. +be applied in `LazyResult`’s methods. ```js processor.process(css, { from: 'a.css', to: 'a.out.css' }).then(function (result) { @@ -272,8 +272,8 @@ processor.process(css, { from: 'a.css', to: 'a.out.css' }).then(function (result Arguments: * `css (string|#toString|Result)`: String with input CSS or any object - with `toString()` method, like file stream. Also you can send [`Result`] - instance and processor will take already parser [`Root`] from it. + with `toString()` method, like file stream. Optionally, send [`Result`] + instance and the processor will take the existing [`Root`] parser from it. * `opts (object) optional`: options: * `from`: the path of the CSS source file. You should always set `from`, because it is used in source map generation and syntax error messages. @@ -313,8 +313,8 @@ var lazy = postcss([cssnext]).process(css); ### `lazy.then(onFulfilled, onRejected)` Processes input CSS through synchronous and asynchronous plugins -and call `onFulfilled` with [`Result`] instance. If some plugin will throw -a error, `onRejected` callback will be executed. +and call `onFulfilled` with [`Result`] instance. If a plugin throws +an error, `onRejected` callback will be executed. ```js postcss([cssnext]).process(css).then(function(result) { @@ -326,7 +326,7 @@ This method is a standard [Promise] method. ### `lazy.catch(onRejected)` -Processes input CSS through synchronous and asynchronous plugins +Processes input CSS through synchronous and asynchronous plugins and call `onRejected` on errors from any plugin. ```js @@ -345,7 +345,7 @@ Alias for `LazyResult#css` property. ### `lazy.css` -Processes input CSS through synchronous plugins, convert `Root` to CSS string +Processes input CSS through synchronous plugins, converts `Root` to CSS string and returns [`Result#css`]. ```js @@ -353,7 +353,7 @@ processor.process(css).css; ``` This property will work only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should use +any asynchronous plugins it will throw a error. You should use [`LazyResult#then()`] instead. ```js @@ -373,7 +373,7 @@ if ( result.map ) { ``` This property will work only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should use +any asynchronous plugins it will throw an error. You should use [`LazyResult#then()`] instead. ```js @@ -390,7 +390,7 @@ Processes input CSS through synchronous plugins and returns [`Result#root`](#resultroot). This property will work only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should use +any asynchronous plugins it will throw an error. You should use [`LazyResult#then()`] instead. ```js @@ -401,7 +401,7 @@ postcss([cssnext]).then(function (result) { ### `lazy.warnings()` -Processes input CSS through synchronous plugins and call [`Result#warnings()`]. +Processes input CSS through synchronous plugins and calls [`Result#warnings()`]. ```js postcss([cssnext]).warnings().forEach(function (message) { @@ -410,7 +410,7 @@ postcss([cssnext]).warnings().forEach(function (message) { ``` This property will work only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should use +any asynchronous plugins it will throw a error. You should use [`LazyResult#then()`] instead. ```js @@ -426,7 +426,7 @@ postcss([cssnext]).then(function (result) { Processes input CSS through synchronous plugins and returns [`Result#messages`]. This property will work only with synchronous plugins. If processor contains -any asynchronous plugin it will throw a error. You should use +any asynchronous plugins it will throw an error. You should use [`LazyResult#then()`] instead. ### `lazy.processor` @@ -495,12 +495,12 @@ Arguments: message object. * `opts (object) optional`: properties to message object. * `node`: CSS node, that was a source of warning. - * `plugin`: name of plugin created this warning. `Result#warn()` will fill it - automatically by `plugin.postcssPlugin` value. + * `plugin`: name of plugin that created this warning. `Result#warn()` will fill it + automatically with `plugin.postcssPlugin` value. ### `result.warnings()` -Returns warnings from plugins. It just filters [`Warning`] instances +Returns warnings from plugins. Filters [`Warning`] instances from [Result#messages]. ```js @@ -526,9 +526,9 @@ representing changes to the `Result`’s `Root` instance. result.map.toJSON() //=> { version: 3, file: 'a.css', sources: ['a.css'], … } ``` -This property will has a value *only if the user does not want an inline source +This property will have a value *only if the user does not want an inline source map*. By default, PostCSS generates inline source maps, written directly into -the processed CSS; so by default the `map` property will be empty. +the processed CSS. The `map` property will be empty by default. An external source map will be generated — and assigned to `map` — only if the user has set the `map.inline` option to `false`, or if PostCSS @@ -553,7 +553,7 @@ root.toResult().root == root; Contains messages from plugins. For example, warnings or custom messages to plugins communication. -Each message should has `type` and `plugin` properties. +Each message should have `type` and `plugin` properties. ```js postcss.plugin('postcss-min-browser', function () { @@ -568,12 +568,12 @@ postcss.plugin('postcss-min-browser', function () { }); ``` -You can add warning by [`Result#warn()`] and get all warnings -by [`Result#warnings()`](#resultwarnings) method. +Add a warning using [`Result#warn()`] and get all warnings +using [`Result#warnings()`](#resultwarnings) method. ### `result.processor` -Returns a [`Processor`] instance, that was used for this transformations. +Returns the [`Processor`] instance used for this transformation. ```js result.processor.plugins.forEach(function (plugin) { @@ -594,7 +594,7 @@ root.toResult(opts).opts == opts; ## `Warning` class -Warning from plugins. It can be created by [`Result#warn()`]. +Warning from plugins. It can be created using [`Result#warn()`]. ```js if ( decl.important ) { @@ -620,7 +620,7 @@ warning.text //=> 'Try to avoid !important' ### `warning.plugin` -Contains plugin name created this warning. When you call [`Result#warn()`], +Contains name of plugin that created this warning. When you call [`Result#warn()`], it will fill this property automatically. ```js @@ -629,7 +629,7 @@ warning.plugin //=> 'postcss-important' ### `warning.node` -Contains CSS node, that was a source of warning. +Contains CSS node that caused warning. ```js warning.node.toString() //=> 'color: white !important' @@ -637,14 +637,14 @@ warning.node.toString() //=> 'color: white !important' ## `CssSyntaxError` class -CSS parser throw this error on broken CSS. +CSS parser throws this error for broken CSS. ```js postcss.parse('a{') //=> CssSyntaxError ``` -Custom parsers can throw this error on broken own custom syntax -by [`Node#error()`](#nodeerrormessage) method. +Custom parsers can throw this error for broken custom syntax +using the [`Node#error()`](#nodeerrormessage) method. ```js throw node.error('Unknown variable', { plugin: 'postcss-vars' }); @@ -662,7 +662,7 @@ error.toString() //=> CssSyntaxError: app.css:1:1: Unclosed block ### `error.showSourceCode(color)` -Returns a few lines of CSS source, which generates this error. +Returns a few lines of CSS source that caused error. ```js error.showSourceCode() //=> @@ -679,7 +679,7 @@ Arguments: `process.env.NODE_DISABLE_COLORS`. If CSS has input source map without `sourceContent`, this method will return -empty string. +an empty string. ### `error.message` @@ -699,7 +699,7 @@ error.reason //=> 'Unclosed block' ### `error.plugin` -Contains PostCSS plugin name if error came not from CSS parser. +Contains PostCSS plugin name if error did not come from CSS parser. ```js error.plugin //=> 'postcss-vars' @@ -719,8 +719,7 @@ PostCSS will use input source map to detect the original error location. If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -you can use `error.generated.file`. +If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.file`. ```js error.file //=> 'a.sass' @@ -739,8 +738,7 @@ PostCSS will use input source map to detect the original error location. If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -you can use `error.generated.line`. +If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.line`. ```js error.line //=> 2 @@ -759,8 +757,7 @@ PostCSS will use input source map to detect the original error location. If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -you can use `error.generated.column`. +If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.column`. ```js error.column //=> 1 @@ -779,8 +776,7 @@ PostCSS will use input source map to detect the original error location. If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -you can use `error.generated.source`. +If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.source`. ```js error.source //=> 'a { b {} }' @@ -859,8 +855,8 @@ root.source.input.file //=> '/home/ai/a.css' ### `input.id` -The unique ID of the CSS source. This is used if the user did not enter a `from` -options so PostCSS does not know about a file path. +The unique ID of the CSS source. Used if `from` +option is not provided (because PostCSS does not know the file path). ```js var root = postcss.parse(css); @@ -944,7 +940,7 @@ The property is used in source map generation. If you create a node manually (for example, with `postcss.decl()`), that node will not have a `source` property and will be absent -from the source map. For this reason, plugin developer should consider +from the source map. For this reason, the plugin developer should consider cloning nodes to create new ones (in which case the new node’s source will reference the original, cloned node) or setting the `source` property manually. @@ -975,11 +971,11 @@ postcss.rule({ selector: 'a' }).toString() //=> 'a {}'' ### `node.error(message, opts)` -Returns a [`CssSyntaxError`] instance that presents the original position +Returns a [`CssSyntaxError`] instance containing the original position of the node in the source, showing line and column numbers and also a small excerpt to facilitate debugging. -It will use an input source map, if present, to get the original position +If present, an input source map will be used to get the original position of the source, even from a previous compilation step (for example, from Sass compilation). @@ -1052,9 +1048,9 @@ Arguments: ### `node.clone(props)` -Returns a clones of the node. +Returns a clone of the node. -The resultant clone node and its (clone) children will have clean `parent` +The resulting cloned node and its (cloned) children will have clean `parent` and code style properties. ```js @@ -1070,7 +1066,7 @@ Arguments: ### `node.cloneBefore(props)` and `node.cloneAfter(props)` -Shortcuts to clone the node and insert the resultant clone node before/after +Shortcut to clone the node and insert the resulting cloned node before/after the current node. ```js @@ -1125,8 +1121,7 @@ root.nodes[0].nodes[1].style('before') //=> ' ' Arguments: * `prop (string)`: name or code style property. -* `defaultType (string)`: name of default value. You can miss it - if it is same with `prop`. +* `defaultType (string)`: name of default value. It can be easily missed if the value is the same as `prop`. ## Containers: common methods @@ -1202,7 +1197,7 @@ var hasPrefix = rule.some(function (decl) { Arguments: -* `callback (function)`: iterator, that returns true or false. +* `callback (function)`: iterator, returns true or false. ### `container.each(callback)` @@ -1384,8 +1379,7 @@ during iteration. Passes all declaration values within the container that match `pattern` through `callback`, replacing those values with the returned result of `callback`. -This method is useful if you are using a custom unit or function, -so need to iterate through all values. +This method is useful if you are using a custom unit or function and need to iterate through all values. ```js root.replaceValues(/\d+rem/, { fast: 'rem' }, function (string) { @@ -1399,12 +1393,11 @@ Arguments: * `opts (object) optional`: options to speed up th search: * `props`: An array of property names. The method will only search for values that match `regexp` within declarations of listed properties. - * `fast`: A string that will be used to narrow down values and speed up - the regexp search. Searching every single value with a regexp can be slow; - so if you pass a `fast` string, PostCSS will first check whether the value + * `fast`: A string that used to narrow down values and speed up + the regexp search. Searching every single value with a regexp can be slow. If you pass a `fast` string, PostCSS will first check whether the value contains the `fast` string; and only if it does will PostCSS check that value against `regexp`. For example, instead of just checking for `/\d+rem/` - on all values, you can set `fast: 'rem'` to first check whether a value has + on all values, set `fast: 'rem'` to first check whether a value has the `rem` unit, and only if it does perform the regexp check. * `callback (function|string)`: string to replace `pattern` or callback, that will return new value. Callback will receive the same arguments as those @@ -1425,7 +1418,7 @@ Arguments: * `node (Node|object|string)`: new node. -Because each node class is identifiable by unique properties, you can use +Because each node class is identifiable by unique properties, use the following shortcuts to create nodes in insert methods: ```js @@ -1435,8 +1428,7 @@ rule.append({ prop: 'color', value: 'black' }); // declaration rule.append({ text: 'Comment' }) // comment ``` -Also you can use string with CSS of new element. But it will be a little bit -slower than the above shortcuts. +A string containing the CSS of the new element can also be used. This approach is slower than the above shortcuts. ```js root.append('a {}'); From 47b96615fce92171d1efeea6c6a13a760e2af0cc Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Thu, 9 Jul 2015 09:29:30 +0200 Subject: [PATCH 0401/3047] Move `postcss-css-variables` out of `Future CSS Syntax` section Since this plugin does not provide a future proof code (see https://github.com/MadLittleMods/postcss-css-variables/issues/4) and documentation is still misleading and unclear about the differences, I think it does not belong into this section. [skip ci] --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9d953406..885f8e1b0 100644 --- a/README.md +++ b/README.md @@ -201,8 +201,6 @@ Or to enable plugins right in CSS by [`postcss-use`]: * [`postcss-color-hwb`] transforms `hwb()` to widely compatible `rgb()`. * [`postcss-color-rebeccapurple`] supports the `rebeccapurple` color. * [`postcss-conic-gradient`] supports the `conic-gradient` background. -* [`postcss-css-variables`] supports variables for nested rules, - selectors, and at-rules * [`postcss-custom-media`] supports custom aliases for media queries. * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. @@ -238,6 +236,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. +* [`postcss-css-variables`] supports variables for nested rules, selectors, and + at-rules using syntax similar to css custom properties. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. From 932ed47e2d651032bac7624754b4c7e38021dfeb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 9 Jul 2015 13:17:26 +0300 Subject: [PATCH 0402/3047] Shorter plugin desc --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 885f8e1b0..445c06bd4 100644 --- a/README.md +++ b/README.md @@ -236,8 +236,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. -* [`postcss-css-variables`] supports variables for nested rules, selectors, and - at-rules using syntax similar to css custom properties. +* [`postcss-css-variables`] supports variables for nested rules, selectors, + and at-rules using W3C similar syntax. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. From 7222f019deea9364d6bd4db670599aa4f503cfb4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 9 Jul 2015 13:17:56 +0300 Subject: [PATCH 0403/3047] Shorter plugin desc 2 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 445c06bd4..da64bf464 100644 --- a/README.md +++ b/README.md @@ -236,8 +236,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. -* [`postcss-css-variables`] supports variables for nested rules, selectors, - and at-rules using W3C similar syntax. +* [`postcss-css-variables`] supports variables for selectors, and at-rules + using W3C similar syntax. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. From 6aa9a3a6a4fe21cf138e10fdf691c7058b08c28b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 9 Jul 2015 13:24:48 +0300 Subject: [PATCH 0404/3047] Fix main section blocks --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2c35ec213..3077cf25e 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,12 @@ src="http://postcss.github.io/postcss/logo.svg"> PostCSS is a tool for transforming CSS with JS plugins. - These plugins can support variables and mixins, transpile future CSS syntax, -inline images, and more. - -PostCSS is used by industry leaders including Google, Twitter, Alibaba, and Shopify. +inline images, and more. -The [Autoprefixer] PostCSS plugin is one of the most popular CSS processors. +PostCSS is used by industry leaders including Google, Twitter, Alibaba, +and Shopify. The [Autoprefixer] PostCSS plugin is one of the most popular +CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 3-30 times faster, and much more powerful. From 4853f8cd197ff60993c7d3ef03b6b269e6568ab0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 9 Jul 2015 13:29:14 +0300 Subject: [PATCH 0405/3047] Fix holy 80 line --- README.md | 11 ++++++----- docs/api.md | 50 +++++++++++++++++++++++++++++--------------------- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 3077cf25e..9ab52077b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more. PostCSS is used by industry leaders including Google, Twitter, Alibaba, -and Shopify. The [Autoprefixer] PostCSS plugin is one of the most popular +and Shopify. The [Autoprefixer] PostCSS plugin is one of the most popular CSS processors. PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. @@ -531,13 +531,14 @@ option as an object with the following parameters: with `prev: false`. * `sourcesContent` boolean: indicates that PostCSS should set the origin - content (for example, Sass source) of the source map. By default, it is `true`. - But if all previous maps do not contain sources content, PostCSS will also - leave it out even if you do not set this option. + content (for example, Sass source) of the source map. By default, + it is `true`. But if all previous maps do not contain sources content, + PostCSS will also leave it out even if you do not set this option. * `annotation` boolean or string: indicates that PostCSS should add annotation comments to the CSS. By default, PostCSS will always add a comment with a path - to the source map. PostCSS will not add annotations to CSS files that do not contain any comments. + to the source map. PostCSS will not add annotations to CSS files that + do not contain any comments. By default, PostCSS presumes that you want to save the source map as `opts.to + '.map'` and will use this path in the annotation comment. diff --git a/docs/api.md b/docs/api.md index 1160c547c..b469b2471 100644 --- a/docs/api.md +++ b/docs/api.md @@ -99,8 +99,8 @@ processor.plugins[0].postcssVersion //=> '4.1.0' ``` The plugin function receives 2 arguments: [`Root` node] and [`Result`] instance. -Then it should mutate the passed `Root` node. Alternatively, create a new `Root` node -and override the `result.root` property. +Then it should mutate the passed `Root` node. Alternatively, create a new `Root` +node and override the `result.root` property. ```js postcss.plugin('postcss-cleaner', function () { @@ -495,8 +495,8 @@ Arguments: message object. * `opts (object) optional`: properties to message object. * `node`: CSS node, that was a source of warning. - * `plugin`: name of plugin that created this warning. `Result#warn()` will fill it - automatically with `plugin.postcssPlugin` value. + * `plugin`: name of plugin that created this warning. `Result#warn()` will + fill it automatically with `plugin.postcssPlugin` value. ### `result.warnings()` @@ -620,8 +620,8 @@ warning.text //=> 'Try to avoid !important' ### `warning.plugin` -Contains name of plugin that created this warning. When you call [`Result#warn()`], -it will fill this property automatically. +Contains name of plugin that created this warning. When you call +[`Result#warn()`], it will fill this property automatically. ```js warning.plugin //=> 'postcss-important' @@ -715,11 +715,12 @@ Contains absolute path to broken file, if use set `from` option to parser. error.file //=> 'a.sass' ``` -PostCSS will use input source map to detect the original error location. If -you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will use input source map to detect the original error location. +If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.file`. +If you need position in PostCSS input (for example, to debug previous compiler), +use `error.generated.file`. ```js error.file //=> 'a.sass' @@ -738,7 +739,8 @@ PostCSS will use input source map to detect the original error location. If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.line`. +If you need position in PostCSS input (for example, to debug previous compiler), +use `error.generated.line`. ```js error.line //=> 2 @@ -757,7 +759,8 @@ PostCSS will use input source map to detect the original error location. If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.column`. +If you need position in PostCSS input (for example, to debug previous compiler), +use `error.generated.column`. ```js error.column //=> 1 @@ -772,11 +775,12 @@ Contains source code of broken file. error.source //=> 'a {} b {' ``` -PostCSS will use input source map to detect the original error location. If -you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will use input source map to detect the original error location. +If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), use `error.generated.source`. +If you need position in PostCSS input (for example, to debug previous compiler), +use `error.generated.source`. ```js error.source //=> 'a { b {} }' @@ -809,8 +813,8 @@ postcss.vendor.unprefixed('-moz-tab-size') //=> 'tab-size' ## List module -Contains helpers for safely splitting lists of CSS values, preserving parentheses -and quotes. +Contains helpers for safely splitting lists of CSS values, +preserving parentheses and quotes. ```js var list = postcss.list; @@ -1121,7 +1125,8 @@ root.nodes[0].nodes[1].style('before') //=> ' ' Arguments: * `prop (string)`: name or code style property. -* `defaultType (string)`: name of default value. It can be easily missed if the value is the same as `prop`. +* `defaultType (string)`: name of default value. It can be easily missed + if the value is the same as `prop`. ## Containers: common methods @@ -1379,7 +1384,8 @@ during iteration. Passes all declaration values within the container that match `pattern` through `callback`, replacing those values with the returned result of `callback`. -This method is useful if you are using a custom unit or function and need to iterate through all values. +This method is useful if you are using a custom unit or function and need +to iterate through all values. ```js root.replaceValues(/\d+rem/, { fast: 'rem' }, function (string) { @@ -1394,7 +1400,8 @@ Arguments: * `props`: An array of property names. The method will only search for values that match `regexp` within declarations of listed properties. * `fast`: A string that used to narrow down values and speed up - the regexp search. Searching every single value with a regexp can be slow. If you pass a `fast` string, PostCSS will first check whether the value + the regexp search. Searching every single value with a regexp can be slow. + If you pass a `fast` string, PostCSS will first check whether the value contains the `fast` string; and only if it does will PostCSS check that value against `regexp`. For example, instead of just checking for `/\d+rem/` on all values, set `fast: 'rem'` to first check whether a value has @@ -1428,14 +1435,15 @@ rule.append({ prop: 'color', value: 'black' }); // declaration rule.append({ text: 'Comment' }) // comment ``` -A string containing the CSS of the new element can also be used. This approach is slower than the above shortcuts. +A string containing the CSS of the new element can also be used. +This approach is slower than the above shortcuts. ```js root.append('a {}'); root.first.append('color: black; z-index: 1'); ``` -### `container.insertBefore(oldNode, newNew)` and `container.insertAfter(oldNode, newNew)` +### `container.insertBefore(oldNode, newNew)` and `container.insertAfter(oldNode, newNew)` Insert `newNode` before/after `oldNode` within the container. From 06e93a8e7390a0abbf513f334038fd61efb59c4f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 9 Jul 2015 13:30:11 +0300 Subject: [PATCH 0406/3047] Fix line breaks --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ab52077b..ba1ec7e66 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ As a result, PostCSS offers three main benefits: transpiles the latest W3C drafts to current CSS syntax. * **New abilities:** PostCSS plugins can read and change every part of CSS. It makes many new classes of tools possible. [Autoprefixer], [`rtlcss`], - [`doiuse`] or [`postcss-colorblind`] are good examples. + [`doiuse`] or [`postcss-colorblind`] are good examples. [3 times faster]: https://github.com/postcss/benchmark From a56f6db280bf3689ee89e558459468fad66c676e Mon Sep 17 00:00:00 2001 From: Sean King Date: Fri, 10 Jul 2015 17:16:45 +1000 Subject: [PATCH 0407/3047] Add Rucksack to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ba1ec7e66..397acf630 100644 --- a/README.md +++ b/README.md @@ -189,9 +189,11 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`cssnano`] contains plugins that optimize CSS size for use in production. * [`cssnext`] contains plugins that allow you to use future CSS features today. * [`precss`] contains plugins that allow you to use Sass-like CSS. +* [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ +[`rucksack`]: https://github.com/simplaio/rucksack [`atcss`]: https://github.com/morishitter/atcss ### Future CSS Syntax From 1520a82c639cb009b61a1482c9adf33bf7930b85 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 10 Jul 2015 13:00:12 +0300 Subject: [PATCH 0408/3047] Fix links order --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 397acf630..80f0b44b6 100644 --- a/README.md +++ b/README.md @@ -191,9 +191,10 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`precss`] contains plugins that allow you to use Sass-like CSS. * [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. + +[`rucksack`]: https://github.com/simplaio/rucksack [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ -[`rucksack`]: https://github.com/simplaio/rucksack [`atcss`]: https://github.com/morishitter/atcss ### Future CSS Syntax From b19fb5fa53f9abc21929c1287173fd5ef1dadba3 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Fri, 10 Jul 2015 11:50:48 +0100 Subject: [PATCH 0409/3047] Add postcss-svgo to the readme. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ba1ec7e66..3bc0e3d7f 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. * [`postcss-sprites`] generates CSS sprites from stylesheets. +* [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`css-byebye`] removes the CSS rules that you don’t want. @@ -300,6 +301,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. See also plugins in modular minifier [`cssnano`]. +[SVGO]: https://github.com/svg/svgo + ### Shortcuts * [`postcss-alias`] creates shorter aliases for properties. @@ -454,6 +457,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`postcss-size`]: https://github.com/postcss/postcss-size +[`postcss-svgo`]: https://github.com/ben-eb/postcss-svgo [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker From 533c09a989ec02fb4e013e3058b67b0cf44efcee Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Fri, 10 Jul 2015 13:59:30 -0500 Subject: [PATCH 0410/3047] Add postcss-nested-props to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d5a34b520..bd9dada9e 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. in `@media` rules * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-nested`] unwraps nested rules. +* [`postcss-nested-props`] unwraps nested properties. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-simple-extend`] supports extending of silent classes, @@ -408,6 +409,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer From 7e0daa52afdf03c698dfedf660a7fdbebd894f88 Mon Sep 17 00:00:00 2001 From: Shilov Vlad Date: Sun, 12 Jul 2015 14:23:02 +0400 Subject: [PATCH 0411/3047] Add postcss-pseudo-elements-content to README https://github.com/omgovich/postcss-pseudo-elements-content --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bd9dada9e..7afcd8d7f 100644 --- a/README.md +++ b/README.md @@ -341,6 +341,7 @@ See also plugins in modular minifier [`cssnano`]. in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. +* [`postcss-pseudo-elements-content`] automatically add `content: ''` to `:before` and `:after` pseudo-elements. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. @@ -363,6 +364,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. +[`postcss-pseudo-elements-content`]:https://github.com/omgovich/postcss-pseudo-elements-content [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets From 4aa2afb2f7da932e2435acf3f0fdd8ee63d2c901 Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 13 Jul 2015 20:45:09 +0700 Subject: [PATCH 0412/3047] Add postcss-svg to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7afcd8d7f..818b70e24 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. `@charset` rule at the top of file. * [`postcss-sprites`] generates CSS sprites from stylesheets. * [`postcss-svgo`] processes inline SVG through [SVGO]. +* [`postcss-svg`] insert inline SVG to CSS and allows to manage it colors. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`css-byebye`] removes the CSS rules that you don’t want. @@ -471,6 +472,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-bem`]: https://github.com/ileri/postcss-bem [`postcss-for`]: https://github.com/antyakushev/postcss-for [`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-svg`]: https://github.com/Pavliko/postcss-svg [`postcss-url`]: https://github.com/postcss/postcss-url [`css-byebye`]: https://github.com/AoDev/css-byebye [`stylehacks`]: https://github.com/ben-eb/stylehacks From d4cd535f1b05e16a5ce13b26977e6490622d2512 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Jul 2015 20:58:19 +0300 Subject: [PATCH 0413/3047] Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 818b70e24..f5ea48f5c 100644 --- a/README.md +++ b/README.md @@ -270,7 +270,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. in the `brand-colors` module. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` to `rgba()`. -* [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `HCL(H, C, L, alpha)` +* [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `hcl(H, C, L, alpha)` to `#rgb` and `rgba()`. * [`postcss-color-mix`] mixes two colors together. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. From 904c9e5e0fdbae933184ceb9e94a48563269bfe1 Mon Sep 17 00:00:00 2001 From: David Clark Date: Mon, 13 Jul 2015 17:27:32 -0700 Subject: [PATCH 0414/3047] Swap postcss-log-warnings for postcss-reporter postcss-log-warnings reports that it is deprecated and users should get postcss-reporter instead. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f5ea48f5c..c2ef0e565 100644 --- a/README.md +++ b/README.md @@ -338,12 +338,12 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. -* [`postcss-log-warnings`] logs warnings messages from other plugins - in the console. * [`postcss-messages`] displays warning messages from other plugins right in your browser. * [`postcss-pseudo-elements-content`] automatically add `content: ''` to `:before` and `:after` pseudo-elements. * [`postcss-pxtorem`] converts pixel units to `rem`. +* * [`postcss-reporter`] logs warnings messages from other plugins + in the console. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. * [`stylehacks`] removes CSS hacks based on browser support. @@ -408,7 +408,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant -[`postcss-log-warnings`]: https://github.com/davidtheclark/postcss-log-warnings +[`postcss-reporter`]: https://github.com/postcss/postcss-reporter [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not From 98a20b935c6a0bf727aae26efbb0c322d105495f Mon Sep 17 00:00:00 2001 From: David Clark Date: Mon, 13 Jul 2015 20:06:07 -0700 Subject: [PATCH 0415/3047] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c2ef0e565..ab523cbc5 100644 --- a/README.md +++ b/README.md @@ -342,7 +342,7 @@ See also plugins in modular minifier [`cssnano`]. right in your browser. * [`postcss-pseudo-elements-content`] automatically add `content: ''` to `:before` and `:after` pseudo-elements. * [`postcss-pxtorem`] converts pixel units to `rem`. -* * [`postcss-reporter`] logs warnings messages from other plugins +* [`postcss-reporter`] logs warnings messages from other plugins in the console. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. From 79825d33c352bdcca17464e046c54f338ff9ab00 Mon Sep 17 00:00:00 2001 From: David Clark Date: Mon, 13 Jul 2015 20:06:57 -0700 Subject: [PATCH 0416/3047] Fix another typo Sorry. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab523cbc5..fb43056ab 100644 --- a/README.md +++ b/README.md @@ -342,7 +342,7 @@ See also plugins in modular minifier [`cssnano`]. right in your browser. * [`postcss-pseudo-elements-content`] automatically add `content: ''` to `:before` and `:after` pseudo-elements. * [`postcss-pxtorem`] converts pixel units to `rem`. -* [`postcss-reporter`] logs warnings messages from other plugins +* [`postcss-reporter`] logs warnings and other messages from other plugins in the console. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. From 7e15bf4c967e2396aa50c991a9fa79beadbd5e10 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Jul 2015 23:26:08 +0300 Subject: [PATCH 0417/3047] Fixx plugin desc length --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fb43056ab..bbfcef15e 100644 --- a/README.md +++ b/README.md @@ -340,7 +340,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. * [`postcss-messages`] displays warning messages from other plugins right in your browser. -* [`postcss-pseudo-elements-content`] automatically add `content: ''` to `:before` and `:after` pseudo-elements. +* [`postcss-pseudo-elements-content`] automatically adds `content: ""` + to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-reporter`] logs warnings and other messages from other plugins in the console. From ff3b7cb7cc33c5a8e684b151aac9e3ba8a428263 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Jul 2015 23:29:19 +0300 Subject: [PATCH 0418/3047] Fix spellchecker --- .yaspellerrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.yaspellerrc b/.yaspellerrc index f75d70fd8..75e60d8e7 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -99,6 +99,8 @@ "CLI", "CSS3", "CSS4", + "SVG", + "SVGO", "JS", "js", "vs", From b2338b48e27b6c614e6c5cfff8d7be70edb95c35 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Jul 2015 23:33:32 +0300 Subject: [PATCH 0419/3047] Update dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 7fea588f7..1221383b4 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "es6-promise": "~2.3.0", - "source-map": "~0.4.2", + "source-map": "~0.4.4", "js-base64": "~2.1.8", "babel": "5.6.14" }, @@ -22,11 +22,11 @@ "load-resources": "0.1.0", "gulp-eslint": "0.15.0", "gulp-babel": "5.1.0", - "gulp-mocha": "2.1.2", + "gulp-mocha": "2.1.3", "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.8", - "fs-extra": "0.21.0", + "fs-extra": "0.22.1", "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", From 710ffacf5bee82402289d9b0439728e82e873840 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Tue, 14 Jul 2015 14:39:49 -0500 Subject: [PATCH 0420/3047] Add postcss-font-pack to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index bbfcef15e..8a5adbfb6 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. +* [`postcss-font-pack`] simplifies font declarations and validates they match + configured font packs. * [`postcss-fontpath`] adds font links for different browsers. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. @@ -426,6 +428,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind +[`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix From 43ae5e3338b8c9a7de7ba0cda586db5e9f83b35b Mon Sep 17 00:00:00 2001 From: morishitter Date: Wed, 15 Jul 2015 18:24:30 +0900 Subject: [PATCH 0421/3047] Fix API docs --- docs/api.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api.md b/docs/api.md index b469b2471..862a75339 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1643,10 +1643,10 @@ This is a code style property. `true` if at-rule’s last child declaration is followed by an (optional) semicolon. -`undefined` if the semicolon is omitted. +`false` if the semicolon is omitted. ```js -postcss.parse('@page{color:black}').first.semicolon //=> undefined +postcss.parse('@page{color:black}').first.semicolon //=> false postcss.parse('@page{color:black;}').first.semicolon //=> true ``` @@ -1739,10 +1739,10 @@ This is a code style property. `true` if rule’s last child declaration is followed by an (optional) semicolon. -`undefined` if the semicolon is omitted. +`false` if the semicolon is omitted. ```js -postcss.parse('a{color:black}').first.semicolon //=> undefined +postcss.parse('a{color:black}').first.semicolon //=> false postcss.parse('a{color:black;}').first.semicolon //=> true ``` From 74448654184ff6aa9dc19474ad9c0ce4135c8f1d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 17 Jul 2015 12:00:03 +0300 Subject: [PATCH 0422/3047] Rename postcss-message to postcss-browser-reporter --- README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8a5adbfb6..8b84bb0b2 100644 --- a/README.md +++ b/README.md @@ -340,13 +340,9 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. -* [`postcss-messages`] displays warning messages from other plugins - right in your browser. * [`postcss-pseudo-elements-content`] automatically adds `content: ""` to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. -* [`postcss-reporter`] logs warnings and other messages from other plugins - in the console. * [`postcss-style-guide`] generates a style guide automatically. * [`rtlcss`] mirrors styles for right-to-left locales. * [`stylehacks`] removes CSS hacks based on browser support. @@ -361,6 +357,13 @@ See also plugins in modular minifier [`cssnano`]. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. +### Reporters + +* [`postcss-reporter`] logs warnings and other messages from other plugins + in the console. +* [`postcss-browser-reporter`] displays warning messages from other plugins + right in your browser. + ### Fun * [`postcss-australian-stylesheets`] Australian Style Sheets. @@ -383,6 +386,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments [`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries +[`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property [`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset @@ -436,7 +440,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats -[`postcss-messages`]: https://github.com/postcss/postcss-messages [`postcss-position`]: https://github.com/seaneking/postcss-position [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz From e097a32e1270555333553232afe11c4ed72e92a6 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Fri, 17 Jul 2015 11:48:26 +0100 Subject: [PATCH 0423/3047] Fix reporters ordering. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8b84bb0b2..e255a7e08 100644 --- a/README.md +++ b/README.md @@ -359,10 +359,10 @@ See also plugins in modular minifier [`cssnano`]. ### Reporters -* [`postcss-reporter`] logs warnings and other messages from other plugins - in the console. * [`postcss-browser-reporter`] displays warning messages from other plugins right in your browser. +* [`postcss-reporter`] logs warnings and other messages from other plugins + in the console. ### Fun From 3aded9b8ca69bb84b28edd5ea841367a45c79c51 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 18 Jul 2015 00:11:17 +0100 Subject: [PATCH 0424/3047] Add perfectionist to the README. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e255a7e08..6346eaeb8 100644 --- a/README.md +++ b/README.md @@ -344,6 +344,7 @@ See also plugins in modular minifier [`cssnano`]. to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. +* [`perfectionist`] formats poorly written CSS and renders a "pretty" result. * [`rtlcss`] mirrors styles for right-to-left locales. * [`stylehacks`] removes CSS hacks based on browser support. @@ -464,6 +465,7 @@ See also plugins in modular minifier [`cssnano`]. [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`postcss-short`]: https://github.com/jonathantneal/postcss-short [`postcss-alias`]: https://github.com/seaneking/postcss-alias +[`perfectionist`]: https://github.com/ben-eb/perfectionist [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-each`]: https://github.com/outpunk/postcss-each From c1dc91de928ef4a4bba7addbead00ae02559b6fc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Jul 2015 03:43:44 +0300 Subject: [PATCH 0425/3047] Fix typography --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6346eaeb8..8b3b27e8d 100644 --- a/README.md +++ b/README.md @@ -344,7 +344,7 @@ See also plugins in modular minifier [`cssnano`]. to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. -* [`perfectionist`] formats poorly written CSS and renders a "pretty" result. +* [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. * [`stylehacks`] removes CSS hacks based on browser support. From 98e49acd2119c7cee40eca3165ed2b1019671f82 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Jul 2015 15:43:25 +0300 Subject: [PATCH 0426/3047] Update dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1221383b4..2a52842fe 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "es6-promise": "~2.3.0", "source-map": "~0.4.4", "js-base64": "~2.1.8", - "babel": "5.6.14" + "babel": "5.6.23" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -30,7 +30,7 @@ "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", - "chai": "3.0.0" + "chai": "3.1.0" }, "scripts": { "test": "gulp" From 105f0fdd677ab37763281d8c5710ea813e10f1e7 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Sat, 18 Jul 2015 11:54:37 -0400 Subject: [PATCH 0427/3047] Add postcss-transform-shortcut plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8b3b27e8d..137e625c2 100644 --- a/README.md +++ b/README.md @@ -330,6 +330,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-short`] adds and extends numerous shorthand properties. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. +* [`postcss-transform-shortcut`] allows shorthand transform properties in CSS. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. ### Others @@ -381,6 +382,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight [`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter +[`postcss-transform-shortcut`]: https://github.com/jonathantneal/postcss-transform-shortcut [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors From 31a0b034079d39237809f9fb2a5fed8667e30e40 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 19 Jul 2015 02:36:36 +0300 Subject: [PATCH 0428/3047] Weibo account has no update since AP 5.1 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 137e625c2..3eea85bb4 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 3-30 times faster, and much more powerful. Twitter account: [@postcss](https://twitter.com/postcss). -Weibo account: [postcss](http://weibo.com/postcss). VK.com page: [postcss](https://vk.com/postcss). [chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg From 85df8353cc0b0c32f92709efa40564d8f5f7c780 Mon Sep 17 00:00:00 2001 From: David Clark Date: Sat, 18 Jul 2015 19:30:37 -0700 Subject: [PATCH 0429/3047] Add stylelint to README --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3eea85bb4..32fb917c0 100644 --- a/README.md +++ b/README.md @@ -189,12 +189,14 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`cssnext`] contains plugins that allow you to use future CSS features today. * [`precss`] contains plugins that allow you to use Sass-like CSS. * [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. +* [`stylelint`] contains plugins that lint your stylesheets. -[`rucksack`]: https://github.com/simplaio/rucksack -[`cssnano`]: https://github.com/ben-eb/cssnano -[`cssnext`]: http://cssnext.io/ -[`atcss`]: https://github.com/morishitter/atcss +[`rucksack`]: https://github.com/simplaio/rucksack +[`cssnano`]: https://github.com/ben-eb/cssnano +[`cssnext`]: http://cssnext.io/ +[`atcss`]: https://github.com/morishitter/atcss +[`stylelint`]: https://github.com/stylelint/stylelint ### Future CSS Syntax From d1d1acc76c2c7b65b74aa33386f339195369d177 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 19 Jul 2015 12:33:45 +0300 Subject: [PATCH 0430/3047] Fix links order --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 32fb917c0..f872699cd 100644 --- a/README.md +++ b/README.md @@ -191,12 +191,11 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. * [`stylelint`] contains plugins that lint your stylesheets. - +[`stylelint`]: https://github.com/stylelint/stylelint [`rucksack`]: https://github.com/simplaio/rucksack [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ [`atcss`]: https://github.com/morishitter/atcss -[`stylelint`]: https://github.com/stylelint/stylelint ### Future CSS Syntax From 6b8b6fd945e508a9622b2ea83ec80c46eee692da Mon Sep 17 00:00:00 2001 From: David Clark Date: Wed, 22 Jul 2015 07:15:02 -0700 Subject: [PATCH 0431/3047] English fixes and minor additions to plugin guidelines --- docs/guidelines/plugin.md | 88 +++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 40 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index f00c2efec..4cc9a2d86 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -1,7 +1,9 @@ # PostCSS Plugin Guidelines -PostCSS plugin is a function that receives and transforms a CSS AST -from PostCSS parser. These rules are mandatory for all PostCSS plugins. +A PostCSS plugin is a function that receives and, usually, transforms a CSS AST +from the PostCSS parser. + +The rules below are *mandatory* for all PostCSS plugins. See also [ClojureWerkz’s recommendations] for open source projects. @@ -11,42 +13,46 @@ See also [ClojureWerkz’s recommendations] for open source projects. ### 1.1 Clear name with `postcss-` prefix -Plugin’s purpose should be clear just by its name. +The plugin’s purpose should be clear just by reading its name. If you wrote a transpiler for CSS 4 Custom Media, `postcss-custom-media` -is a good name. If you wrote a plugin to support mixin, -use `postcss-mixins` as name. +would be a good name. If you wrote a plugin to support mixins, +`postcss-mixins` would be a good name. -Prefix `postcss-` will show, that plugin is part of PostCSS ecosystem. +The prefix `postcss-` shows that the plugin is part of the PostCSS ecosystem. -This rule is not mandatory for plugins promoted as separated tool, -not like a part of PostCSS ecosystem. Like [cssnext] or [Autoprefixer]. +This rule is not mandatory for plugins that can run as independent tools, +without the user necessarily knowing that it is powered by +PostCSS — for example, [cssnext] and [Autoprefixer]. [Autoprefixer]: https://github.com/postcss/autoprefixer [cssnext]: http://cssnext.io/ ### 1.2. Do one thing, and do it well -Do not create multitool plugins. Few small one-purpose plugins with -a plugins pack will be a better solution. +Do not create multitool plugins. Several small, one-purpose plugins bundled into +a plugin pack is usually a better solution. -For example, [cssnext] contains many small plugins for each W3C specification. -Or [cssnano] contains a plugin for each optimization. +For example, [cssnext] contains many small plugins, one for each W3C specification. +And [cssnano] contains a separate plugin for each of its optimization. [cssnext]: http://cssnext.io/ [cssnano]: https://github.com/ben-eb/cssnano ### 1.3. Do not use mixins -Preprocessors libraries like Compass provide API by mixins. +Preprocessors libraries like Compass provide an API with mixins. + +PostCSS plugins are different. +A plugin cannot be just a set of mixins for [postcss-mixins]. -PostCSS has a different way. Do not provide mixins for [postcss-mixins]. -Custom properties and at-rules are better way. +To achieve your goal, consider transforming valid CSS +or using custom at-rules and custom properties. [postcss-mixins]: https://github.com/postcss/postcss-mixins ### 1.4. Create plugin by `postcss.plugin` -This method will create a wrap to provide common plugin API: +By wrapping you function in this method, you are hooking into a common plugin API: ```js module.exports = postcss.plugin('plugin-name', function (opts) { @@ -60,8 +66,8 @@ module.exports = postcss.plugin('plugin-name', function (opts) { ### 2.1. Plugin must be tested -CI service like [Travis] is also recommended to test code on -different environments (at least on node.js 0.12 and io.js). +A CI service like [Travis] is also recommended for testing code in +different environments. You should test in (at least) Node.js v0.12 and io.js. [Travis]: https://travis-ci.org/ @@ -87,10 +93,10 @@ postcss.plugin('plugin-sprite', function (opts) { ### 2.3. Set `node.source` for new nodes -Every node must have relevant `source` to generate correct source map. +Every node must have a relevant `source` so PostCSS can generate an accurate source map. -So if you add new declaration, because of different declaration, you should -clone it to save origin `source`. +So if you add new declaration based on some existing declaration, you should +clone the existing declaration in order to save that original `source`. ```js if ( needPrefix(decl.prop) ) { @@ -98,8 +104,7 @@ if ( needPrefix(decl.prop) ) { } ``` -If you will create different type of node, you can just set `source` -from source node: +You can also set `source` directly, copying from some existing node: ```js if ( decl.prop === 'animation' ) { @@ -121,8 +126,8 @@ is described in [API docs]. ### 3.1. Use `node.error` on CSS relevant errors -If you have a error because of input CSS (like unknown name in mixin plugin) -you should use `node.error` to create a error with source position: +If you have an error because of input CSS (like an unknown name in a mixin plugin) +you should use `node.error` to create an error that includes source position: ```js if ( typeof mixins[name] === 'undefined' ) { @@ -132,8 +137,8 @@ if ( typeof mixins[name] === 'undefined' ) { ### 3.2. Use `result.warn` for warnings -Do not print warnings by `console.warn`, because some PostCSS runner may has -no console output. +Do not print warnings with `console.log` or `console.warn`, +because some PostCSS runner may not allow console output. ```js if ( outdated(decl.prop) ) { @@ -141,7 +146,7 @@ if ( outdated(decl.prop) ) { } ``` -If CSS input is a source of warning, plugin must set `node` option. +If CSS input is a source of the warning, the plugin must set the `node` option. ## 4. Documentation @@ -153,31 +158,34 @@ of your English skills, as the open source community will fix your errors. Of course, you are welcome to write documentation in other languages; just name them appropriately (e.g. `README.ja.md`). -### 4.2. Put input and output examples +### 4.2. Include input and output examples + +The plugin's `README.md` must contain example input and output CSS. +A clear example is the best way to describe how your plugin works. -`README.md` must contain input and output CSS. Example is a best way -to describe plugin work. +The first section of the `README.md` is a good place to put examples. +See [postcss-opacity](https://github.com/iamvdo/postcss-opacity) for an example. -First section is a good place to put examples. -See [postcss-opacity](https://github.com/iamvdo/postcss-opacity) for example. +Of course, this guideline does not apply if your plugin does not +transform the CSS. ### 4.3. Maintain a changelog -PostCSS plugins must describe changes of all releases in a separate file, -such as `ChangeLog.md`, `History.md`, or with [GitHub Releases]. -Visit [Keep A Changelog] for more information on how to write one of these. +PostCSS plugins must describe the changes of all their releases in a separate file, +such as `CHANGELOG.md`, `History.md`, or [GitHub Releases]. +Visit [Keep A Changelog] for more information about how to write one of these. -Of course you should use [SemVer]. +Of course, you should be using [SemVer]. [Keep A Changelog]: http://keepachangelog.com/ [GitHub Releases]: https://help.github.com/articles/creating-releases/ [SemVer]: http://semver.org/ -### 4.4. `postcss-plugin` keyword in `package.json` +### 4.4. Include `postcss-plugin` keyword in `package.json` PostCSS plugins written for npm must have the `postcss-plugin` keyword in their `package.json`. This special keyword will be useful for feedback about the PostCSS ecosystem. -For packages not published to npm, this is not mandatory, but recommended -if the package format is allowed to contain keywords. +For packages not published to npm, this is not mandatory, but is recommended +if the package format can contain keywords. From e64199745e5b68cfc29de6037f1c60c3fbb276a2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Jul 2015 17:21:51 +0300 Subject: [PATCH 0432/3047] Clean up guidelines text formation --- docs/guidelines/plugin.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 4cc9a2d86..0fd2baa88 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -1,7 +1,7 @@ # PostCSS Plugin Guidelines -A PostCSS plugin is a function that receives and, usually, transforms a CSS AST -from the PostCSS parser. +A PostCSS plugin is a function that receives and, usually, +transforms a CSS AST from the PostCSS parser. The rules below are *mandatory* for all PostCSS plugins. @@ -21,7 +21,7 @@ would be a good name. If you wrote a plugin to support mixins, The prefix `postcss-` shows that the plugin is part of the PostCSS ecosystem. This rule is not mandatory for plugins that can run as independent tools, -without the user necessarily knowing that it is powered by +without the user necessarily knowing that it is powered by PostCSS — for example, [cssnext] and [Autoprefixer]. [Autoprefixer]: https://github.com/postcss/autoprefixer @@ -32,8 +32,9 @@ PostCSS — for example, [cssnext] and [Autoprefixer]. Do not create multitool plugins. Several small, one-purpose plugins bundled into a plugin pack is usually a better solution. -For example, [cssnext] contains many small plugins, one for each W3C specification. -And [cssnano] contains a separate plugin for each of its optimization. +For example, [cssnext] contains many small plugins, +one for each W3C specification. And [cssnano] contains a separate plugin +for each of its optimization. [cssnext]: http://cssnext.io/ [cssnano]: https://github.com/ben-eb/cssnano @@ -42,7 +43,7 @@ And [cssnano] contains a separate plugin for each of its optimization. Preprocessors libraries like Compass provide an API with mixins. -PostCSS plugins are different. +PostCSS plugins are different. A plugin cannot be just a set of mixins for [postcss-mixins]. To achieve your goal, consider transforming valid CSS @@ -52,7 +53,8 @@ or using custom at-rules and custom properties. ### 1.4. Create plugin by `postcss.plugin` -By wrapping you function in this method, you are hooking into a common plugin API: +By wrapping you function in this method, +you are hooking into a common plugin API: ```js module.exports = postcss.plugin('plugin-name', function (opts) { @@ -67,7 +69,7 @@ module.exports = postcss.plugin('plugin-name', function (opts) { ### 2.1. Plugin must be tested A CI service like [Travis] is also recommended for testing code in -different environments. You should test in (at least) Node.js v0.12 and io.js. +different environments. You should test in (at least) Node.js 0.12 and io.js. [Travis]: https://travis-ci.org/ @@ -93,7 +95,8 @@ postcss.plugin('plugin-sprite', function (opts) { ### 2.3. Set `node.source` for new nodes -Every node must have a relevant `source` so PostCSS can generate an accurate source map. +Every node must have a relevant `source` so PostCSS can generate +an accurate source map. So if you add new declaration based on some existing declaration, you should clone the existing declaration in order to save that original `source`. @@ -126,8 +129,9 @@ is described in [API docs]. ### 3.1. Use `node.error` on CSS relevant errors -If you have an error because of input CSS (like an unknown name in a mixin plugin) -you should use `node.error` to create an error that includes source position: +If you have an error because of input CSS (like an unknown name +in a mixin plugin) you should use `node.error` to create an error +that includes source position: ```js if ( typeof mixins[name] === 'undefined' ) { @@ -137,7 +141,7 @@ if ( typeof mixins[name] === 'undefined' ) { ### 3.2. Use `result.warn` for warnings -Do not print warnings with `console.log` or `console.warn`, +Do not print warnings with `console.log` or `console.warn`, because some PostCSS runner may not allow console output. ```js @@ -160,7 +164,7 @@ just name them appropriately (e.g. `README.ja.md`). ### 4.2. Include input and output examples -The plugin's `README.md` must contain example input and output CSS. +The plugin's `README.md` must contain example input and output CSS. A clear example is the best way to describe how your plugin works. The first section of the `README.md` is a good place to put examples. @@ -171,8 +175,8 @@ transform the CSS. ### 4.3. Maintain a changelog -PostCSS plugins must describe the changes of all their releases in a separate file, -such as `CHANGELOG.md`, `History.md`, or [GitHub Releases]. +PostCSS plugins must describe the changes of all their releases +in a separate file, such as `CHANGELOG.md`, `History.md`, or [GitHub Releases]. Visit [Keep A Changelog] for more information about how to write one of these. Of course, you should be using [SemVer]. From b78de421e04745cbbd82bb78557bfd57c6d0be3d Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 22 Jul 2015 19:08:01 +0200 Subject: [PATCH 0433/3047] Add `postcss-svg-fallback` to list of plugins --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f872699cd..552812a02 100644 --- a/README.md +++ b/README.md @@ -235,6 +235,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`cssgrace`] provides various helpers and transpiles CSS 3 for IE and other old browsers. * [`pixrem`] generates pixel fallbacks for `rem` units. +* [`postcss-svg-fallback`] automatically converts SVG in your CSS to PNG files for IE 8 compatibility. ### Language Extensions @@ -495,6 +496,7 @@ See also plugins in modular minifier [`cssnano`]. [`precss`]: https://github.com/jonathantneal/precss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost +[`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback ## How to Develop a PostCSS Plugin From 86dd2a345e5c7ab4c93a5c5dd2c7ae9f95e987c8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Jul 2015 22:01:47 +0300 Subject: [PATCH 0434/3047] Create a Image and Font plugin section --- README.md | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 552812a02..52be07d87 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: [`rucksack`]: https://github.com/simplaio/rucksack [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ +[`precss`]: https://github.com/jonathantneal/precss [`atcss`]: https://github.com/morishitter/atcss ### Future CSS Syntax @@ -224,8 +225,6 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal. * [`postcss-epub`] adds the `-epub-` prefix to relevant properties. -* [`postcss-image-set`] adds `background-image` with first image - for `image-set()`. * [`postcss-opacity`] adds opacity filter for IE8. * [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors for IE 8 compatibility. @@ -235,7 +234,6 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`cssgrace`] provides various helpers and transpiles CSS 3 for IE and other old browsers. * [`pixrem`] generates pixel fallbacks for `rem` units. -* [`postcss-svg-fallback`] automatically converts SVG in your CSS to PNG files for IE 8 compatibility. ### Language Extensions @@ -265,6 +263,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. based on `font-size` and `line-height`. * [`csstyle`] adds components workflow to your styles. +See also [`precss`] plugins pack to add them by one line of code. + ### Colors * [`postcss-brand-colors`] inserts company brand colors @@ -277,8 +277,28 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-color-pantone`] transforms pantone color to RGB. * [`postcss-color-scale`] adds a color scale `cs()` function. +* [`postcss-colorblind`] transforms colors using filters to simulate + colorblindness. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. +### Images and Fonts + +* [`postcss-assets`] allows you to simplify URLs, insert image dimensions, + and inline files. +* [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. +* [`postcss-data-packer`] moves embedded Base64 data to a separate file. +* [`postcss-image-set`] adds `background-image` with first image + for `image-set()`. +* [`postcss-font-pack`] simplifies font declarations and validates they match + configured font packs. +* [`postcss-fontpath`] adds font links for different browsers. +* [`postcss-sprites`] generates CSS sprites from stylesheets. +* [`postcss-svg`] insert inline SVG to CSS and allows to manage it colors. +* [`postcss-svg-fallback`] converts SVG in your CSS to PNG files for IE 8. +* [`postcss-svgo`] processes inline SVG through [SVGO]. +* [`postcss-url`] rebases or inlines `url()`s. +* [`webpcss`] adds URLs for WebP images for browsers that support WebP. + ### Grids * [`postcss-grid`] adds a semantic grid system. @@ -287,23 +307,15 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. ### Optimizations -* [`postcss-assets`] allows you to simplify URLs, insert image dimensions, - and inline files. -* [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). -* [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. -* [`postcss-sprites`] generates CSS sprites from stylesheets. -* [`postcss-svgo`] processes inline SVG through [SVGO]. -* [`postcss-svg`] insert inline SVG to CSS and allows to manage it colors. -* [`postcss-url`] rebases or inlines `url()`s. * [`postcss-zindex`] rebases positive `z-index` values. * [`css-byebye`] removes the CSS rules that you don’t want. * [`css-mqpacker`] joins matching CSS media queries into a single statement. -* [`webpcss`] adds URLs for WebP images for browsers that support WebP. +* [`stylehacks`] removes CSS hacks based on browser support. See also plugins in modular minifier [`cssnano`]. @@ -320,9 +332,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. * [`postcss-focus`] adds `:focus` selector to every `:hover`. -* [`postcss-font-pack`] simplifies font declarations and validates they match - configured font packs. -* [`postcss-fontpath`] adds font links for different browsers. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. * [`postcss-position`] adds shorthand declarations for position attributes. @@ -337,8 +346,6 @@ See also plugins in modular minifier [`cssnano`]. ### Others * [`postcss-class-prefix`] adds a prefix/namespace to class selectors. -* [`postcss-colorblind`] transforms colors using filters to simulate - colorblindness. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. @@ -348,7 +355,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-style-guide`] generates a style guide automatically. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`stylehacks`] removes CSS hacks based on browser support. ### Analysis @@ -419,10 +425,10 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer [`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant -[`postcss-reporter`]: https://github.com/postcss/postcss-reporter [`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax [`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback [`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale @@ -449,6 +455,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-fontpath`]: https://github.com/seaneking/postcss-fontpath +[`postcss-reporter`]: https://github.com/postcss/postcss-reporter [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity @@ -493,10 +500,8 @@ See also plugins in modular minifier [`cssnano`]. [`webpcss`]: https://github.com/lexich/webpcss [`doiuse`]: https://github.com/anandthakker/doiuse [`pixrem`]: https://github.com/robwierzbowski/node-pixrem -[`precss`]: https://github.com/jonathantneal/precss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -[`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback ## How to Develop a PostCSS Plugin From 8eab99083b98e21cec5a4f1e5c209bfb62ac1f67 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Jul 2015 22:03:04 +0300 Subject: [PATCH 0435/3047] Use PreCSS in main examples --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 52be07d87..9f6b1c76c 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,7 @@ You can use the [cssnext] plugin pack and write future CSS code right now: } ``` -Or if you like the Sass syntax, you could combine -[`postcss-nested`] and [`postcss-mixins`]: +Or if you like the Sass syntax, you could use [PreCSS] plugin pack: ```css @define-mixin social-icon $network $color { @@ -82,6 +81,7 @@ Or if you like the Sass syntax, you could combine ``` [cssnext]: http://cssnext.io/ +[PreCSS]: https://github.com/jonathantneal/precss ## Features From 5a0f2e8e733fef39c21b442239828d4ace6bb5ea Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Jul 2015 22:05:33 +0300 Subject: [PATCH 0436/3047] Fix spellchecker --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index 75e60d8e7..226f8d173 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -32,6 +32,7 @@ "Sass", "Sass’s", "Weibo", + "PreCSS", "libsass", "CSSOM", "Jeet", From 6abb02a0034a236ed9bd4aa417651079256c7c0f Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Wed, 22 Jul 2015 22:39:50 +0200 Subject: [PATCH 0437/3047] Fix and update npm keywords --- package.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2a52842fe..abcf67d25 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,18 @@ "name": "postcss", "version": "4.1.16", "description": "Tool for transforming CSS with JS plugins", - "keywords": ["css", "postproccessor", "parser", "source map", "transform", - "manipulation", "preprocess", "transpiler"], + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "postprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], "author": "Andrey Sitnik ", "license": "MIT", "repository": { From cb588d380ac60dd20d0e7701d138f761f4cf0f12 Mon Sep 17 00:00:00 2001 From: TCotton Date: Thu, 23 Jul 2015 00:50:46 +0100 Subject: [PATCH 0438/3047] added link to postcss-mq-keyframes in the others sectioin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9f6b1c76c..8691f87ea 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. +* [`postcss-mq-keyframes`] moves any CSS3 keyframe animation in media queries to the end of the file * [`postcss-pseudo-elements-content`] automatically adds `content: ""` to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. @@ -418,6 +419,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-mq-keyframes`] https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals From 30efe10113a4a7a22473fcf1358ddd55e92b064b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Jul 2015 02:54:36 +0300 Subject: [PATCH 0439/3047] Fix 80 columns line --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8691f87ea..df475447a 100644 --- a/README.md +++ b/README.md @@ -349,7 +349,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. -* [`postcss-mq-keyframes`] moves any CSS3 keyframe animation in media queries to the end of the file +* [`postcss-mq-keyframes`] moves any animation keyframes in media queries + to the end of the file. * [`postcss-pseudo-elements-content`] automatically adds `content: ""` to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. From 0ae65a4234e74519767881181dff1d5c412ade53 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Jul 2015 02:56:38 +0300 Subject: [PATCH 0440/3047] Fix spellcheck --- .yaspellerrc | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 226f8d173..279ca18d2 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -96,6 +96,7 @@ "stylesheet", "stylesheets", "stringifier", + "keyframes", "BEM", "CLI", "CSS3", diff --git a/README.md b/README.md index df475447a..586f5d6ee 100644 --- a/README.md +++ b/README.md @@ -420,7 +420,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend -[`postcss-mq-keyframes`] https://github.com/TCotton/postcss-mq-keyframes +[`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals From 66ac1ba769964daa61773c48c087b2a5684ff535 Mon Sep 17 00:00:00 2001 From: Nick Sheffield Date: Thu, 23 Jul 2015 15:05:56 +1200 Subject: [PATCH 0441/3047] Added postcss-color-hexa to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f872699cd..f7304ad7c 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-color-pantone`] transforms pantone color to RGB. * [`postcss-color-scale`] adds a color scale `cs()` function. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. +* [`postcss-color-hexa`] transforms `hexa(hex, alpha)` into rgba format. ### Grids @@ -495,6 +496,7 @@ See also plugins in modular minifier [`cssnano`]. [`precss`]: https://github.com/jonathantneal/precss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost +[`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa ## How to Develop a PostCSS Plugin From 0dc03b823ce9c95357f88eee5ef7dc220f09b0d0 Mon Sep 17 00:00:00 2001 From: Nick Sheffield Date: Thu, 23 Jul 2015 16:57:10 +1200 Subject: [PATCH 0442/3047] added rgba to spellcheck --- .yaspellerrc | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index 75e60d8e7..0bc371a7e 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -104,6 +104,7 @@ "JS", "js", "vs", - "pantone" + "pantone", + "rgba" ] } diff --git a/README.md b/README.md index f7304ad7c..f97c32efd 100644 --- a/README.md +++ b/README.md @@ -436,6 +436,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind +[`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb @@ -496,7 +497,6 @@ See also plugins in modular minifier [`cssnano`]. [`precss`]: https://github.com/jonathantneal/precss [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -[`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa ## How to Develop a PostCSS Plugin From 90d9a22b2ec4e4d404f5ecd8930039a2ffa21ba2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Jul 2015 14:40:11 +0300 Subject: [PATCH 0443/3047] Fix plugins order --- .yaspellerrc | 3 +-- README.md | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index e0ab9bf01..279ca18d2 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -106,7 +106,6 @@ "JS", "js", "vs", - "pantone", - "rgba" + "pantone" ] } diff --git a/README.md b/README.md index 8f8122326..b86df37f6 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,7 @@ See also [`precss`] plugins pack to add them by one line of code. to `rgba()`. * [`postcss-color-hcl`] transforms `hcl(H, C, L)` and `hcl(H, C, L, alpha)` to `#rgb` and `rgba()`. +* [`postcss-color-hexa`] transforms `hexa(hex, alpha)` into `rgba` format. * [`postcss-color-mix`] mixes two colors together. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-color-pantone`] transforms pantone color to RGB. @@ -280,7 +281,6 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. -* [`postcss-color-hexa`] transforms `hexa(hex, alpha)` into rgba format. ### Images and Fonts From ea79b7e494d50546af13079e3adcaa6d1187dab4 Mon Sep 17 00:00:00 2001 From: Katerina Date: Thu, 23 Jul 2015 17:25:10 +0300 Subject: [PATCH 0444/3047] Add link to postcss-assets-rebase --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b86df37f6..eb587d942 100644 --- a/README.md +++ b/README.md @@ -299,6 +299,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. +* [`postcss-assets-rebase`] Copies all assets to specified folder and rebases their paths. ### Grids From 97eb95680fdf5ae9c13894f7d3f8effc0ba8b251 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Jul 2015 17:31:15 +0300 Subject: [PATCH 0445/3047] Fix postcss-assets-rebase link --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eb587d942..63ef14f8a 100644 --- a/README.md +++ b/README.md @@ -286,6 +286,8 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-assets`] allows you to simplify URLs, insert image dimensions, and inline files. +* [`postcss-assets-rebase`] copies all assets to specified folder + and rebases their paths. * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-image-set`] adds `background-image` with first image @@ -299,7 +301,6 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. -* [`postcss-assets-rebase`] Copies all assets to specified folder and rebases their paths. ### Grids @@ -422,6 +423,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-assets-rebase`]: https://github.com/devex-web-frontend/postcss-assets-rebase [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix From 3c9bc9970316831b7e7332df67ef83e1e5995979 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 23 Jul 2015 19:35:10 +0300 Subject: [PATCH 0446/3047] Remove postcss-assets-rebase as doublicate --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 63ef14f8a..b86df37f6 100644 --- a/README.md +++ b/README.md @@ -286,8 +286,6 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-assets`] allows you to simplify URLs, insert image dimensions, and inline files. -* [`postcss-assets-rebase`] copies all assets to specified folder - and rebases their paths. * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. * [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-image-set`] adds `background-image` with first image @@ -423,7 +421,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend -[`postcss-assets-rebase`]: https://github.com/devex-web-frontend/postcss-assets-rebase [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix From 5908c69e98f257b30c35d92cc40cf4f6b61eb305 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 24 Jul 2015 15:25:00 +0200 Subject: [PATCH 0447/3047] Fix link to "How to Develop a PostCSS Plugin" in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b86df37f6..d01460a20 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ VK.com page: [postcss](https://vk.com/postcss). [chat]: https://gitter.im/postcss/postcss [ci]: https://travis-ci.org/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#plugins) | [Write Your Own Plugin](#how-to-develop-postcss-plugin) | [Options](#options) +[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#plugins) | [Write Your Own Plugin](#how-to-develop-a-postcss-plugin) | [Options](#options) --- | --- | --- | --- | --- | --- From 64e064bfbf29980174c99a87731adfbe48ffd2c9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Jul 2015 17:01:14 +0300 Subject: [PATCH 0448/3047] Use 2 spaces in package.json --- package.json | 92 ++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index abcf67d25..6cc713aa2 100644 --- a/package.json +++ b/package.json @@ -1,48 +1,48 @@ { - "name": "postcss", - "version": "4.1.16", - "description": "Tool for transforming CSS with JS plugins", - "keywords": [ - "css", - "postcss", - "rework", - "preprocessor", - "postprocessor", - "parser", - "source map", - "transform", - "manipulation", - "transpiler" - ], - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/postcss/postcss.git" - }, - "dependencies": { - "es6-promise": "~2.3.0", - "source-map": "~0.4.4", - "js-base64": "~2.1.8", - "babel": "5.6.23" - }, - "devDependencies": { - "concat-with-sourcemaps": "1.0.2", - "gulp-json-editor": "2.2.1", - "load-resources": "0.1.0", - "gulp-eslint": "0.15.0", - "gulp-babel": "5.1.0", - "gulp-mocha": "2.1.3", - "yaspeller": "2.5.0", - "gulp-util": "3.0.6", - "gulp-run": "1.6.8", - "fs-extra": "0.22.1", - "sinon": "1.15.4", - "mocha": "2.2.5", - "gulp": "3.9.0", - "chai": "3.1.0" - }, - "scripts": { - "test": "gulp" - } + "name": "postcss", + "version": "4.1.16", + "description": "Tool for transforming CSS with JS plugins", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "postprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/postcss/postcss.git" + }, + "dependencies": { + "es6-promise": "~2.3.0", + "source-map": "~0.4.4", + "js-base64": "~2.1.8", + "babel": "5.6.23" + }, + "devDependencies": { + "concat-with-sourcemaps": "1.0.2", + "gulp-json-editor": "2.2.1", + "load-resources": "0.1.0", + "gulp-eslint": "0.15.0", + "gulp-babel": "5.1.0", + "gulp-mocha": "2.1.3", + "yaspeller": "2.5.0", + "gulp-util": "3.0.6", + "gulp-run": "1.6.8", + "fs-extra": "0.22.1", + "sinon": "1.15.4", + "mocha": "2.2.5", + "gulp": "3.9.0", + "chai": "3.1.0" + }, + "scripts": { + "test": "gulp" + } } From ca367e48578f6012689826bf794f5c231ec4cec2 Mon Sep 17 00:00:00 2001 From: pazams Date: Sat, 25 Jul 2015 23:19:21 +0300 Subject: [PATCH 0449/3047] Update README.md added postcss-scopify to plugin listings in README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d01460a20..e95506f86 100644 --- a/README.md +++ b/README.md @@ -356,6 +356,7 @@ See also plugins in modular minifier [`cssnano`]. to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. +* ['postcss-scopify'] adds a user input scope to each selector. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. @@ -442,6 +443,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide +['postcss-scopify']: https://github.com/pazams/postcss-scopify [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray From a30cf14860f8b4782f850e8fb4777ed241b5c32c Mon Sep 17 00:00:00 2001 From: pazams Date: Sat, 25 Jul 2015 23:22:29 +0300 Subject: [PATCH 0450/3047] Update README.md fixed scopify link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e95506f86..e910b30c9 100644 --- a/README.md +++ b/README.md @@ -356,7 +356,7 @@ See also plugins in modular minifier [`cssnano`]. to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. -* ['postcss-scopify'] adds a user input scope to each selector. +* [`postcss-scopify`] adds a user input scope to each selector. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. @@ -443,7 +443,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide -['postcss-scopify']: https://github.com/pazams/postcss-scopify +[`postcss-scopify`]: https://github.com/pazams/postcss-scopify [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray From d7b3c846316b5dfb476afc518d62b25f467de0a7 Mon Sep 17 00:00:00 2001 From: Sean King Date: Sun, 26 Jul 2015 14:01:26 +1000 Subject: [PATCH 0451/3047] Add postcss-responsive-type to README https://github.com/seaneking/postcss-responsive-type --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d01460a20..1f48ee73e 100644 --- a/README.md +++ b/README.md @@ -338,6 +338,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-position`] adds shorthand declarations for position attributes. * [`postcss-property-lookup`] allows referencing property values without a variable. +* [`postcss-responsive-type`] adds a `responsive` property to `font-size`, + for out-of-the-box responsive typography. * [`postcss-short`] adds and extends numerous shorthand properties. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. @@ -407,6 +409,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm [`postcss-local-constants`]: https://github.com/macropodhq/postcss-local-constants +[`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values From 6cfe740d5ceb895dd5b5b65d58cfe00e51b30a39 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 26 Jul 2015 08:15:52 +0300 Subject: [PATCH 0452/3047] Make one line description for all plugins --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dc8c6cd59..a28428d05 100644 --- a/README.md +++ b/README.md @@ -338,8 +338,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-position`] adds shorthand declarations for position attributes. * [`postcss-property-lookup`] allows referencing property values without a variable. -* [`postcss-responsive-type`] adds a `responsive` property to `font-size`, - for out-of-the-box responsive typography. +* [`postcss-responsive-type`] changes `font-size` depends on screen size. * [`postcss-short`] adds and extends numerous shorthand properties. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. @@ -358,7 +357,7 @@ See also plugins in modular minifier [`cssnano`]. to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-style-guide`] generates a style guide automatically. -* [`postcss-scopify`] adds a user input scope to each selector. +* [`postcss-scopify`] adds a user input scope to each selector. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. From 41c81dd4a125b5167dd2161b5b54548003de00fc Mon Sep 17 00:00:00 2001 From: Johnie Hjelm Date: Mon, 27 Jul 2015 21:31:20 +0200 Subject: [PATCH 0453/3047] Added postcss-crip --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a28428d05..30ef2af10 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. +* [`postcss-crip`] shorthand properties for Crips that are too lazy to write. [`postcss-pseudo-elements-content`]:https://github.com/omgovich/postcss-pseudo-elements-content [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets @@ -487,6 +488,7 @@ See also plugins in modular minifier [`cssnano`]. [`perfectionist`]: https://github.com/ben-eb/perfectionist [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-calc`]: https://github.com/postcss/postcss-calc +[`postcss-crip`]: https://github.com/johnie/postcss-crip [`postcss-each`]: https://github.com/outpunk/postcss-each [`postcss-epub`]: https://github.com/Rycochet/postcss-epub [`postcss-grid`]: https://github.com/andyjansson/postcss-grid From 6af441fb1341a39d1a27fd8b324079621083b4eb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Jul 2015 22:36:31 +0300 Subject: [PATCH 0454/3047] Fix postcss-crip category --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 30ef2af10..d7dc61d0f 100644 --- a/README.md +++ b/README.md @@ -329,6 +329,7 @@ See also plugins in modular minifier [`cssnano`]. in `border` property. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. +* [`postcss-crip`] shorthand properties for Crips that are too lazy to write. * [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. @@ -384,7 +385,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. -* [`postcss-crip`] shorthand properties for Crips that are too lazy to write. [`postcss-pseudo-elements-content`]:https://github.com/omgovich/postcss-pseudo-elements-content [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets From 41ae672e1bf1b2cfccd76d56c68afec669625a8c Mon Sep 17 00:00:00 2001 From: andyjansson Date: Tue, 28 Jul 2015 11:57:50 +0200 Subject: [PATCH 0455/3047] Add postcss-sassy-mixins to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d7dc61d0f..54e8708b7 100644 --- a/README.md +++ b/README.md @@ -255,6 +255,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-nested-props`] unwraps nested properties. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. +* [`postcss-sassy-mixins`] enables sass-like mixins. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’ `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. @@ -429,6 +430,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals +[`postcss-sassy-mixins`]: https://github.com/andyjansson/postcss-sassy-mixins [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer From 8f90d0171dcb4ee048db5bd4fd06521e3bb24fc4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Jul 2015 14:17:23 +0300 Subject: [PATCH 0456/3047] More clear postcss-sassy-mixin description --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 54e8708b7..99006fb46 100644 --- a/README.md +++ b/README.md @@ -246,7 +246,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-for`] adds `@for` loops. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. -* [`postcss-mixins`] enables mixins more powerful than Sass', +* [`postcss-mixins`] enables mixins more powerful than Sass’, defined within stylesheets or in JS. * [`postcss-media-variables`] adds support for `var()` and `calc()` in `@media` rules @@ -255,7 +255,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-nested-props`] unwraps nested properties. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. -* [`postcss-sassy-mixins`] enables sass-like mixins. +* [`postcss-sassy-mixins`] enables mixins with Sass keywords. * [`postcss-simple-extend`] supports extending of silent classes, like Sass’ `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. From 86934266afeb8853a3b4c849edad5419a0cfee6a Mon Sep 17 00:00:00 2001 From: Travis Palmer Date: Tue, 28 Jul 2015 09:31:13 -0400 Subject: [PATCH 0457/3047] Add postcss-extend to readme, enforce link order. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 99006fb46..4f99be824 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. * [`postcss-custom-selectors`] adds custom aliases for selectors. +* [`postcss-extend`] supports spec-approximate `@extend` for rules and placeholders, recursively. * [`postcss-font-variant`] transpiles human-readable `font-variant` to more widely supported CSS. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly @@ -256,8 +257,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-sassy-mixins`] enables mixins with Sass keywords. -* [`postcss-simple-extend`] supports extending of silent classes, - like Sass’ `@extend`. +* [`postcss-simple-extend`] lightweight extending of silent classes, like Sass’ `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`postcss-strip-units`] strips units off of property values. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit @@ -448,7 +448,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide -[`postcss-scopify`]: https://github.com/pazams/postcss-scopify [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray @@ -473,9 +472,11 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem +[`postcss-scopify`]: https://github.com/pazams/postcss-scopify [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-border`]: https://github.com/andrepolischuk/postcss-border +[`postcss-extend`]: https://github.com/travco/postcss-extend [`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-mixins`]: https://github.com/postcss/postcss-mixins From ff07604e752a0f14a4e84b76a32bff2471bd6c8d Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Tue, 28 Jul 2015 08:54:27 -0500 Subject: [PATCH 0458/3047] Add postcss-all-link-colors to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 99006fb46..e4a5da72d 100644 --- a/README.md +++ b/README.md @@ -326,6 +326,7 @@ See also plugins in modular minifier [`cssnano`]. ### Shortcuts * [`postcss-alias`] creates shorter aliases for properties. +* [`postcss-all-link-colors`] insert colors for link-related pseudo-classes. * [`postcss-border`] adds shorthand for width and color of all borders in `border` property. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` @@ -404,6 +405,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter +[`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property [`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset From 15830cb459a766dd958d3b782b7bc5fc0349e87a Mon Sep 17 00:00:00 2001 From: John Otander Date: Tue, 28 Jul 2015 12:57:25 -0600 Subject: [PATCH 0459/3047] Add immutable-css tool to analysis section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e15481411..197afe00a 100644 --- a/README.md +++ b/README.md @@ -371,6 +371,7 @@ See also plugins in modular minifier [`cssnano`]. * [`css2modernizr`] creates a Modernizr config file that requires only the tests that your CSS uses. * [`doiuse`] lints CSS for browser support, using data from Can I Use. +* [`immutable-css`] lints CSS for class mutations. * [`list-selectors`] lists and categorizes the selectors used in your CSS, for code review. @@ -491,6 +492,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-short`]: https://github.com/jonathantneal/postcss-short [`postcss-alias`]: https://github.com/seaneking/postcss-alias [`perfectionist`]: https://github.com/ben-eb/perfectionist +[`immutable-css`]: https://github.com/johnotander/immutable-css [`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x [`postcss-calc`]: https://github.com/postcss/postcss-calc [`postcss-crip`]: https://github.com/johnie/postcss-crip From b5d26005a607b2545238222c96473b8a97ce31e9 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Wed, 29 Jul 2015 16:28:17 -0500 Subject: [PATCH 0460/3047] Add postcss-circle to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 197afe00a..7750057d3 100644 --- a/README.md +++ b/README.md @@ -329,6 +329,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-all-link-colors`] insert colors for link-related pseudo-classes. * [`postcss-border`] adds shorthand for width and color of all borders in `border` property. +* [`postcss-circle`] inserts a circle with color. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. * [`postcss-crip`] shorthand properties for Crips that are too lazy to write. @@ -479,6 +480,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-border`]: https://github.com/andrepolischuk/postcss-border +[`postcss-circle`]: https://github.com/jedmao/postcss-circle [`postcss-extend`]: https://github.com/travco/postcss-extend [`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-import`]: https://github.com/postcss/postcss-import From d65c863f0878b3b222ce45c5930efcb820ea1a20 Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 30 Jul 2015 14:52:13 +0200 Subject: [PATCH 0461/3047] Mention postcss.parts in README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7750057d3..45d30e53d 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,8 @@ Read the [PostCSS API] for more details about the JS API. ## Plugins +Go to [postcss.parts](http://postcss.parts) for a searchable catalog of the plugins mentioned below! + ### Control There are two ways to make PostCSS magic more explicit. From b012612bee67c29937f1e9d132f4103efa68cfdc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 30 Jul 2015 15:58:05 +0300 Subject: [PATCH 0462/3047] Clean up docs --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 45d30e53d..2c552fa2c 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,9 @@ Read the [PostCSS API] for more details about the JS API. ## Plugins -Go to [postcss.parts](http://postcss.parts) for a searchable catalog of the plugins mentioned below! +Go to [postcss.parts] for a searchable catalog of the plugins mentioned below. + +[postcss.parts]: http://postcss.parts ### Control From 39ba097d557bf2f9cfd29e906634210b6372fd06 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Thu, 30 Jul 2015 17:22:23 -0500 Subject: [PATCH 0463/3047] Add postcss-center to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2c552fa2c..18416fc6f 100644 --- a/README.md +++ b/README.md @@ -333,6 +333,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-all-link-colors`] insert colors for link-related pseudo-classes. * [`postcss-border`] adds shorthand for width and color of all borders in `border` property. +* [`postcss-center`] centers elements. * [`postcss-circle`] inserts a circle with color. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. @@ -484,6 +485,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-assets`]: https://github.com/borodean/postcss-assets [`postcss-border`]: https://github.com/andrepolischuk/postcss-border +[`postcss-center`]: https://github.com/jedmao/postcss-center [`postcss-circle`]: https://github.com/jedmao/postcss-circle [`postcss-extend`]: https://github.com/travco/postcss-extend [`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid From b9694fcb71c6a071291855dc9e113961755ecf7d Mon Sep 17 00:00:00 2001 From: andrepolischuk Date: Fri, 31 Jul 2015 16:57:30 +0300 Subject: [PATCH 0464/3047] Add postcss-color-short to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 18416fc6f..a66f20933 100644 --- a/README.md +++ b/README.md @@ -337,6 +337,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-circle`] inserts a circle with color. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. +* [`postcss-color-short`] adds shorthand color declarations. * [`postcss-crip`] shorthand properties for Crips that are too lazy to write. * [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net @@ -451,6 +452,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale +[`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules From b8c7eb361065fa0bb54943051393e31cf22559ad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 31 Jul 2015 17:28:45 +0300 Subject: [PATCH 0465/3047] Fix plugins categorization --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a66f20933..6b50bfef4 100644 --- a/README.md +++ b/README.md @@ -283,6 +283,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-color-palette`] transforms CSS 2 color keywords to a custom palette. * [`postcss-color-pantone`] transforms pantone color to RGB. * [`postcss-color-scale`] adds a color scale `cs()` function. +* [`postcss-color-short`] adds shorthand color declarations. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. @@ -337,7 +338,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-circle`] inserts a circle with color. * [`postcss-clearfix`] adds `fix` and `fix-legacy` properties to the `clear` declaration. -* [`postcss-color-short`] adds shorthand color declarations. * [`postcss-crip`] shorthand properties for Crips that are too lazy to write. * [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net From 75983edbb63a84b84b0fa64013075f98c32ae507 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 1 Aug 2015 18:15:35 +0300 Subject: [PATCH 0466/3047] Fix holy 80 columns line --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6b50bfef4..90fd63859 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,8 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`cssnano`] contains plugins that optimize CSS size for use in production. * [`cssnext`] contains plugins that allow you to use future CSS features today. * [`precss`] contains plugins that allow you to use Sass-like CSS. -* [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. +* [`rucksack`] contains plugins to speed up CSS development + with new features and shortcuts. * [`stylelint`] contains plugins that lint your stylesheets. [`stylelint`]: https://github.com/stylelint/stylelint @@ -214,7 +215,8 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-custom-properties`] supports variables, using syntax from the W3C Custom Properties. * [`postcss-custom-selectors`] adds custom aliases for selectors. -* [`postcss-extend`] supports spec-approximate `@extend` for rules and placeholders, recursively. +* [`postcss-extend`] supports spec-approximate `@extend` for rules + and placeholders, recursively. * [`postcss-font-variant`] transpiles human-readable `font-variant` to more widely supported CSS. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly @@ -261,7 +263,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-sassy-mixins`] enables mixins with Sass keywords. -* [`postcss-simple-extend`] lightweight extending of silent classes, like Sass’ `@extend`. +* [`postcss-simple-extend`] lightweight extending of silent classes, + like Sass’ `@extend`. * [`postcss-simple-vars`] supports for Sass-style variables. * [`postcss-strip-units`] strips units off of property values. * [`postcss-vertical-rhythm`] adds a vertical rhythm unit From 22b91a89dc6a43f697fe4ae5997dad329c278f1a Mon Sep 17 00:00:00 2001 From: John Otander Date: Sun, 2 Aug 2015 13:21:26 -0600 Subject: [PATCH 0467/3047] Add postcss-remove-prefixes plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 90fd63859..48068337f 100644 --- a/README.md +++ b/README.md @@ -369,6 +369,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pseudo-elements-content`] automatically adds `content: ""` to `:before` and `:after`. * [`postcss-pxtorem`] converts pixel units to `rem`. +* [`postcss-remove-prefixes`] removes vendor prefixes. * [`postcss-style-guide`] generates a style guide automatically. * [`postcss-scopify`] adds a user input scope to each selector. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. @@ -424,6 +425,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm [`postcss-local-constants`]: https://github.com/macropodhq/postcss-local-constants +[`postcss-remove-prefixes`]: https://github.com/johnotander/postcss-remove-prefixes [`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient From 8b4eec7877666b112727cd221b3b90cbc5035c68 Mon Sep 17 00:00:00 2001 From: alanev Date: Tue, 4 Aug 2015 10:23:10 +0300 Subject: [PATCH 0468/3047] Added a tyny plugin It adds a little more logic for css3 filters. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 48068337f..927e7d882 100644 --- a/README.md +++ b/README.md @@ -345,6 +345,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-default-unit`] adds default unit to numeric CSS properties. * [`postcss-easings`] replaces easing names from easings.net with `cubic-bezier()` functions. +* [`postcss-filter`] adds shorthand for black and white filter. * [`postcss-focus`] adds `:focus` selector to every `:hover`. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. @@ -496,6 +497,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-circle`]: https://github.com/jedmao/postcss-circle [`postcss-extend`]: https://github.com/travco/postcss-extend [`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid +[`postcss-filter`]: https://github.com/alanev/postcss-filter [`postcss-import`]: https://github.com/postcss/postcss-import [`postcss-mixins`]: https://github.com/postcss/postcss-mixins [`postcss-nested`]: https://github.com/postcss/postcss-nested From 8057d6ff78a5c5ddffb9be9a77250ef1a41e08a2 Mon Sep 17 00:00:00 2001 From: andyjansson Date: Tue, 4 Aug 2015 16:46:58 +0200 Subject: [PATCH 0469/3047] Add postcss-functions to README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 927e7d882..cf3b4286e 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. +* [`postcss-functions`] enables exposure of JavaScript functions. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. * [`postcss-mixins`] enables mixins more powerful than Sass’, @@ -471,6 +472,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack +[`postcss-functions`]: https://github.com/andyjansson/postcss-functions [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix From 02dc4509875130d31ea12b098eefa00ba9c46b36 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Tue, 4 Aug 2015 12:29:20 -0400 Subject: [PATCH 0470/3047] Add Font Magician --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cf3b4286e..db21e9ea0 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,7 @@ See also plugins in modular minifier [`cssnano`]. with one declaration. * [`postcss-transform-shortcut`] allows shorthand transform properties in CSS. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. +* [`font-magician`] generates all the `@font-face` rules needed in CSS. ### Others @@ -508,6 +509,7 @@ See also plugins in modular minifier [`cssnano`]. [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`postcss-focus`]: https://github.com/postcss/postcss-focus [`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`font-magician`]: https://github.com/jonathantneal/postcss-font-magician [`postcss-short`]: https://github.com/jonathantneal/postcss-short [`postcss-alias`]: https://github.com/seaneking/postcss-alias [`perfectionist`]: https://github.com/ben-eb/perfectionist From 1388f636128e08d526aba64a64c802831b035d2c Mon Sep 17 00:00:00 2001 From: Sebastiaan Deckers Date: Wed, 5 Aug 2015 01:36:18 +0800 Subject: [PATCH 0471/3047] PostCSS plugin for Imperial and US customary units --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index db21e9ea0..3ec542fc2 100644 --- a/README.md +++ b/README.md @@ -400,6 +400,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. +* [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. @@ -481,6 +482,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-imperial`]: https://github.com/cbas/postcss-imperial [`postcss-position`]: https://github.com/seaneking/postcss-position [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz From c2dbd043d090ddd2fb5e4eec736ef472d531c1e2 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Tue, 4 Aug 2015 22:38:15 -0500 Subject: [PATCH 0472/3047] Add postcss-triangle to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3ec542fc2..e37389d33 100644 --- a/README.md +++ b/README.md @@ -358,6 +358,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-transform-shortcut`] allows shorthand transform properties in CSS. +* [`postcss-triangle`] creates a triangle. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. * [`font-magician`] generates all the `@font-face` rules needed in CSS. @@ -485,6 +486,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-imperial`]: https://github.com/cbas/postcss-imperial [`postcss-position`]: https://github.com/seaneking/postcss-position [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing +[`postcss-triangle`]: https://github.com/jedmao/postcss-triangle [`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz [`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters [`postcss-fontpath`]: https://github.com/seaneking/postcss-fontpath From 38aed30795f27c3a2af18ff1f53b3d7ef87b11d9 Mon Sep 17 00:00:00 2001 From: morishitter Date: Wed, 5 Aug 2015 16:35:29 +0900 Subject: [PATCH 0473/3047] Add CSSfmt to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e37389d33..b320bf2e4 100644 --- a/README.md +++ b/README.md @@ -325,6 +325,7 @@ See also [`precss`] plugins pack to add them by one line of code. `@charset` rule at the top of file. * [`postcss-zindex`] rebases positive `z-index` values. * [`css-byebye`] removes the CSS rules that you don’t want. +* [`cssfmt`] formats CSS source code automatically inspired by Gofmt. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`stylehacks`] removes CSS hacks based on browser support. @@ -537,6 +538,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-svg`]: https://github.com/Pavliko/postcss-svg [`postcss-url`]: https://github.com/postcss/postcss-url [`css-byebye`]: https://github.com/AoDev/css-byebye +[`cssfmt`]: https://github.com/morishitter/cssfmt [`stylehacks`]: https://github.com/ben-eb/stylehacks [`cssgrace`]: https://github.com/cssdream/cssgrace [`csstyle`]: https://github.com/geddski/csstyle From 89d2da669826780d082b9b8347cb28a8e5a0bcf6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 5 Aug 2015 10:48:53 +0300 Subject: [PATCH 0474/3047] Fix plugins categories --- .yaspellerrc | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 279ca18d2..048c679af 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -20,6 +20,7 @@ "postcss", "Shopify", "Travis", + "Gofmt", "CI", "W3C", "WebP", diff --git a/README.md b/README.md index b320bf2e4..45172675c 100644 --- a/README.md +++ b/README.md @@ -325,7 +325,6 @@ See also [`precss`] plugins pack to add them by one line of code. `@charset` rule at the top of file. * [`postcss-zindex`] rebases positive `z-index` values. * [`css-byebye`] removes the CSS rules that you don’t want. -* [`cssfmt`] formats CSS source code automatically inspired by Gofmt. * [`css-mqpacker`] joins matching CSS media queries into a single statement. * [`stylehacks`] removes CSS hacks based on browser support. @@ -377,6 +376,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-remove-prefixes`] removes vendor prefixes. * [`postcss-style-guide`] generates a style guide automatically. * [`postcss-scopify`] adds a user input scope to each selector. +* [`cssfmt`] formats CSS source code automatically inspired by Gofmt. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. From 35799014e3069036c4733e19ba3789c379855efe Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 5 Aug 2015 10:57:40 +0300 Subject: [PATCH 0475/3047] Fix tests on io.js 3 --- test/map.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/map.js b/test/map.js index 309d04db9..238940513 100644 --- a/test/map.js +++ b/test/map.js @@ -173,7 +173,7 @@ describe('source maps', () => { map: { inline: false } }); - let base64 = new Buffer(separated.map).toString('base64'); + let base64 = new Buffer(separated.map.toString()).toString('base64'); expect(inline.css.endsWith(base64 + ' */')).to.be.true; }); From 255bfecb5dabc4d9f03d38a16bcf4b1269897723 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Fri, 7 Aug 2015 06:20:43 -0500 Subject: [PATCH 0476/3047] Add postcss-increase-specificity to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 45172675c..65e6022ce 100644 --- a/README.md +++ b/README.md @@ -368,6 +368,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. +* [`postcss-increase-specificity`] increases the specificity of your selectors. * [`postcss-mq-keyframes`] moves any animation keyframes in media queries to the end of the file. * [`postcss-pseudo-elements-content`] automatically adds `content: ""` @@ -410,6 +411,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets +[`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates From 7c0d8ad7885399092c44727fbffc208116e5fb54 Mon Sep 17 00:00:00 2001 From: Dmitry Semigradsky Date: Fri, 7 Aug 2015 17:56:32 +0300 Subject: [PATCH 0477/3047] Add `postcss-russian-units` to plugin list `postcss-russian-units`: https://github.com/Semigradsky/postcss-russian-units --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 65e6022ce..876d96694 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. +* [`postcss-russian-units`] adds CSS support for russian units of length. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. @@ -449,6 +450,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix From 26b161d110fe325709a3f2ce85bb2f56832b8028 Mon Sep 17 00:00:00 2001 From: Ryan Tsao Date: Mon, 10 Aug 2015 21:47:01 -0700 Subject: [PATCH 0478/3047] Add postcss-match to plugins list --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 876d96694..b8290bf86 100644 --- a/README.md +++ b/README.md @@ -244,6 +244,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. ### Language Extensions +[Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html + * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-css-variables`] supports variables for selectors, and at-rules @@ -254,6 +256,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-functions`] enables exposure of JavaScript functions. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. +* [`postcss-match`] adds `@match` for [Rust-style pattern matching]. * [`postcss-mixins`] enables mixins more powerful than Sass’, defined within stylesheets or in JS. * [`postcss-media-variables`] adds support for `var()` and `calc()` @@ -519,6 +522,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-focus`]: https://github.com/postcss/postcss-focus [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`font-magician`]: https://github.com/jonathantneal/postcss-font-magician +[`postcss-match`]: https://github.com/rtsao/postcss-match [`postcss-short`]: https://github.com/jonathantneal/postcss-short [`postcss-alias`]: https://github.com/seaneking/postcss-alias [`perfectionist`]: https://github.com/ben-eb/perfectionist From cc2447f1c4b020011774b1cd583dd8ebb4dde0ce Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 14:33:44 +0300 Subject: [PATCH 0479/3047] Fix Markdown link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b8290bf86..b4e2ea4f9 100644 --- a/README.md +++ b/README.md @@ -244,8 +244,6 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. ### Language Extensions -[Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html - * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-css-variables`] supports variables for selectors, and at-rules @@ -277,6 +275,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. See also [`precss`] plugins pack to add them by one line of code. +[Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html + ### Colors * [`postcss-brand-colors`] inserts company brand colors From efc7cb739bbc5ecd1f2d198a05a9b4d91ac80c89 Mon Sep 17 00:00:00 2001 From: Sean King Date: Sat, 15 Aug 2015 17:19:32 +1000 Subject: [PATCH 0480/3047] add postcss-input-style to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b4e2ea4f9..042dd71d0 100644 --- a/README.md +++ b/README.md @@ -353,6 +353,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-focus`] adds `:focus` selector to every `:hover`. * [`postcss-generate-preset`] allows quick generation of rules. Useful for creating repetitive utilities. +* [`postcss-input-style`] adds new pseudo-elements for cross-browser styling of inputs. * [`postcss-position`] adds shorthand declarations for position attributes. * [`postcss-property-lookup`] allows referencing property values without a variable. @@ -478,6 +479,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide [`postcss-will-change`]: https://github.com/postcss/postcss-will-change +[`postcss-input-style`]: https://github.com/seaneking/postcss-input-style [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind From 7e3da3c1b3cc5977716fe9dadd440e5e1fc119f2 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Tue, 23 Jun 2015 13:52:48 -0400 Subject: [PATCH 0481/3047] Support multiple nodes on DOM4 methods Support multiple nodes on append, prepend, and replaceWith --- lib/at-rule.js | 8 ++++---- lib/container.js | 33 +++++++++++++++++++++++++-------- lib/node.js | 12 +++++++++--- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/lib/at-rule.js b/lib/at-rule.js index 760bb5684..5971d5c01 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -27,14 +27,14 @@ export default class AtRule extends Container { } } - append(child) { + append() { if ( !this.nodes ) this.nodes = []; - return super.append(child); + return super.append.apply(this, arguments); } - prepend(child) { + prepend() { if ( !this.nodes ) this.nodes = []; - return super.prepend(child); + return super.prepend.apply(this, arguments); } insertBefore(exist, add) { diff --git a/lib/container.js b/lib/container.js index a3b1293ee..040bbdbb7 100644 --- a/lib/container.js +++ b/lib/container.js @@ -150,18 +150,35 @@ export default class Container extends Node { }); } - append(child) { - let nodes = this.normalize(child, this.last); - for ( let node of nodes ) this.nodes.push(node); + append() { + for (let index in arguments) { + let nodes = this.normalize(arguments[index], this.last); + + for (let node of nodes) { + this.nodes.push(node); + } + } + return this; } - prepend(child) { - let nodes = this.normalize(child, this.first, 'prepend').reverse(); - for ( let node of nodes ) this.nodes.unshift(node); + prepend() { + let args = Array.prototype.reverse.call(arguments); - for ( let id in this.indexes ) { - this.indexes[id] = this.indexes[id] + nodes.length; + for (let index in args) { + let nodes = this.normalize( + arguments[index], + this.first, + 'prepend' + ).reverse(); + + for (let node of nodes) { + this.nodes.unshift(node); + } + + for ( let id in this.indexes ) { + this.indexes[id] = this.indexes[id] + nodes.length; + } } return this; diff --git a/lib/node.js b/lib/node.js index 45e93ab95..7903ebd4a 100644 --- a/lib/node.js +++ b/lib/node.js @@ -95,9 +95,15 @@ export default class { return cloned; } - replaceWith(node) { - this.parent.insertBefore(this, node); - this.removeSelf(); + replaceWith() { + if (this.parent) { + for (let index in arguments) { + this.parent.insertBefore(this, arguments[index]); + } + + this.removeSelf(); + } + return this; } From 487b41036705d1541c21543583525d9649598e73 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Tue, 23 Jun 2015 13:53:08 -0400 Subject: [PATCH 0482/3047] Add multiple node tests for DOM4 methods --- test/container.js | 14 ++++++++++++++ test/root.js | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/test/container.js b/test/container.js index 6c2382eb0..a4ca22595 100644 --- a/test/container.js +++ b/test/container.js @@ -408,6 +408,13 @@ describe('Container', () => { expect(rule.last.before).to.eql(' '); }); + it('appends multiple children', () => { + let rule = parse('a { a: 1; b: 2 }').first; + rule.append({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }); + expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3; d: 4 }'); + expect(rule.last.before).to.eql(' '); + }); + it('has declaration shortcut', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }); @@ -477,6 +484,13 @@ describe('Container', () => { expect(rule.first.before).to.eql(' '); }); + it('prepends multiple children', () => { + let rule = parse('a { a: 1; b: 2 }').first; + rule.prepend({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }); + expect(rule.toString()).to.eql('a { c: 3; d: 4; a: 1; b: 2 }'); + expect(rule.first.before).to.eql(' '); + }); + it('receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }); diff --git a/test/root.js b/test/root.js index 4fb0e87ef..806a1ce80 100644 --- a/test/root.js +++ b/test/root.js @@ -29,6 +29,12 @@ describe('Root', () => { expect(css.toString()).to.eql('em {} a {} b {}'); }); + it('fixes spaces on multiple inserts before first', () => { + let css = parse('a {} b {}'); + css.prepend({ selector: 'em' }, { selector: 'strong' }); + expect(css.toString()).to.eql('em {} strong {} a {} b {}'); + }); + it('uses default spaces on only first', () => { let css = parse('a {}'); css.prepend({ selector: 'em' }); @@ -59,6 +65,13 @@ describe('Root', () => { expect(a.append(b).toString()).to.eql('a{}a{}b{}'); }); + it('saves compressed style with multiple nodes', () => { + let a = parse('a{}a{}'); + let b = parse('b {\n}\n'); + let c = parse('c {\n}\n'); + expect(a.append(b, c).toString()).to.eql('a{}a{}b{}c{}'); + }); + }); describe('insertAfter()', () => { From da171de1422e6c992efe08bb2285844cc31a5d3d Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Tue, 23 Jun 2015 13:53:21 -0400 Subject: [PATCH 0483/3047] Update API documentation for DOM4 methods --- docs/api.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/api.md b/docs/api.md index 862a75339..7716c42f2 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1036,9 +1036,9 @@ if ( decl.prop.match(/^-webkit-/) ) { } ``` -### `node.replaceWith(otherNode)` +### `node.replaceWith(otherNodes...)` -Inserts another node before the current node, and removes the current node. +Inserts nodes before the current node, and removes the current node. ```js if ( atrule.name == 'mixin' ) { @@ -1046,10 +1046,6 @@ if ( atrule.name == 'mixin' ) { } ``` -Arguments: - -* `otherNode: (Node)`: other node to replace current one. - ### `node.clone(props)` Returns a clone of the node. @@ -1412,15 +1408,21 @@ Arguments: [`String#replace`]: (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter) -### `container.prepend(node)` and `container.append(node)` +### `container.prepend(nodes...)` and `container.append(nodes...)` -Insert a new node to the start/end of the container. +Inserts new nodes to the start/end of the container. ```js var decl = postcss.decl({ prop: 'color', value: 'black' }); rule.append(decl); ``` +```js +var decl1 = postcss.decl({ prop: 'color', value: 'black' }); +var decl2 = postcss.decl({ prop: 'background-color', value: 'white' }); +rule.prepend(decl1, decl2); +``` + Arguments: * `node (Node|object|string)`: new node. From cddbf99b11380dca7b702222cc963e2ab1f2ca08 Mon Sep 17 00:00:00 2001 From: David Clark Date: Sun, 28 Jun 2015 17:20:29 -0700 Subject: [PATCH 0484/3047] PoC for positionAt --- lib/node.js | 15 +++++++++++++++ test/node.js | 23 +++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/lib/node.js b/lib/node.js index 7903ebd4a..5126c289d 100644 --- a/lib/node.js +++ b/lib/node.js @@ -347,4 +347,19 @@ export default class { return value; } } + + positionAt(indexRelativeToBefore) { + let index = indexRelativeToBefore - this.before.length; + let start = this.source.start; + let indexLine = start.line; + let startToIndex = this.toString().substr(this.before.length, index); + for ( let i = 0, l = startToIndex.length; i < l; i++ ) { + if (startToIndex[i] === '\n') indexLine += 1; + } + let startColumn = start.line === indexLine ? start.column : 1; + let lastNewlineToIndex = startToIndex + .slice(startToIndex.lastIndexOf('\n') + 1); + let indexColumn = startColumn + lastNewlineToIndex.length; + return { line: indexLine, column: indexColumn }; + } } diff --git a/test/node.js b/test/node.js index 248db0e96..c4e2746d4 100644 --- a/test/node.js +++ b/test/node.js @@ -441,4 +441,27 @@ describe('Node', () => { }); + describe.only('positionAt()', () => { + it('returns correct position when node starts mid-line', () => { + let css = parse('a { one: 1; }'); + let one = css.first.first; + expect(one.positionAt(4).line).to.equal(1); + expect(one.positionAt(4).column).to.equal(8); + }); + + it('returns correct position when node.before contains newline', () => { + let css = parse('a {\n one: 1;\n}'); + let one = css.first.first; + expect(one.positionAt(6).line).to.equal(2); + expect(one.positionAt(6).column).to.equal(6); + }); + + it('returns correct position when node contains newlines', () => { + let css = parse('a {\n\tmargin: 1px,\n\t\t2px,\n\t\t3px;\n}'); + let one = css.first.first; + expect(one.positionAt(25).line).to.equal(4); + expect(one.positionAt(25).column).to.equal(4); + }); + }); + }); From fefdf34c48e013973011e5559065edf661f2c2b5 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Thu, 9 Jul 2015 23:55:37 -0400 Subject: [PATCH 0485/3047] Support selector filter for eachRule --- lib/container.js | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/lib/container.js b/lib/container.js index 040bbdbb7..184b54236 100644 --- a/lib/container.js +++ b/lib/container.js @@ -106,13 +106,31 @@ export default class Container extends Node { } } - eachRule(callback) { - return this.eachInside( (child, i) => { - if ( child.type === 'rule' ) { - let result = callback(child, i); - if ( result === false ) return result; - } - }); + eachRule(selector, callback) { + if ( !callback ) { + callback = selector; + + return this.eachInside( (child, i) => { + if ( child.type === 'rule' ) { + let result = callback(child, i); + if ( result === false ) return result; + } + }); + } else if ( selector instanceof RegExp ) { + return this.eachInside( (child, i) => { + if ( child.type === 'rule' && selector.test(child.selector) ) { + let result = callback(child, i); + if ( result === false ) return result; + } + }); + } else { + return this.eachInside( (child, i) => { + if ( child.type === 'rule' && child.selector === selector ) { + let result = callback(child, i); + if ( result === false ) return result; + } + }); + } } eachAtRule(name, callback) { From e1f86a169c443209b80a8b3e4aca4cd8c6cc3fb9 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Thu, 9 Jul 2015 23:57:00 -0400 Subject: [PATCH 0486/3047] Update API.md for selector filter for eachRule --- docs/api.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/api.md b/docs/api.md index 7716c42f2..709f184fb 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1337,7 +1337,7 @@ root.eachAtRule('charset', function (rule) { Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. -### `container.eachRule(callback)` +### `container.eachRule([selectorFilter,] callback)` Recursively iterates through all rule nodes within the container, calling `callback` for each. @@ -1352,8 +1352,13 @@ console.log('You CSS uses ' + selectors.length + ' selectors'); Arguments: +* `selectorFilter: (string|RegExp) optional`: string or regular expression + to filter rules by selector. * `callback (function)`: iterator, that will receive node itself and an index. +If you pass a `selectorFilter`, only those rules whose selector matches +`selectorFilter` will be iterated over. + Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. From 2a36aae2b6bfe91704248472cf777cc7cb2b40aa Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Fri, 10 Jul 2015 17:37:28 -0400 Subject: [PATCH 0487/3047] Use ES6 conventions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `…thing` - `for (thing of things)` --- docs/api.md | 4 ++-- lib/at-rule.js | 8 ++++---- lib/container.js | 14 +++++++------- lib/node.js | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/api.md b/docs/api.md index 709f184fb..7029b31f6 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1036,7 +1036,7 @@ if ( decl.prop.match(/^-webkit-/) ) { } ``` -### `node.replaceWith(otherNodes...)` +### `node.replaceWith(...otherNodes)` Inserts nodes before the current node, and removes the current node. @@ -1413,7 +1413,7 @@ Arguments: [`String#replace`]: (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter) -### `container.prepend(nodes...)` and `container.append(nodes...)` +### `container.prepend(...nodes)` and `container.append(...nodes)` Inserts new nodes to the start/end of the container. diff --git a/lib/at-rule.js b/lib/at-rule.js index 5971d5c01..6d0b1f43e 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -27,14 +27,14 @@ export default class AtRule extends Container { } } - append() { + append(...children) { if ( !this.nodes ) this.nodes = []; - return super.append.apply(this, arguments); + return super.append(...children); } - prepend() { + prepend(...children) { if ( !this.nodes ) this.nodes = []; - return super.prepend.apply(this, arguments); + return super.prepend(...children); } insertBefore(exist, add) { diff --git a/lib/container.js b/lib/container.js index 184b54236..7b343966e 100644 --- a/lib/container.js +++ b/lib/container.js @@ -168,9 +168,9 @@ export default class Container extends Node { }); } - append() { - for (let index in arguments) { - let nodes = this.normalize(arguments[index], this.last); + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last); for (let node of nodes) { this.nodes.push(node); @@ -180,12 +180,12 @@ export default class Container extends Node { return this; } - prepend() { - let args = Array.prototype.reverse.call(arguments); + prepend(...children) { + children = children.reverse(); - for (let index in args) { + for (let child of children) { let nodes = this.normalize( - arguments[index], + child, this.first, 'prepend' ).reverse(); diff --git a/lib/node.js b/lib/node.js index 5126c289d..9e38d6331 100644 --- a/lib/node.js +++ b/lib/node.js @@ -95,10 +95,10 @@ export default class { return cloned; } - replaceWith() { + replaceWith(...nodes) { if (this.parent) { - for (let index in arguments) { - this.parent.insertBefore(this, arguments[index]); + for (let node of nodes) { + this.parent.insertBefore(this, node); } this.removeSelf(); From a6efbaf3451a56f1600cf3fe9b50c76e1b76f5b5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 23 Jun 2015 23:13:45 -0400 Subject: [PATCH 0488/3047] Move stringifing to separated file --- lib/at-rule.js | 21 --------- lib/comment.js | 8 ---- lib/container.js | 34 -------------- lib/declaration.js | 15 ------- lib/map-generator.js | 4 +- lib/node.js | 4 +- lib/root.js | 5 --- lib/rule.js | 3 -- lib/stringifier.js | 105 +++++++++++++++++++++++++++++++++++++++++++ test/node.js | 22 --------- test/root.js | 16 ------- test/stringifier.js | 47 +++++++++++++++++++ 12 files changed, 158 insertions(+), 126 deletions(-) create mode 100644 lib/stringifier.js create mode 100644 test/stringifier.js diff --git a/lib/at-rule.js b/lib/at-rule.js index 6d0b1f43e..fed40971a 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -6,27 +6,6 @@ export default class AtRule extends Container { this.type = 'atrule'; } - stringify(builder, semicolon) { - let name = '@' + this.name; - let params = this.params ? this.stringifyRaw('params') : ''; - - if ( typeof this.afterName !== 'undefined' ) { - name += this.afterName; - } else if ( params ) { - name += ' '; - } - - if ( this.nodes ) { - this.stringifyBlock(builder, name + params); - - } else { - let before = this.style('before'); - if ( before ) builder(before); - let end = (this.between || '') + (semicolon ? ';' : ''); - builder(name + params + end, this); - } - } - append(...children) { if ( !this.nodes ) this.nodes = []; return super.append(...children); diff --git a/lib/comment.js b/lib/comment.js index 5e0cb2820..be0a2799e 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -5,12 +5,4 @@ export default class Comment extends Node { super(defaults); this.type = 'comment'; } - - stringify(builder) { - let before = this.style('before'); - if ( before ) builder(before); - let left = this.style('left', 'commentLeft'); - let right = this.style('right', 'commentRight'); - builder('/*' + left + this.text + right + '*/', this); - } } diff --git a/lib/container.js b/lib/container.js index 7b343966e..dc46bcbd8 100644 --- a/lib/container.js +++ b/lib/container.js @@ -4,40 +4,6 @@ import Node from './node'; export default class Container extends Node { - stringifyContent(builder) { - if ( !this.nodes ) return; - - let i, last = this.nodes.length - 1; - while ( last > 0 ) { - if ( this.nodes[last].type !== 'comment' ) break; - last -= 1; - } - - let semicolon = this.style('semicolon'); - for ( i = 0; i < this.nodes.length; i++ ) { - this.nodes[i].stringify(builder, last !== i || semicolon); - } - } - - stringifyBlock(builder, start) { - let before = this.style('before'); - if ( before ) builder(before); - - let between = this.style('between', 'beforeOpen'); - builder(start + between + '{', this, 'start'); - - let after; - if ( this.nodes && this.nodes.length ) { - this.stringifyContent(builder); - after = this.style('after'); - } else { - after = this.style('after', 'emptyBody'); - } - - if ( after ) builder(after); - builder('}', this, 'end'); - } - push(child) { child.parent = this; this.nodes.push(child); diff --git a/lib/declaration.js b/lib/declaration.js index ec2c9cc1c..adaee7e1b 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -5,19 +5,4 @@ export default class Declaration extends Node { super(defaults); this.type = 'decl'; } - - stringify(builder, semicolon) { - let before = this.style('before'); - if ( before ) builder(before); - - let between = this.style('between', 'colon'); - let string = this.prop + between + this.stringifyRaw('value'); - - if ( this.important ) { - string += this._important || ' !important'; - } - - if ( semicolon ) string += ';'; - builder(string, this); - } } diff --git a/lib/map-generator.js b/lib/map-generator.js index 071756cf8..dbd437671 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -1,3 +1,5 @@ +import stringifier from './stringifier'; + import { Base64 } from 'js-base64'; import mozilla from 'source-map'; import path from 'path'; @@ -227,7 +229,7 @@ export default class { } }; - this.root.stringify(builder); + stringifier.stringify(builder, this.root); } generate() { diff --git a/lib/node.js b/lib/node.js index 9e38d6331..98dccf38b 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,4 +1,5 @@ import CssSyntaxError from './css-syntax-error'; +import stringifier from './stringifier'; const defaultStyle = { colon: ': ', @@ -71,7 +72,7 @@ export default class { toString() { let result = ''; let builder = (str) => result += str; - this.stringify(builder); + stringifier.stringify(builder, this); return result; } @@ -362,4 +363,5 @@ export default class { let indexColumn = startColumn + lastNewlineToIndex.length; return { line: indexLine, column: indexColumn }; } + } diff --git a/lib/root.js b/lib/root.js index bd820ba9e..ef20f9e7f 100644 --- a/lib/root.js +++ b/lib/root.js @@ -37,11 +37,6 @@ export default class Root extends Container { return nodes; } - stringify(builder) { - this.stringifyContent(builder); - if ( this.after ) builder(this.after); - } - toResult(opts = { }) { let LazyResult = require('./lazy-result'); let Processor = require('./processor'); diff --git a/lib/rule.js b/lib/rule.js index 8818e282b..367bc8266 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -16,7 +16,4 @@ export default class Rule extends Container { this.selector = values.join(', '); } - stringify(builder) { - this.stringifyBlock(builder, this.stringifyRaw('selector')); - } } diff --git a/lib/stringifier.js b/lib/stringifier.js new file mode 100644 index 000000000..9343c4d0e --- /dev/null +++ b/lib/stringifier.js @@ -0,0 +1,105 @@ +export default { + + stringify(builder, node, semicolon) { + this[node.type](builder, node, semicolon); + }, + + root(builder, node) { + this.body(builder, node); + if ( node.after ) builder(node.after); + }, + + comment(builder, node) { + let before = node.style('before'); + if ( before ) builder(before); + + let left = node.style('left', 'commentLeft'); + let right = node.style('right', 'commentRight'); + builder('/*' + left + node.text + right + '*/', node); + }, + + decl(builder, node, semicolon) { + let before = node.style('before'); + if ( before ) builder(before); + + let between = node.style('between', 'colon'); + let string = node.prop + between + this.raw(node, 'value'); + + if ( node.important ) { + string += node._important || ' !important'; + } + + if ( semicolon ) string += ';'; + builder(string, node); + }, + + rule(builder, node) { + this.block(builder, node, this.raw(node, 'selector')); + }, + + atrule(builder, node, semicolon) { + let name = '@' + node.name; + let params = node.params ? this.raw(node, 'params') : ''; + + if ( typeof node.afterName !== 'undefined' ) { + name += node.afterName; + } else if ( params ) { + name += ' '; + } + + if ( node.nodes ) { + this.block(builder, node, name + params); + + } else { + let before = node.style('before'); + if ( before ) builder(before); + let end = (node.between || '') + (semicolon ? ';' : ''); + builder(name + params + end, node); + } + }, + + body(builder, node) { + if ( !node.nodes ) return; + + let last = node.nodes.length - 1; + while ( last > 0 ) { + if ( node.nodes[last].type !== 'comment' ) break; + last -= 1; + } + + let semicolon = node.style('semicolon'); + for ( let i = 0; i < node.nodes.length; i++ ) { + this.stringify(builder, node.nodes[i], last !== i || semicolon); + } + }, + + block(builder, node, start) { + let before = node.style('before'); + if ( before ) builder(before); + + let between = node.style('between', 'beforeOpen'); + builder(start + between + '{', node, 'start'); + + let after; + if ( node.nodes && node.nodes.length ) { + this.body(builder, node); + after = node.style('after'); + } else { + after = node.style('after', 'emptyBody'); + } + + if ( after ) builder(after); + builder('}', node, 'end'); + }, + + raw(node, prop) { + let value = node[prop]; + let raw = node['_' + prop]; + if ( raw && raw.value === value ) { + return raw.raw; + } else { + return value; + } + } + +}; diff --git a/test/node.js b/test/node.js index c4e2746d4..395ee7c18 100644 --- a/test/node.js +++ b/test/node.js @@ -2,7 +2,6 @@ import CssSyntaxError from '../lib/css-syntax-error'; import Declaration from '../lib/declaration'; import AtRule from '../lib/at-rule'; import parse from '../lib/parse'; -import Node from '../lib/node'; import Root from '../lib/root'; import Rule from '../lib/rule'; @@ -420,27 +419,6 @@ describe('Node', () => { }); - describe('stringifyRaw()', () => { - it('creates trimmed/raw property', () => { - let b = new Node({ - one: 'trim', - _one: { value: 'trim', raw: 'raw' } - }); - expect(b.stringifyRaw('one')).to.eql('raw'); - - b.one = 'trim1'; - expect(b.stringifyRaw('one')).to.eql('trim1'); - }); - - it('works without magic', () => { - let b = new Node(); - b.one = '1'; - expect(b.one).to.eql('1'); - expect(b.stringifyRaw('one')).to.eql('1'); - }); - - }); - describe.only('positionAt()', () => { it('returns correct position when node starts mid-line', () => { let css = parse('a { one: 1; }'); diff --git a/test/root.js b/test/root.js index 806a1ce80..b9eeebb05 100644 --- a/test/root.js +++ b/test/root.js @@ -2,25 +2,9 @@ import Result from '../lib/result'; import parse from '../lib/parse'; import { expect } from 'chai'; -import path from 'path'; -import fs from 'fs'; describe('Root', () => { - describe('toString()', () => { - - fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { - if ( !name.match(/\.css$/) ) return; - - it('stringify ' + name, () => { - let file = path.join(__dirname, 'cases', name); - let css = fs.readFileSync(file).toString(); - expect(parse(css, { from: file }).toString()).to.eql(css); - }); - }); - - }); - describe('prepend()', () => { it('fixes spaces on insert before first', () => { diff --git a/test/stringifier.js b/test/stringifier.js new file mode 100644 index 000000000..b44ae5a8b --- /dev/null +++ b/test/stringifier.js @@ -0,0 +1,47 @@ +import stringifier from '../lib/stringifier'; +import Node from '../lib/node'; +import parse from '../lib/parse'; + +import { expect } from 'chai'; +import path from 'path'; +import fs from 'fs'; + +describe('stringifier', () => { + + describe('.stringify()', () => { + + fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { + if ( !name.match(/\.css$/) ) return; + + it('stringify ' + name, () => { + let file = path.join(__dirname, 'cases', name); + let css = fs.readFileSync(file).toString(); + let root = parse(css, { from: file }); + expect(root.toString()).to.eql(css); + }); + }); + + }); + + describe('.raw()', () => { + + it('creates trimmed/raw property', () => { + let b = new Node({ + one: 'trim', + _one: { value: 'trim', raw: 'raw' } + }); + expect(stringifier.raw(b, 'one')).to.eql('raw'); + + b.one = 'trim1'; + expect(stringifier.raw(b, 'one')).to.eql('trim1'); + }); + + it('works without magic', () => { + let b = new Node(); + b.one = '1'; + expect(b.one).to.eql('1'); + expect(stringifier.raw(b, 'one')).to.eql('1'); + }); + }); + +}); From c128e5b954602ca063344c5dc33cd912d1a0a08d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 23 Jun 2015 23:16:44 -0400 Subject: [PATCH 0489/3047] Clean up code styles --- lib/at-rule.js | 2 ++ lib/comment.js | 2 ++ lib/container.js | 1 + lib/css-syntax-error.js | 2 ++ lib/declaration.js | 2 ++ lib/input.js | 2 ++ lib/lazy-result.js | 1 + lib/map-generator.js | 2 ++ lib/node.js | 13 ++----------- lib/parser.js | 2 ++ lib/previous-map.js | 2 ++ lib/processor.js | 1 + lib/result.js | 1 + lib/root.js | 2 ++ lib/rule.js | 1 + lib/warning.js | 2 ++ 16 files changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/at-rule.js b/lib/at-rule.js index fed40971a..0351d034d 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -1,6 +1,7 @@ import Container from './container'; export default class AtRule extends Container { + constructor(defaults) { super(defaults); this.type = 'atrule'; @@ -25,4 +26,5 @@ export default class AtRule extends Container { if ( !this.nodes ) this.nodes = []; return super.insertAfter(exist, add); } + } diff --git a/lib/comment.js b/lib/comment.js index be0a2799e..a6a8e544e 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -1,8 +1,10 @@ import Node from './node'; export default class Comment extends Node { + constructor(defaults) { super(defaults); this.type = 'comment'; } + } diff --git a/lib/container.js b/lib/container.js index dc46bcbd8..e7bee4d4b 100644 --- a/lib/container.js +++ b/lib/container.js @@ -307,4 +307,5 @@ export default class Container extends Node { return processed; } + } diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index d3f3b5d21..c9a6a8189 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,6 +1,7 @@ import warnOnce from './warn-once'; export default class CssSyntaxError extends SyntaxError { + constructor(message, line, column, source, file, plugin) { super(message); this.reason = message; @@ -77,6 +78,7 @@ export default class CssSyntaxError extends SyntaxError { toString() { return this.name + ': ' + this.message + this.showSourceCode(); } + } CssSyntaxError.prototype.name = 'CssSyntaxError'; diff --git a/lib/declaration.js b/lib/declaration.js index adaee7e1b..9be5ef4cb 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -1,8 +1,10 @@ import Node from './node'; export default class Declaration extends Node { + constructor(defaults) { super(defaults); this.type = 'decl'; } + } diff --git a/lib/input.js b/lib/input.js index d10b7fedb..7e8a407d8 100644 --- a/lib/input.js +++ b/lib/input.js @@ -6,6 +6,7 @@ import path from 'path'; let sequence = 0; export default class Input { + constructor(css, opts = { }) { this.css = css.toString(); @@ -78,4 +79,5 @@ export default class Input { mapResolve(file) { return path.resolve(this.map.consumer().sourceRoot || '.', file); } + } diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 156e97136..30cee9003 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -11,6 +11,7 @@ function isPromise(obj) { } export default class LazyResult { + constructor(processor, css, opts) { this.stringified = false; this.processed = false; diff --git a/lib/map-generator.js b/lib/map-generator.js index dbd437671..176f9ec87 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -5,6 +5,7 @@ import mozilla from 'source-map'; import path from 'path'; export default class { + constructor(root, opts) { this.root = root; this.opts = opts; @@ -241,4 +242,5 @@ export default class { return [this.root.toString()]; } } + } diff --git a/lib/node.js b/lib/node.js index 98dccf38b..ae69d30c7 100644 --- a/lib/node.js +++ b/lib/node.js @@ -39,7 +39,8 @@ let cloneNode = function (obj, parent) { return cloned; }; -export default class { +export default class Node { + constructor(defaults = { }) { for ( let name in defaults ) { this[name] = defaults[name]; @@ -339,16 +340,6 @@ export default class { } } - stringifyRaw(prop) { - let value = this[prop]; - let raw = this['_' + prop]; - if ( raw && raw.value === value ) { - return raw.raw; - } else { - return value; - } - } - positionAt(indexRelativeToBefore) { let index = indexRelativeToBefore - this.before.length; let start = this.source.start; diff --git a/lib/parser.js b/lib/parser.js index 45fe97849..f7c5484ff 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -6,6 +6,7 @@ import Root from './root'; import Rule from './rule'; export default class Parser { + constructor(input) { this.input = input; @@ -478,4 +479,5 @@ export default class Parser { tokens.splice(from, tokens.length - from); return result; } + } diff --git a/lib/previous-map.js b/lib/previous-map.js index cef919b65..ebbdf4d8d 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -4,6 +4,7 @@ import path from 'path'; import fs from 'fs'; export default class PreviousMap { + constructor(css, opts) { this.loadAnnotation(css); this.inline = this.startWith(this.annotation, 'data:'); @@ -88,4 +89,5 @@ export default class PreviousMap { } } } + } diff --git a/lib/processor.js b/lib/processor.js index b481ef94d..09d4a8b5f 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -1,6 +1,7 @@ import LazyResult from './lazy-result'; export default class Processor { + constructor(plugins = []) { this.plugins = this.normalize(plugins); } diff --git a/lib/result.js b/lib/result.js index 5ee4a93cf..9ba0075e5 100644 --- a/lib/result.js +++ b/lib/result.js @@ -2,6 +2,7 @@ import warnOnce from './warn-once'; import Warning from './warning'; export default class Result { + constructor(processor, root, opts) { this.processor = processor; this.messages = []; diff --git a/lib/root.js b/lib/root.js index ef20f9e7f..ec10bdc36 100644 --- a/lib/root.js +++ b/lib/root.js @@ -1,6 +1,7 @@ import Container from './container'; export default class Root extends Container { + constructor(defaults) { super(defaults); if ( !this.nodes ) this.nodes = []; @@ -44,4 +45,5 @@ export default class Root extends Container { let lazy = new LazyResult(new Processor(), this, opts); return lazy.stringify(); } + } diff --git a/lib/rule.js b/lib/rule.js index 367bc8266..1d3e4594e 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -2,6 +2,7 @@ import Container from './container'; import list from './list'; export default class Rule extends Container { + constructor(defaults) { super(defaults); if ( !this.nodes ) this.nodes = []; diff --git a/lib/warning.js b/lib/warning.js index f9c7c9476..ac5a342b0 100644 --- a/lib/warning.js +++ b/lib/warning.js @@ -1,4 +1,5 @@ export default class Warning { + constructor(text, opts = { }) { this.type = 'warning'; this.text = text; @@ -16,4 +17,5 @@ export default class Warning { return this.text; } } + } From 7d6f4de392cdcf9513b271faaaa5afb85988465d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 28 Jun 2015 01:57:57 +0300 Subject: [PATCH 0490/3047] Make stringifier as a class --- lib/map-generator.js | 5 +-- lib/node.js | 6 ++-- lib/stringifier.js | 74 +++++++++++++++++++++++--------------------- test/stringifier.js | 12 ++++--- 4 files changed, 53 insertions(+), 44 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 176f9ec87..080b6208f 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -1,4 +1,4 @@ -import stringifier from './stringifier'; +import Stringifier from './stringifier'; import { Base64 } from 'js-base64'; import mozilla from 'source-map'; @@ -230,7 +230,8 @@ export default class { } }; - stringifier.stringify(builder, this.root); + let str = new Stringifier(builder); + str.stringify(this.root); } generate() { diff --git a/lib/node.js b/lib/node.js index ae69d30c7..b408bad5f 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,5 +1,5 @@ import CssSyntaxError from './css-syntax-error'; -import stringifier from './stringifier'; +import Stringifier from './stringifier'; const defaultStyle = { colon: ': ', @@ -72,8 +72,8 @@ export default class Node { toString() { let result = ''; - let builder = (str) => result += str; - stringifier.stringify(builder, this); + let str = new Stringifier( (i) => result += i ); + str.stringify(this); return result; } diff --git a/lib/stringifier.js b/lib/stringifier.js index 9343c4d0e..9a384eb4c 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -1,26 +1,30 @@ -export default { +export default class Stringifier { - stringify(builder, node, semicolon) { - this[node.type](builder, node, semicolon); - }, + constructor(builder) { + this.builder = builder; + } - root(builder, node) { - this.body(builder, node); - if ( node.after ) builder(node.after); - }, + stringify(node, semicolon) { + this[node.type](node, semicolon); + } - comment(builder, node) { + root(node) { + this.body(node); + if ( node.after ) this.builder(node.after); + } + + comment(node) { let before = node.style('before'); - if ( before ) builder(before); + if ( before ) this.builder(before); let left = node.style('left', 'commentLeft'); let right = node.style('right', 'commentRight'); - builder('/*' + left + node.text + right + '*/', node); - }, + this.builder('/*' + left + node.text + right + '*/', node); + } - decl(builder, node, semicolon) { + decl(node, semicolon) { let before = node.style('before'); - if ( before ) builder(before); + if ( before ) this.builder(before); let between = node.style('between', 'colon'); let string = node.prop + between + this.raw(node, 'value'); @@ -30,14 +34,14 @@ export default { } if ( semicolon ) string += ';'; - builder(string, node); - }, + this.builder(string, node); + } - rule(builder, node) { - this.block(builder, node, this.raw(node, 'selector')); - }, + rule(node) { + this.block(node, this.raw(node, 'selector')); + } - atrule(builder, node, semicolon) { + atrule(node, semicolon) { let name = '@' + node.name; let params = node.params ? this.raw(node, 'params') : ''; @@ -48,17 +52,17 @@ export default { } if ( node.nodes ) { - this.block(builder, node, name + params); + this.block(node, name + params); } else { let before = node.style('before'); - if ( before ) builder(before); + if ( before ) this.builder(before); let end = (node.between || '') + (semicolon ? ';' : ''); - builder(name + params + end, node); + this.builder(name + params + end, node); } - }, + } - body(builder, node) { + body(node) { if ( !node.nodes ) return; let last = node.nodes.length - 1; @@ -69,28 +73,28 @@ export default { let semicolon = node.style('semicolon'); for ( let i = 0; i < node.nodes.length; i++ ) { - this.stringify(builder, node.nodes[i], last !== i || semicolon); + this.stringify(node.nodes[i], last !== i || semicolon); } - }, + } - block(builder, node, start) { + block(node, start) { let before = node.style('before'); - if ( before ) builder(before); + if ( before ) this.builder(before); let between = node.style('between', 'beforeOpen'); - builder(start + between + '{', node, 'start'); + this.builder(start + between + '{', node, 'start'); let after; if ( node.nodes && node.nodes.length ) { - this.body(builder, node); + this.body(node); after = node.style('after'); } else { after = node.style('after', 'emptyBody'); } - if ( after ) builder(after); - builder('}', node, 'end'); - }, + if ( after ) this.builder(after); + this.builder('}', node, 'end'); + } raw(node, prop) { let value = node[prop]; @@ -102,4 +106,4 @@ export default { } } -}; +} diff --git a/test/stringifier.js b/test/stringifier.js index b44ae5a8b..e8691198f 100644 --- a/test/stringifier.js +++ b/test/stringifier.js @@ -1,4 +1,4 @@ -import stringifier from '../lib/stringifier'; +import Stringifier from '../lib/stringifier'; import Node from '../lib/node'; import parse from '../lib/parse'; @@ -24,23 +24,27 @@ describe('stringifier', () => { }); describe('.raw()', () => { + let str; + before( () => { + str = new Stringifier(); + }); it('creates trimmed/raw property', () => { let b = new Node({ one: 'trim', _one: { value: 'trim', raw: 'raw' } }); - expect(stringifier.raw(b, 'one')).to.eql('raw'); + expect(str.raw(b, 'one')).to.eql('raw'); b.one = 'trim1'; - expect(stringifier.raw(b, 'one')).to.eql('trim1'); + expect(str.raw(b, 'one')).to.eql('trim1'); }); it('works without magic', () => { let b = new Node(); b.one = '1'; expect(b.one).to.eql('1'); - expect(stringifier.raw(b, 'one')).to.eql('1'); + expect(str.raw(b, 'one')).to.eql('1'); }); }); From b76b5a34fcc5d5025f98a48d65e2f45fc1b7f051 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 29 Jun 2015 07:40:32 +0300 Subject: [PATCH 0491/3047] Move code style properties to Node#raw --- docs/api.md | 266 +++------------------------- lib/at-rule.js | 11 ++ lib/comment.js | 23 ++- lib/container.js | 17 +- lib/declaration.js | 13 +- lib/node.js | 72 +++++--- lib/parser.js | 72 ++++---- lib/root.js | 10 +- lib/stringifier.js | 13 +- test/cases/atrule-decls.json | 108 ++++++----- test/cases/atrule-empty.json | 16 +- test/cases/atrule-no-params.json | 20 ++- test/cases/atrule-no-semicolon.json | 16 +- test/cases/atrule-no-space.json | 16 +- test/cases/atrule-params.json | 20 ++- test/cases/atrule-rules.json | 72 +++++--- test/cases/colon-selector.json | 18 +- test/cases/comments.json | 130 ++++++++------ test/cases/decls.json | 32 ++-- test/cases/empty.json | 18 +- test/cases/escape.json | 144 +++++++++------ test/cases/extends.json | 50 ++++-- test/cases/function.json | 26 +-- test/cases/ie-progid.json | 26 +-- test/cases/important.json | 98 ++++++---- test/cases/prop-hacks.json | 38 ++-- test/cases/quotes.json | 32 ++-- test/cases/raw-decl.json | 34 ++-- test/cases/rule-at.json | 52 +++--- test/cases/rule-no-semicolon.json | 26 +-- test/cases/selector.json | 26 +-- test/cases/semicolons.json | 26 +-- test/cases/tab.json | 26 +-- test/container.js | 12 +- test/node.js | 42 ++--- test/parse.js | 20 ++- test/root.js | 4 +- test/stringifier.js | 6 +- 38 files changed, 879 insertions(+), 772 deletions(-) diff --git a/docs/api.md b/docs/api.md index 7029b31f6..513e4446d 100644 --- a/docs/api.md +++ b/docs/api.md @@ -965,6 +965,29 @@ if ( atrule.name == 'add-link' ) { } ``` +### `node.raw` + +Contains information to stringify node byte-to-byte as it was in origin input. + +Every parser saves its own properties, but default CSS parser use: + +* `before`: the space symbols before node. It stores also any non-standard + symbols before declaration like `_` from IE hack. +* `after`: the space symbols after last child of node to the end of the node. +* `between`: the symbols between property and value for declarations, + selector and `{` for rules, last parameter and `{` for at-rules. +* `semicolon`: contains `true` if last child has (optional) semicolon. +* `afterName`: the space between at-rule’s name and parameters. +* `left`: the space symbols between `/*` and comment’s text. +* `right`: the space symbols between comment’s text and `*/`. +* `important`: the content of important statement, + if it is not just `!important`. + +PostCSS cleans selectors, declration’s values and at-rule’s parameters from +comments and extra spaces. But PostCSS stores origin content +in `raw` properties. So, if you will not change declration value, PostCSS will +use raw value with comments. + ### `node.toString()` Returns a CSS string representing the node. @@ -1517,18 +1540,6 @@ Arguments: `to` to generate correct source maps. * `map`: an object of [source map options]. -### `root.after` - -The space symbols after the last child of `root`, -such as `\n` at the end of a file. - -```js -var root = parse('a {}\nb { color: black }\n'); -root.after //=> '\n' -``` - -This is a code style property. - ## `AtRule` node Represents an at-rule. @@ -1570,95 +1581,6 @@ var media = root.first; media.params //=> '[print, screen]' ``` -This value will be cleaned of comments. If the source at-rule’s prelude -contained comments, those comments will be available -in the `_params.raw` property. - -If you have not changed the parameters, calling `atrule.toString()` -will use the original raw value (comments and all). - -```js -var root = postcss.parse('@media print, /**/ screen {}'); -var media = root.first; -media.params //=> '[print, screen]' -media._params.raw //=> 'print, /**/ screen' -media.toString() //=> '@media print, /**/ screen {}' -``` - -### `atrule.before` - -The space symbols before the at-rule. - -The default value is `\n`, except for the first rule in a `Root`, -whose `before` property is empty. - -```js -var root = postcss.parse('@charset "UTF-8";\n@media print {}\n'); -var media = root.last; -media.before //=> '\n' -``` - -This is a code style property. - -### `atrule.afterName` - -The space symbols between the at-rule’s name and its parameters. - -The default value is ` `. - -```js -var root = postcss.parse('@media\n print,\n screen {}\n'); -var media = root.first; -media.afterName //=> '\n ' -``` - -This is a code style property. - -### `atrule.between` - -The space symbols between the at-rule’s parameters -and `{`, the block-opening curly brace. - -The default value is ` `. - -```js -var root = postcss.parse('@media print, screen\n{}\n'); -var media = root.first; -media.before //=> '\n' -``` - -This is a code style property. - -### `atrule.after` - -The space symbols between the at-rule’s last child and `}`, -the block-closing curly brace. - -The default value is `\n` if the at-rule has children, -and an empty string (`''`) if it does not. - -```js -var root = postcss.parse('@media print {\n a {}\n }\n'); -var media = root.first; -media.after //=> '\n ' -``` - -This is a code style property. - -### `atrule.semicolon` - -`true` if at-rule’s last child declaration -is followed by an (optional) semicolon. - -`false` if the semicolon is omitted. - -```js -postcss.parse('@page{color:black}').first.semicolon //=> false -postcss.parse('@page{color:black;}').first.semicolon //=> true -``` - -This is a code style property. - ## `Rule` node Represents a CSS rule: a selector followed by a declaration block. @@ -1681,20 +1603,6 @@ var rule = root.first; rule.selector //=> 'a, b' ``` -This value will be cleaned of comments. If the source selector contained -comments, those comments will be available in the `_selector.raw` property. - -If you have not changed the selector, the result of `rule.toString()` -will include the original raw selector value (comments and all). - -```js -var root = postcss.parse('a /**/ b {}'); -var rule = root.first; -rule.selector //=> 'a b' -rule._selector.raw //=> 'a /**/ b' -rule.toString() //=> 'a /**/ b {}' -``` - ### `rule.selectors` An array containing the rule’s individual selectors. @@ -1711,50 +1619,6 @@ rule.selectors = ['a', 'strong']; rule.selector //=> 'a, strong' ``` -### `rule.before` - -The space symbols before the rule. - -The default value is `\n`, except for first rule in root, -whose `before` property is empty. - -```js -var root = postcss.parse('a {}\nb {}\n'); -var rule = root.last; -rule.before //=> '\n' -``` - -This is a code style property. - -### `rule.after` - -The space symbols between the rule’s last child and `}`, -the block-closing curly brace. - -The default value is `\n` if rule has children and an empty string (`''`) -if it does not. - -```js -var root = postcss.parse('@a {\n color: black\n }\n'); -var rule = root.first; -root.after //=> '\n ' -``` - -This is a code style property. - -### `rule.semicolon` - -`true` if rule’s last child declaration is followed by an (optional) semicolon. - -`false` if the semicolon is omitted. - -```js -postcss.parse('a{color:black}').first.semicolon //=> false -postcss.parse('a{color:black;}').first.semicolon //=> true -``` - -This is a code style property. - ## `Declaration` node Represents a CSS declaration. @@ -1786,48 +1650,6 @@ var decl = root.first.first; decl.value //=> 'black' ``` -This value will be cleaned of comments. If the source value contained comments, -those comments will be available in the `_value.raw` property. - -If you have not changed the value, the result of `decl.toString()` will include -the original raw value (comments and all). - -```js -var root = postcss.parse('a { border-radius: 3px /**/ 0 }'); -var decl = root.first.first; -decl.value //=> '3px 0' -decl._value.raw //=> '3px /**/ 0' -decl.toString() //=> ' border-radius: 3px /**/ 0' -``` - -### `declaration.before` - -The space symbols before the declaration. - -Default value is `\n `. - -```js -var root = postcss.parse('a {\n color: black\n}\n'); -var decl = root.first.first; -decl.before //=> '\n ' -``` - -This is a code style property. - -### `declaration.between` - -The symbols between the declaration’s property and its value. - -Default value is `: `. - -```js -var root = postcss.parse('a { color/**/: black }'); -var decl = root.first.first; -decl.between //=> '/**/: ' -``` - -This is a code style property. - ### `declaration.important` `true` if the declaration has an `!important` annotation. @@ -1838,19 +1660,11 @@ root.first.first.important //=> true root.first.last.important //=> undefined ``` -If there are comments between the declaration’s value and its -`!important` annotation, they will be available in the `_important` property. - -```js -var root = postcss.parse('a { color: black /**/ !important }'); -root.first.first._important //=> ' /**/ !important' -``` - ## `Comment` node Represents a comment between declarations or statements (rule and at-rules). Comments inside selectors, at-rules parameters, or declaration values -will be stored in the raw properties explained above. +will be stored in the [`Node#raw`] properties explained above. ```js var root = postcss.parse('a { color: /* inner */ black; /* outer */ }'); @@ -1871,37 +1685,6 @@ var comment = root.first; var comment.text //=> 'Empty file' ``` -### `comment.left` and `comment.right` - -The space symbols before/after the comment’s text. - -Default value is ` `. - -```js -var root = postcss.parse('/* long */ /*short*/'); -var long = root.first; -var short = root.last; - -long.left //=> ' ' -short.left //=> '' -``` - -This is a code style property. - -### `comment.before` - -The space symbols before the comment. - -Default value is `\n`. - -```js -var root = postcss.parse('a {\n /**/}\n'); -var comment = root.first.first; -comment.before //=> '\n ' -``` - -This is a code style property. - [`source-map`]: https://github.com/mozilla/source-map [Promise]: http://www.html5rocks.com/en/tutorials/es6/promises/ @@ -1927,6 +1710,7 @@ This is a code style property. [`Root` node]: #root-node [`Rule` node]: #rule-node [`Processor`]: #processor-class +[`Node#raw`]: #node-raw [`Warning`]: #warning-class [`Result`]: #result-class [`Input`]: #inputclass diff --git a/lib/at-rule.js b/lib/at-rule.js index 0351d034d..b13a3cba6 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -1,4 +1,5 @@ import Container from './container'; +import warnOnce from './warn-once'; export default class AtRule extends Container { @@ -27,4 +28,14 @@ export default class AtRule extends Container { return super.insertAfter(exist, add); } + get afterName() { + warnOnce('AtRule#afterName was deprecated. Use AtRule#raw.afterName'); + return this.raw.afterName; + } + + set afterName(val) { + warnOnce('AtRule#afterName was deprecated. Use AtRule#raw.afterName'); + return this.raw.afterName = val; + } + } diff --git a/lib/comment.js b/lib/comment.js index a6a8e544e..b42109937 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -1,4 +1,5 @@ -import Node from './node'; +import warnOnce from './warn-once'; +import Node from './node'; export default class Comment extends Node { @@ -7,4 +8,24 @@ export default class Comment extends Node { this.type = 'comment'; } + get left() { + warnOnce('Comment#left was deprecated. Use Comment#raw.left'); + return this.raw.left; + } + + set left(val) { + warnOnce('Comment#left was deprecated. Use Comment#raw.left'); + return this.raw.left = val; + } + + get right() { + warnOnce('Comment#right was deprecated. Use Comment#raw.right'); + return this.raw.right; + } + + set right(val) { + warnOnce('Comment#right was deprecated. Use Comment#raw.right'); + return this.raw.right = val; + } + } diff --git a/lib/container.js b/lib/container.js index e7bee4d4b..0bf87790e 100644 --- a/lib/container.js +++ b/lib/container.js @@ -1,4 +1,5 @@ import Declaration from './declaration'; +import warnOnce from './warn-once'; import Comment from './comment'; import Node from './node'; @@ -296,9 +297,9 @@ export default class Container extends Node { let processed = nodes.map( (child) => { if ( child.parent ) child = child.clone(); - if ( typeof child.before === 'undefined' ) { - if ( sample && typeof sample.before !== 'undefined' ) { - child.before = sample.before.replace(/[^\s]/g, ''); + if ( typeof child.raw.before === 'undefined' ) { + if ( sample && typeof sample.raw.before !== 'undefined' ) { + child.raw.before = sample.raw.before.replace(/[^\s]/g, ''); } } child.parent = this; @@ -308,4 +309,14 @@ export default class Container extends Node { return processed; } + get semicolon() { + warnOnce('Node#semicolon was deprecated. Use Node#raw.semicolon'); + return this.raw.semicolon; + } + + set semicolon(val) { + warnOnce('Node#semicolon was deprecated. Use Node#raw.semicolon'); + return this.raw.semicolon = val; + } + } diff --git a/lib/declaration.js b/lib/declaration.js index 9be5ef4cb..1aec515bd 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -1,4 +1,5 @@ -import Node from './node'; +import warnOnce from './warn-once'; +import Node from './node'; export default class Declaration extends Node { @@ -7,4 +8,14 @@ export default class Declaration extends Node { this.type = 'decl'; } + get _important() { + warnOnce('Node#_important was deprecated. Use Node#raw.important'); + return this.raw.important; + } + + set _important(val) { + warnOnce('Node#_important was deprecated. Use Node#raw.important'); + return this.raw.important = val; + } + } diff --git a/lib/node.js b/lib/node.js index b408bad5f..dedb62016 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,5 +1,6 @@ import CssSyntaxError from './css-syntax-error'; import Stringifier from './stringifier'; +import warnOnce from './warn-once'; const defaultStyle = { colon: ': ', @@ -42,6 +43,7 @@ let cloneNode = function (obj, parent) { export default class Node { constructor(defaults = { }) { + this.raw = { }; for ( let name in defaults ) { this[name] = defaults[name]; } @@ -172,7 +174,7 @@ export default class Node { // Already had if ( own ) { - value = this[own]; + value = this.raw[own]; if ( typeof value !== 'undefined' ) return value; } @@ -198,14 +200,14 @@ export default class Node { if ( detect === 'semicolon' ) { root.eachInside( (i) => { if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { - value = i.semicolon; + value = i.raw.semicolon; if ( typeof value !== 'undefined' ) return false; } }); } else if ( detect === 'emptyBody' ) { root.eachInside( (i) => { if ( i.nodes && i.nodes.length === 0 ) { - value = i.after; + value = i.raw.after; if ( typeof value !== 'undefined' ) return false; } }); @@ -213,8 +215,8 @@ export default class Node { root.eachInside( (i) => { let p = i.parent; if ( p && p !== root && p.parent && p.parent === root ) { - if ( typeof i.before !== 'undefined' ) { - let parts = i.before.split('\n'); + if ( typeof i.raw.before !== 'undefined' ) { + let parts = i.raw.before.split('\n'); value = parts[parts.length - 1]; value = value.replace(/[^\s]/g, ''); return false; @@ -223,8 +225,8 @@ export default class Node { }); } else if ( detect === 'beforeComment' ) { root.eachComment( (i) => { - if ( typeof i.before !== 'undefined' ) { - value = i.before; + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -236,8 +238,8 @@ export default class Node { } } else if ( detect === 'beforeDecl' ) { root.eachDecl( (i) => { - if ( typeof i.before !== 'undefined' ) { - value = i.before; + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -250,8 +252,8 @@ export default class Node { } else if ( detect === 'beforeRule' ) { root.eachInside( (i) => { if ( i.nodes && (i.parent !== root || root.first !== i) ) { - if ( typeof i.before !== 'undefined' ) { - value = i.before; + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -262,8 +264,8 @@ export default class Node { } else if ( detect === 'beforeClose' ) { root.eachInside( (i) => { if ( i.nodes && i.nodes.length > 0 ) { - if ( typeof i.after !== 'undefined' ) { - value = i.after; + if ( typeof i.raw.after !== 'undefined' ) { + value = i.raw.after; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -299,21 +301,21 @@ export default class Node { return value; } else if ( detect === 'colon' ) { root.eachDecl( (i) => { - if ( typeof i.between !== 'undefined' ) { - value = i.between.replace(/[^\s:]/g, ''); + if ( typeof i.raw.between !== 'undefined' ) { + value = i.raw.between.replace(/[^\s:]/g, ''); return false; } }); } else if ( detect === 'beforeOpen' ) { root.eachInside( (i) => { if ( i.type !== 'decl' ) { - value = i.between; + value = i.raw.between; if ( typeof value !== 'undefined' ) return false; } }); } else { root.eachInside( (i) => { - value = i[own]; + value = i.raw[own]; if ( typeof value !== 'undefined' ) return false; }); } @@ -331,9 +333,9 @@ export default class Node { } cleanStyles(keepBetween) { - delete this.before; - delete this.after; - if ( !keepBetween ) delete this.between; + delete this.raw.before; + delete this.raw.after; + if ( !keepBetween ) delete this.raw.between; if ( this.nodes ) { for ( let node of this.nodes ) node.cleanStyles(keepBetween); @@ -355,4 +357,34 @@ export default class Node { return { line: indexLine, column: indexColumn }; } + get before() { + warnOnce('Node#before was deprecated. Use Node#raw.before'); + return this.raw.before; + } + + set before(val) { + warnOnce('Node#before was deprecated. Use Node#raw.before'); + return this.raw.before = val; + } + + get after() { + warnOnce('Node#after was deprecated. Use Node#raw.after'); + return this.raw.after; + } + + set after(val) { + warnOnce('Node#after was deprecated. Use Node#raw.after'); + return this.raw.after = val; + } + + get between() { + warnOnce('Node#between was deprecated. Use Node#raw.between'); + return this.raw.between; + } + + set between(val) { + warnOnce('Node#between was deprecated. Use Node#raw.between'); + return this.raw.between = val; + } + } diff --git a/lib/parser.js b/lib/parser.js index f7c5484ff..308d95903 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -68,22 +68,22 @@ export default class Parser { let text = token[1].slice(2, -2); if ( text.match(/^\s*$/) ) { - node.left = text; - node.text = ''; - node.right = ''; + node.text = ''; + node.raw.left = text; + node.raw.right = ''; } else { let match = text.match(/^(\s*)([^]*[^\s])(\s*)$/); - node.left = match[1]; - node.text = match[2]; - node.right = match[3]; + node.text = match[2]; + node.raw.left = match[1]; + node.raw.right = match[3]; } } emptyRule(token) { let node = new Rule(); this.init(node, token[2], token[3]); - node.between = ''; node.selector = ''; + node.raw.between = ''; this.current = node; } @@ -168,7 +168,7 @@ export default class Parser { let node = new Rule(); this.init(node, tokens[0][2], tokens[0][3]); - node.between = this.spacesFromEnd(tokens); + node.raw.between = this.spacesFromEnd(tokens); this.raw(node, 'selector', tokens); this.current = node; } @@ -189,32 +189,32 @@ export default class Parser { } while ( tokens[0][0] !== 'word' ) { - node.before += tokens.shift()[1]; + node.raw.before += tokens.shift()[1]; } node.source.start = { line: tokens[0][2], column: tokens[0][3] }; - node.prop = tokens.shift()[1]; - node.between = ''; + node.prop = tokens.shift()[1]; + node.raw.between = ''; let token; while ( tokens.length ) { token = tokens.shift(); if ( token[0] === ':' ) { - node.between += token[1]; + node.raw.between += token[1]; break; } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { this.unknownWord(node, token, tokens); } else { - node.between += token[1]; + node.raw.between += token[1]; } } if ( node.prop[0] === '_' || node.prop[0] === '*' ) { - node.before += node.prop[0]; - node.prop = node.prop.slice(1); + node.raw.before += node.prop[0]; + node.prop = node.prop.slice(1); } - node.between += this.spacesFromStart(tokens); + node.raw.between += this.spacesFromStart(tokens); if ( this.input.safe ) this.checkMissedSemicolon(tokens); @@ -224,7 +224,7 @@ export default class Parser { node.important = true; let string = this.stringFrom(tokens, i); string = this.spacesFromEnd(tokens) + string; - if ( string !== ' !important' ) node._important = string; + if ( string !== ' !important' ) node.raw.important = string; break; } else if (token[1] === 'important') { @@ -238,8 +238,8 @@ export default class Parser { str = cache.pop()[1] + str; } if ( str.trim().indexOf('!') === 0 ) { - node.important = true; - node._important = str; + node.important = true; + node.raw.important = str; tokens = cache; } } @@ -294,18 +294,18 @@ export default class Parser { last = true; } - node.between = this.spacesFromEnd(params); + node.raw.between = this.spacesFromEnd(params); if ( params.length ) { - node.afterName = this.spacesFromStart(params); + node.raw.afterName = this.spacesFromStart(params); this.raw(node, 'params', params); if ( last ) { token = params[ params.length - 1 ]; - node.source.end = { line: token[4], column: token[5] }; - this.spaces = node.between; - node.between = ''; + node.source.end = { line: token[4], column: token[5] }; + this.spaces = node.raw.between; + node.raw.between = ''; } } else { - node.afterName = ''; + node.raw.afterName = ''; node.params = ''; } @@ -317,11 +317,11 @@ export default class Parser { end(token) { if ( this.current.nodes && this.current.nodes.length ) { - this.current.semicolon = this.semicolon; + this.current.raw.semicolon = this.semicolon; } this.semicolon = false; - this.current.after = (this.current.after || '') + this.spaces; + this.current.raw.after = (this.current.raw.after || '') + this.spaces; this.spaces = ''; if ( this.current.parent ) { @@ -330,7 +330,7 @@ export default class Parser { } else if ( !this.input.safe ) { throw this.input.error('Unexpected }', token[2], token[3]); } else { - this.current.after += '}'; + this.current.raw.after += '}'; } } @@ -341,22 +341,22 @@ export default class Parser { } if ( this.current.nodes && this.current.nodes.length ) { - this.current.semicolon = this.semicolon; + this.current.raw.semicolon = this.semicolon; } - this.current.after = (this.current.after || '') + this.spaces; + this.current.raw.after = (this.current.raw.after || '') + this.spaces; while ( this.current.parent ) { this.current = this.current.parent; - this.current.after = ''; + this.current.raw.after = ''; } } unknownWord(node, token) { if ( this.input.safe ) { node.source.start = { line: token[2], column: token[3] }; - node.before += node.prop + node.between; - node.prop = token[1]; - node.between = ''; + node.raw.before += node.prop + node.raw.between; + node.raw.between = ''; + node.prop = token[1]; } else { throw this.input.error('Unknown word', token[2], token[3]); } @@ -425,7 +425,7 @@ export default class Parser { this.current.push(node); node.source = { start: { line, column }, input: this.input }; - node.before = this.spaces; + node.raw.before = this.spaces; this.spaces = ''; if ( node.type !== 'comment' ) this.semicolon = false; } @@ -444,7 +444,7 @@ export default class Parser { if ( !clean ) { let origin = ''; for ( token of tokens ) origin += token[1]; - node['_' + prop] = { value: value, raw: origin }; + node.raw[prop] = { value: value, raw: origin }; } node[prop] = value; } diff --git a/lib/root.js b/lib/root.js index ec10bdc36..fa5af4881 100644 --- a/lib/root.js +++ b/lib/root.js @@ -12,7 +12,7 @@ export default class Root extends Container { child = this.index(child); if ( child === 0 && this.nodes.length > 1 ) { - this.nodes[1].before = this.nodes[child].before; + this.nodes[1].raw.before = this.nodes[child].raw.before; } return super.remove(child); @@ -24,13 +24,15 @@ export default class Root extends Container { if ( sample ) { if ( type === 'prepend' ) { if ( this.nodes.length > 1 ) { - sample.before = this.nodes[1].before; + sample.raw.before = this.nodes[1].raw.before; } else { - delete sample.before; + delete sample.raw.before; } } else { for ( let node of nodes ) { - if ( this.first !== sample ) node.before = sample.before; + if ( this.first !== sample ) { + node.raw.before = sample.raw.before; + } } } } diff --git a/lib/stringifier.js b/lib/stringifier.js index 9a384eb4c..f329322c3 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -10,13 +10,12 @@ export default class Stringifier { root(node) { this.body(node); - if ( node.after ) this.builder(node.after); + if ( node.raw.after ) this.builder(node.raw.after); } comment(node) { let before = node.style('before'); if ( before ) this.builder(before); - let left = node.style('left', 'commentLeft'); let right = node.style('right', 'commentRight'); this.builder('/*' + left + node.text + right + '*/', node); @@ -30,7 +29,7 @@ export default class Stringifier { let string = node.prop + between + this.raw(node, 'value'); if ( node.important ) { - string += node._important || ' !important'; + string += node.raw.important || ' !important'; } if ( semicolon ) string += ';'; @@ -45,8 +44,8 @@ export default class Stringifier { let name = '@' + node.name; let params = node.params ? this.raw(node, 'params') : ''; - if ( typeof node.afterName !== 'undefined' ) { - name += node.afterName; + if ( typeof node.raw.afterName !== 'undefined' ) { + name += node.raw.afterName; } else if ( params ) { name += ' '; } @@ -57,7 +56,7 @@ export default class Stringifier { } else { let before = node.style('before'); if ( before ) this.builder(before); - let end = (node.between || '') + (semicolon ? ';' : ''); + let end = (node.raw.between || '') + (semicolon ? ';' : ''); this.builder(name + params + end, node); } } @@ -98,7 +97,7 @@ export default class Stringifier { raw(node, prop) { let value = node[prop]; - let raw = node['_' + prop]; + let raw = node.raw[prop]; if ( raw && raw.value === value ) { return raw.raw; } else { diff --git a/test/cases/atrule-decls.json b/test/cases/atrule-decls.json index 7fd557ced..cc7e9bc60 100644 --- a/test/cases/atrule-decls.json +++ b/test/cases/atrule-decls.json @@ -1,6 +1,17 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "afterName": " ", + "semicolon": false, + "after": "\n" + }, "type": "atrule", "name": "page", "source": { @@ -19,12 +30,13 @@ "column": 1 } }, - "before": "", - "between": " ", - "afterName": " ", "params": ":left", "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -42,16 +54,19 @@ "column": 21 } }, - "before": "\n ", "prop": "background", - "between": ": ", "value": "black" } - ], - "semicolon": false, - "after": "\n" + ] }, { + "raw": { + "before": "\n\n", + "between": " ", + "afterName": "", + "semicolon": false, + "after": "\n" + }, "type": "atrule", "name": "media", "source": { @@ -70,12 +85,13 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "afterName": "", "params": "(min-width: 0)", "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -93,16 +109,19 @@ "column": 21 } }, - "before": "\n ", "prop": "background", - "between": ": ", "value": "white" } - ], - "semicolon": false, - "after": "\n" + ] }, { + "raw": { + "before": "\n\n", + "between": " ", + "afterName": "", + "semicolon": true, + "after": "\n" + }, "type": "atrule", "name": "font-face", "source": { @@ -121,12 +140,13 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "afterName": "", "params": "", "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -144,16 +164,19 @@ "column": 28 } }, - "before": "\n ", "prop": "family-name", - "between": ": ", "value": "\"A;' /**/\"" } - ], - "semicolon": true, - "after": "\n" + ] }, { + "raw": { + "before": "\n\n", + "between": " ", + "afterName": "", + "semicolon": true, + "after": "\n" + }, "type": "atrule", "name": "viewport", "source": { @@ -172,12 +195,13 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "afterName": "", "params": "", "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -195,16 +219,19 @@ "column": 17 } }, - "before": "\n ", "prop": "width", - "between": ": ", "value": "110px" } - ], - "semicolon": true, - "after": "\n" + ] }, { + "raw": { + "before": "\n\n", + "between": " ", + "afterName": "", + "semicolon": true, + "after": "\n" + }, "type": "atrule", "name": "-ms-viewport", "source": { @@ -223,12 +250,13 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "afterName": "", "params": "", "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -246,14 +274,10 @@ "column": 17 } }, - "before": "\n ", "prop": "width", - "between": ": ", "value": "100px" } - ], - "semicolon": true, - "after": "\n" + ] } ], "type": "root", @@ -264,7 +288,5 @@ "file": "/atrule-decls.css", "from": "/atrule-decls.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/atrule-empty.json b/test/cases/atrule-empty.json index a551ea4da..28f075664 100644 --- a/test/cases/atrule-empty.json +++ b/test/cases/atrule-empty.json @@ -1,6 +1,15 @@ { + "raw": { + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": "", + "afterName": " " + }, "type": "atrule", "name": "charset", "source": { @@ -19,9 +28,6 @@ "column": 17 } }, - "before": "", - "between": "", - "afterName": " ", "params": "\"UTF-8\"" } ], @@ -33,7 +39,5 @@ "file": "/atrule-empty.css", "from": "/atrule-empty.css" } - }, - "semicolon": true, - "after": "\n" + } } diff --git a/test/cases/atrule-no-params.json b/test/cases/atrule-no-params.json index f309ee216..209e0b25c 100644 --- a/test/cases/atrule-no-params.json +++ b/test/cases/atrule-no-params.json @@ -1,6 +1,16 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": "", + "afterName": "", + "after": " " + }, "type": "atrule", "name": "page", "source": { @@ -19,12 +29,8 @@ "column": 8 } }, - "before": "", - "between": "", - "afterName": "", "params": "", - "nodes": [], - "after": " " + "nodes": [] } ], "type": "root", @@ -35,7 +41,5 @@ "file": "/atrule-no-params.css", "from": "/atrule-no-params.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/atrule-no-semicolon.json b/test/cases/atrule-no-semicolon.json index 92e88d8b1..fb80e34e4 100644 --- a/test/cases/atrule-no-semicolon.json +++ b/test/cases/atrule-no-semicolon.json @@ -1,6 +1,15 @@ { + "raw": { + "semicolon": false, + "after": "\n\n" + }, "nodes": [ { + "raw": { + "before": "\n", + "between": "", + "afterName": " " + }, "type": "atrule", "name": "charset", "source": { @@ -19,9 +28,6 @@ "column": 16 } }, - "before": "\n", - "between": "", - "afterName": " ", "params": "\"UTF-8\"" } ], @@ -33,7 +39,5 @@ "file": "/atrule-no-semicolon.css", "from": "/atrule-no-semicolon.css" } - }, - "semicolon": false, - "after": "\n\n" + } } diff --git a/test/cases/atrule-no-space.json b/test/cases/atrule-no-space.json index 9ab5e7b88..bb4ca692f 100644 --- a/test/cases/atrule-no-space.json +++ b/test/cases/atrule-no-space.json @@ -1,6 +1,15 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": "", + "afterName": "" + }, "type": "atrule", "name": "import", "source": { @@ -19,9 +28,6 @@ "column": 17 } }, - "before": "", - "between": "", - "afterName": "", "params": "\"test.css\"" } ], @@ -33,7 +39,5 @@ "file": "/atrule-no-space.css", "from": "/atrule-no-space.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/atrule-params.json b/test/cases/atrule-params.json index 176c4da15..8dad0920b 100644 --- a/test/cases/atrule-params.json +++ b/test/cases/atrule-params.json @@ -1,6 +1,16 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " /* a */ ", + "afterName": "/* near */ /* filter */ ", + "after": "" + }, "type": "atrule", "name": "-moz-document", "source": { @@ -19,12 +29,8 @@ "column": 69 } }, - "before": "", - "between": " /* a */ ", - "afterName": "/* near */ /* filter */ ", "params": "url(\"example.com/{\")", - "nodes": [], - "after": "" + "nodes": [] } ], "type": "root", @@ -35,7 +41,5 @@ "file": "/atrule-params.css", "from": "/atrule-params.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/atrule-rules.json b/test/cases/atrule-rules.json index 0fe32695b..c83da7a3e 100644 --- a/test/cases/atrule-rules.json +++ b/test/cases/atrule-rules.json @@ -1,6 +1,17 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "afterName": " ", + "semicolon": false, + "after": "\n" + }, "type": "atrule", "name": "supports", "source": { @@ -19,12 +30,16 @@ "column": 1 } }, - "before": "", - "between": " ", - "afterName": " ", "params": "(animation-name: test)", "nodes": [ { + "raw": { + "before": "\n ", + "between": " ", + "afterName": " ", + "semicolon": false, + "after": "\n " + }, "type": "atrule", "name": "-custom-keyframe", "source": { @@ -43,14 +58,21 @@ "column": 5 } }, - "before": "\n ", - "between": " ", - "afterName": " ", "params": "anim", "nodes": [ { + "raw": { + "before": "\n ", + "between": " ", + "semicolon": true, + "after": "\n " + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -68,9 +90,7 @@ "column": 25 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "black" } ], @@ -91,15 +111,21 @@ "column": 9 } }, - "before": "\n ", - "between": " ", - "selector": "from", - "semicolon": true, - "after": "\n " + "selector": "from" }, { + "raw": { + "before": "\n ", + "between": " ", + "semicolon": false, + "after": "\n " + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -117,9 +143,7 @@ "column": 24 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "white" } ], @@ -140,19 +164,11 @@ "column": 9 } }, - "before": "\n ", - "between": " ", - "selector": "to", - "semicolon": false, - "after": "\n " + "selector": "to" } - ], - "semicolon": false, - "after": "\n " + ] } - ], - "semicolon": false, - "after": "\n" + ] } ], "type": "root", @@ -163,7 +179,5 @@ "file": "/atrule-rules.css", "from": "/atrule-rules.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/colon-selector.json b/test/cases/colon-selector.json index ee4bbb8d1..326c002eb 100644 --- a/test/cases/colon-selector.json +++ b/test/cases/colon-selector.json @@ -1,6 +1,15 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "after": "" + }, "nodes": [], "type": "rule", "source": { @@ -19,10 +28,7 @@ "column": 14 } }, - "before": "", - "between": " ", - "selector": ":fullscreen", - "after": "" + "selector": ":fullscreen" } ], "type": "root", @@ -33,7 +39,5 @@ "file": "/colon-selector.css", "from": "/colon-selector.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/comments.json b/test/cases/comments.json index 52a1cacd5..11263d305 100644 --- a/test/cases/comments.json +++ b/test/cases/comments.json @@ -1,6 +1,15 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "left": " ", + "right": " " + }, "type": "comment", "source": { "start": { @@ -18,12 +27,14 @@ "column": 24 } }, - "before": "", - "left": " ", - "text": "a { color: black }", - "right": " " + "text": "a { color: black }" }, { + "raw": { + "before": "\n", + "left": "", + "right": "" + }, "type": "comment", "source": { "start": { @@ -41,12 +52,14 @@ "column": 4 } }, - "before": "\n", - "left": "", - "text": "", - "right": "" + "text": "" }, { + "raw": { + "before": "\n", + "left": " ", + "right": "" + }, "type": "comment", "source": { "start": { @@ -64,14 +77,22 @@ "column": 5 } }, - "before": "\n", - "left": " ", - "text": "", - "right": "" + "text": "" }, { + "raw": { + "before": "\n", + "between": " ", + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "left": " ", + "right": " " + }, "type": "comment", "source": { "start": { @@ -89,12 +110,13 @@ "column": 16 } }, - "before": "\n ", - "left": " ", - "text": "inside", - "right": " " + "text": "inside" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -112,12 +134,15 @@ "column": 17 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "black" }, { + "raw": { + "before": "\n ", + "left": " ", + "right": " " + }, "type": "comment", "source": { "start": { @@ -135,12 +160,13 @@ "column": 17 } }, - "before": "\n ", - "left": " ", - "text": "between", - "right": " " + "text": "between" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -158,12 +184,15 @@ "column": 28 } }, - "before": "\n ", "prop": "border-radius", - "between": ": ", "value": "3px / 7px" }, { + "raw": { + "before": "\n ", + "left": " ", + "right": " " + }, "type": "comment", "source": { "start": { @@ -181,10 +210,7 @@ "column": 13 } }, - "before": "\n ", - "left": " ", - "text": "end", - "right": " " + "text": "end" } ], "type": "rule", @@ -204,13 +230,14 @@ "column": 1 } }, - "before": "\n", - "between": " ", - "selector": "div", - "semicolon": false, - "after": "\n" + "selector": "div" }, { + "raw": { + "before": "\n", + "left": " ", + "right": " " + }, "type": "comment", "source": { "start": { @@ -228,14 +255,21 @@ "column": 7 } }, - "before": "\n", - "left": " ", - "text": "b", - "right": " " + "text": "b" }, { + "raw": { + "before": "\n\n", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -253,12 +287,15 @@ "column": 17 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "black" }, { + "raw": { + "before": "\n ", + "left": " ", + "right": " " + }, "type": "comment", "source": { "start": { @@ -276,10 +313,7 @@ "column": 11 } }, - "before": "\n ", - "left": " ", - "text": "c", - "right": " " + "text": "c" } ], "type": "rule", @@ -299,11 +333,7 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -314,7 +344,5 @@ "file": "/comments.css", "from": "/comments.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/decls.json b/test/cases/decls.json index e82675467..49cbe0fb1 100644 --- a/test/cases/decls.json +++ b/test/cases/decls.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,12 +34,14 @@ "column": 17 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "black" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -43,9 +59,7 @@ "column": 22 } }, - "before": "\n ", "prop": "background", - "between": ": ", "value": "white" } ], @@ -66,11 +80,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -81,7 +91,5 @@ "file": "/decls.css", "from": "/decls.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/empty.json b/test/cases/empty.json index 5e7796102..f7296fe0a 100644 --- a/test/cases/empty.json +++ b/test/cases/empty.json @@ -1,6 +1,15 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": "", + "after": "" + }, "nodes": [], "type": "rule", "source": { @@ -19,10 +28,7 @@ "column": 2 } }, - "before": "", - "between": "", - "selector": "", - "after": "" + "selector": "" } ], "type": "root", @@ -33,7 +39,5 @@ "file": "/empty.css", "from": "/empty.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/escape.json b/test/cases/escape.json index 227420b9d..ddde8826d 100644 --- a/test/cases/escape.json +++ b/test/cases/escape.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,12 +34,14 @@ "column": 30 } }, - "before": "\n ", "prop": "background", - "between": ": ", "value": "url(\"a).png\")" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -43,12 +59,14 @@ "column": 25 } }, - "before": "\n ", "prop": "background", - "between": ": ", "value": "url(a;a)" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -66,9 +84,7 @@ "column": 20 } }, - "before": "\n ", "prop": "background", - "between": ": ", "value": "\\;a" } ], @@ -89,13 +105,14 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n" + "selector": "a" }, { + "raw": { + "before": "\n\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -114,12 +131,18 @@ "column": 19 } }, - "before": "\n\n", - "between": " ", - "selector": ":not([foo=\")\"])", - "after": " " + "selector": ":not([foo=\")\"])" }, { + "raw": { + "before": "\n", + "between": " ", + "selector": { + "value": ":not(div)", + "raw": ":not(div/*)*/)" + }, + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -138,16 +161,14 @@ "column": 18 } }, - "before": "\n", - "between": " ", - "_selector": { - "value": ":not(div)", - "raw": ":not(div/*)*/)" - }, - "selector": ":not(div)", - "after": " " + "selector": ":not(div)" }, { + "raw": { + "before": "\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -166,12 +187,14 @@ "column": 37 } }, - "before": "\n", - "between": " ", - "selector": ":not(:nth-child(2n of [foo=\")\"]))", - "after": " " + "selector": ":not(:nth-child(2n of [foo=\")\"]))" }, { + "raw": { + "before": "\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -190,12 +213,14 @@ "column": 12 } }, - "before": "\n", - "between": " ", - "selector": "[foo=\\\"]", - "after": " " + "selector": "[foo=\\\"]" }, { + "raw": { + "before": "\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -214,12 +239,14 @@ "column": 12 } }, - "before": "\n", - "between": " ", - "selector": "[foo=\\{]", - "after": " " + "selector": "[foo=\\{]" }, { + "raw": { + "before": "\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -238,12 +265,14 @@ "column": 12 } }, - "before": "\n", - "between": " ", - "selector": "[foo=\\(]", - "after": " " + "selector": "[foo=\\(]" }, { + "raw": { + "before": "\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -262,12 +291,14 @@ "column": 30 } }, - "before": "\n", - "between": " ", - "selector": "[foo=yes\\:\\(it\\'s\\ work\\)]", - "after": " " + "selector": "[foo=yes\\:\\(it\\'s\\ work\\)]" }, { + "raw": { + "before": "\n\n", + "between": " ", + "after": " " + }, "nodes": [], "type": "rule", "source": { @@ -286,14 +317,21 @@ "column": 10 } }, - "before": "\n\n", - "between": " ", - "selector": "\\@noat", - "after": " " + "selector": "\\@noat" }, { + "raw": { + "before": "\n\n", + "between": "", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -311,9 +349,7 @@ "column": 14 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "\\\\" } ], @@ -334,11 +370,7 @@ "column": 1 } }, - "before": "\n\n", - "between": "", - "selector": "h1\\\\", - "semicolon": true, - "after": "\n" + "selector": "h1\\\\" } ], "type": "root", @@ -349,7 +381,5 @@ "file": "/escape.css", "from": "/escape.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/extends.json b/test/cases/extends.json index 5cf558cbb..686ca927e 100644 --- a/test/cases/extends.json +++ b/test/cases/extends.json @@ -1,6 +1,14 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -18,14 +26,22 @@ "column": 7 } }, - "before": "", "prop": "one", - "between": ": ", "value": "1" }, { + "raw": { + "before": "\n\n", + "between": " ", + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -43,14 +59,22 @@ "column": 11 } }, - "before": "\n ", "prop": "two", - "between": ": ", "value": "2" }, { + "raw": { + "before": "\n ", + "between": " ", + "semicolon": true, + "after": "\n " + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -68,9 +92,7 @@ "column": 17 } }, - "before": "\n ", "prop": "three", - "between": ": ", "value": "3" } ], @@ -91,11 +113,7 @@ "column": 5 } }, - "before": "\n ", - "between": " ", - "selector": "b", - "semicolon": true, - "after": "\n " + "selector": "b" } ], "type": "rule", @@ -115,11 +133,7 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "selector": "a", - "semicolon": false, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -130,7 +144,5 @@ "file": "/extends.css", "from": "/extends.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/function.json b/test/cases/function.json index 32573498a..5e13014c6 100644 --- a/test/cases/function.json +++ b/test/cases/function.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,9 +34,7 @@ "column": 105 } }, - "before": "\n ", "prop": "background-image", - "between": ": ", "value": "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" } ], @@ -43,11 +55,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": false, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -58,7 +66,5 @@ "file": "/function.css", "from": "/function.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/ie-progid.json b/test/cases/ie-progid.json index 8a6365761..7241c322e 100644 --- a/test/cases/ie-progid.json +++ b/test/cases/ie-progid.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,9 +34,7 @@ "column": 118 } }, - "before": "\n ", "prop": "filter", - "between": ": ", "value": "progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3)" } ], @@ -43,11 +55,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -58,7 +66,5 @@ "file": "/ie-progid.css", "from": "/ie-progid.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/important.json b/test/cases/important.json index 35ed01514..ecde524c4 100644 --- a/test/cases/important.json +++ b/test/cases/important.json @@ -1,8 +1,23 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": ", + "important": "!important" + }, "type": "decl", "source": { "start": { @@ -20,14 +35,16 @@ "column": 25 } }, - "before": "\n ", "prop": "width", - "between": ": ", "important": true, - "_important": "!important", "value": "1px" }, { + "raw": { + "before": "\n ", + "between": ": ", + "important": " !important " + }, "type": "decl", "source": { "start": { @@ -45,11 +62,8 @@ "column": 30 } }, - "before": "\n ", "prop": "color", - "between": ": ", "important": true, - "_important": " !important ", "value": "black" } ], @@ -70,15 +84,21 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n" + "selector": "a" }, { + "raw": { + "before": "\n\n", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -96,12 +116,14 @@ "column": 20 } }, - "before": "\n ", "prop": "prop", - "between": ": ", "value": "important" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -119,12 +141,15 @@ "column": 25 } }, - "before": "\n ", "prop": "color", - "between": ": ", "value": "red important" }, { + "raw": { + "before": "\n ", + "between": ": ", + "important": " ! important" + }, "type": "decl", "source": { "start": { @@ -142,14 +167,16 @@ "column": 39 } }, - "before": "\n ", "prop": "margin", - "between": ": ", "important": true, - "_important": " ! important", "value": "10px" }, { + "raw": { + "before": "\n ", + "between": ": ", + "important": " ! /* test */ important" + }, "type": "decl", "source": { "start": { @@ -167,14 +194,16 @@ "column": 48 } }, - "before": "\n ", "prop": "padding", - "between": ": ", "important": true, - "_important": " ! /* test */ important", "value": "20px" }, { + "raw": { + "before": "\n ", + "between": ": ", + "important": " ! /*! test */ important" + }, "type": "decl", "source": { "start": { @@ -192,14 +221,19 @@ "column": 41 } }, - "before": "\n ", "prop": "width", - "between": ": ", "important": true, - "_important": " ! /*! test */ important", "value": "100px" }, { + "raw": { + "before": "\n ", + "between": ": ", + "value": { + "value": "100px important", + "raw": "100px /*! test */ important" + } + }, "type": "decl", "source": { "start": { @@ -217,13 +251,7 @@ "column": 40 } }, - "before": "\n ", "prop": "height", - "between": ": ", - "_value": { - "value": "100px important", - "raw": "100px /*! test */ important" - }, "value": "100px important" } ], @@ -244,11 +272,7 @@ "column": 1 } }, - "before": "\n\n", - "between": " ", - "selector": "p", - "semicolon": true, - "after": "\n" + "selector": "p" } ], "type": "root", @@ -259,7 +283,5 @@ "file": "/important.css", "from": "/important.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/prop-hacks.json b/test/cases/prop-hacks.json index 9e9734c88..95a545885 100644 --- a/test/cases/prop-hacks.json +++ b/test/cases/prop-hacks.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n *", + "between": " : " + }, "type": "decl", "source": { "start": { @@ -20,12 +34,14 @@ "column": 19 } }, - "before": "\n *", "prop": "color", - "between": " : ", "value": "black" }, { + "raw": { + "before": "\n _", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -43,12 +59,14 @@ "column": 23 } }, - "before": "\n _", "prop": "background", - "between": ": ", "value": "white" }, { + "raw": { + "before": "\n ", + "between": "/**/: " + }, "type": "decl", "source": { "start": { @@ -66,9 +84,7 @@ "column": 23 } }, - "before": "\n ", "prop": "font-size", - "between": "/**/: ", "value": "big" } ], @@ -89,11 +105,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -104,7 +116,5 @@ "file": "/prop-hacks.css", "from": "/prop-hacks.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/quotes.json b/test/cases/quotes.json index 94a10167f..930d32127 100644 --- a/test/cases/quotes.json +++ b/test/cases/quotes.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,12 +34,14 @@ "column": 26 } }, - "before": "\n ", "prop": "content", - "between": ": ", "value": "\";'@ /**/\\\"\"" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -43,9 +59,7 @@ "column": 21 } }, - "before": "\n ", "prop": "content", - "between": ": ", "value": "'\\'\"\\\\'" } ], @@ -66,11 +80,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a::before", - "semicolon": true, - "after": "\n" + "selector": "a::before" } ], "type": "root", @@ -81,7 +91,5 @@ "file": "/quotes.css", "from": "/quotes.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/raw-decl.json b/test/cases/raw-decl.json index b9a89f916..fc765746f 100644 --- a/test/cases/raw-decl.json +++ b/test/cases/raw-decl.json @@ -1,8 +1,26 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": " " + }, "nodes": [ { + "raw": { + "before": " ", + "between": ": ", + "value": { + "value": "a b", + "raw": "a/* ; */ b" + } + }, "type": "decl", "source": { "start": { @@ -20,13 +38,7 @@ "column": 22 } }, - "before": " ", "prop": "color", - "between": ": ", - "_value": { - "value": "a b", - "raw": "a/* ; */ b" - }, "value": "a b" } ], @@ -47,11 +59,7 @@ "column": 24 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": " " + "selector": "a" } ], "type": "root", @@ -62,7 +70,5 @@ "file": "/raw-decl.css", "from": "/raw-decl.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/rule-at.json b/test/cases/rule-at.json index 9bbfb2e86..984c5a4ca 100644 --- a/test/cases/rule-at.json +++ b/test/cases/rule-at.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,12 +34,14 @@ "column": 16 } }, - "before": "\n ", "prop": "width", - "between": ": ", "value": "10px" }, { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -43,12 +59,17 @@ "column": 21 } }, - "before": "\n ", "prop": "margin", - "between": ": ", "value": "0 @width" }, { + "raw": { + "before": "\n ", + "between": " ", + "afterName": " ", + "semicolon": true, + "after": "\n " + }, "type": "atrule", "name": "mixin", "source": { @@ -67,12 +88,13 @@ "column": 5 } }, - "before": "\n ", - "between": " ", - "afterName": " ", "params": "mobile", "nodes": [ { + "raw": { + "before": "\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -90,14 +112,10 @@ "column": 22 } }, - "before": "\n ", "prop": "height", - "between": ": ", "value": "100px" } - ], - "semicolon": true, - "after": "\n " + ] } ], "type": "rule", @@ -117,11 +135,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": false, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -132,7 +146,5 @@ "file": "/rule-at.css", "from": "/rule-at.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/rule-no-semicolon.json b/test/cases/rule-no-semicolon.json index acb2e43e7..b9ebbd70a 100644 --- a/test/cases/rule-no-semicolon.json +++ b/test/cases/rule-no-semicolon.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": "", + "semicolon": false, + "after": "" + }, "nodes": [ { + "raw": { + "before": "", + "between": ":" + }, "type": "decl", "source": { "start": { @@ -20,9 +34,7 @@ "column": 13 } }, - "before": "", "prop": "color", - "between": ":", "value": "black" } ], @@ -43,11 +55,7 @@ "column": 14 } }, - "before": "", - "between": "", - "selector": "a", - "semicolon": false, - "after": "" + "selector": "a" } ], "type": "root", @@ -58,7 +66,5 @@ "file": "/rule-no-semicolon.css", "from": "/rule-no-semicolon.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/selector.json b/test/cases/selector.json index 187c411be..5682e52a9 100644 --- a/test/cases/selector.json +++ b/test/cases/selector.json @@ -1,6 +1,19 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n", + "between": " ", + "selector": { + "value": "a b", + "raw": "a/* { } */ b" + }, + "after": "" + }, "nodes": [], "type": "rule", "source": { @@ -19,14 +32,7 @@ "column": 15 } }, - "before": "\n", - "between": " ", - "_selector": { - "value": "a b", - "raw": "a/* { } */ b" - }, - "selector": "a b", - "after": "" + "selector": "a b" } ], "type": "root", @@ -37,7 +43,5 @@ "file": "/selector.css", "from": "/selector.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/semicolons.json b/test/cases/semicolons.json index 27d6f2715..8e02ac32f 100644 --- a/test/cases/semicolons.json +++ b/test/cases/semicolons.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": true, + "after": "\n ; ;\n" + }, "nodes": [ { + "raw": { + "before": ";;\n ", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,9 +34,7 @@ "column": 17 } }, - "before": ";;\n ", "prop": "color", - "between": ": ", "value": "black" } ], @@ -43,11 +55,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": true, - "after": "\n ; ;\n" + "selector": "a" } ], "type": "root", @@ -58,7 +66,5 @@ "file": "/semicolons.css", "from": "/semicolons.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/cases/tab.json b/test/cases/tab.json index 97f8b105f..d73a954a2 100644 --- a/test/cases/tab.json +++ b/test/cases/tab.json @@ -1,8 +1,22 @@ { + "raw": { + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "", + "between": " ", + "semicolon": false, + "after": "\n" + }, "nodes": [ { + "raw": { + "before": "\n\t", + "between": ": " + }, "type": "decl", "source": { "start": { @@ -20,9 +34,7 @@ "column": 13 } }, - "before": "\n\t", "prop": "color", - "between": ": ", "value": "black" } ], @@ -43,11 +55,7 @@ "column": 1 } }, - "before": "", - "between": " ", - "selector": "a", - "semicolon": false, - "after": "\n" + "selector": "a" } ], "type": "root", @@ -58,7 +66,5 @@ "file": "/tab.css", "from": "/tab.css" } - }, - "semicolon": false, - "after": "\n" + } } diff --git a/test/container.js b/test/container.js index a4ca22595..41dffc875 100644 --- a/test/container.js +++ b/test/container.js @@ -44,7 +44,7 @@ describe('Container', () => { rule.push(new Declaration({ prop: 'c', value: '3' })); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); expect(rule.nodes.length).to.eql(3); - expect(rule.last).to.not.have.property('before'); + expect(rule.last.raw).to.not.have.property('before'); }); }); @@ -405,7 +405,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); - expect(rule.last.before).to.eql(' '); + expect(rule.last.raw.before).to.eql(' '); }); it('appends multiple children', () => { @@ -481,7 +481,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { c: 3; a: 1; b: 2 }'); - expect(rule.first.before).to.eql(' '); + expect(rule.first.raw.before).to.eql(' '); }); it('prepends multiple children', () => { @@ -532,7 +532,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.insertBefore(1, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); - expect(rule.nodes[1].before).to.eql(' '); + expect(rule.nodes[1].raw.before).to.eql(' '); }); it('works with nodes too', () => { @@ -564,7 +564,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.insertAfter(0, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); - expect(rule.nodes[1].before).to.eql(' '); + expect(rule.nodes[1].raw.before).to.eql(' '); }); it('works with nodes too', () => { @@ -712,7 +712,7 @@ describe('Container', () => { it("doesn't normalize new children with exists before", () => { let rule = parse('a { a: 1; b: 2 }').first; - rule.append({ prop: 'c', value: '3', before: '\n ' }); + rule.append({ prop: 'c', value: '3', raw: { before: '\n ' } }); expect(rule.toString()).to.eql('a { a: 1; b: 2;\n c: 3 }'); }); diff --git a/test/node.js b/test/node.js index 395ee7c18..7eed18dd4 100644 --- a/test/node.js +++ b/test/node.js @@ -78,8 +78,8 @@ describe('Node', () => { describe('clone()', () => { it('clones nodes', () => { - let rule = new Rule({ selector: 'a', after: '' }); - rule.append({ prop: 'color', value: '/**/black', before: '' }); + let rule = new Rule({ selector: 'a' }); + rule.append({ prop: 'color', value: '/**/black' }); let clone = rule.clone(); @@ -112,8 +112,8 @@ describe('Node', () => { describe('cloneBefore()', () => { it('clones and insert before current node', () => { - let rule = new Rule({ selector: 'a', after: '' }); - rule.append({ prop: 'z-index', value: '1', before: '' }); + let rule = new Rule({ selector: 'a', raw: { after: '' } }); + rule.append({ prop: 'z-index', value: '1', raw: { before: '' } }); let result = rule.first.cloneBefore({ value: '2' }); @@ -126,8 +126,8 @@ describe('Node', () => { describe('cloneAfter()', () => { it('clones and insert after current node', () => { - let rule = new Rule({ selector: 'a', after: '' }); - rule.append({ prop: 'z-index', value: '1', before: '' }); + let rule = new Rule({ selector: 'a', raw: { after: '' } }); + rule.append({ prop: 'z-index', value: '1', raw: { before: '' } }); let result = rule.first.cloneAfter({ value: '2' }); @@ -245,8 +245,8 @@ describe('Node', () => { expect(json.nodes[0].parent).to.not.exist; expect(JSON.stringify(rule)).to.eql( - '{"selector":"a","nodes":[' + - '{"prop":"color","value":"b","type":"decl"}' + + '{"raw":{},"selector":"a","nodes":[' + + '{"raw":{},"prop":"color","value":"b","type":"decl"}' + '],"type":"rule"}'); }); @@ -255,7 +255,7 @@ describe('Node', () => { describe('style()', () => { it('uses node style', () => { - let rule = new Rule({ selector: 'a', between: '\n' }); + let rule = new Rule({ selector: 'a', raw: { between: '\n' } }); expect(rule.style('between', 'beforeOpen')).to.eql('\n'); }); @@ -281,7 +281,7 @@ describe('Node', () => { it('detects after style', () => { let root = new Root(); - root.append({ selector: 'a', after: ' ' }); + root.append({ selector: 'a', raw: { after: ' ' } }); root.first.append({ prop: 'color', value: 'black' }); root.append({ selector: 'a' }); expect(root.last.style('after')).to.eql(' '); @@ -300,7 +300,7 @@ describe('Node', () => { it('clones style from first node', () => { let root = new Root(); - root.append( new Rule({ selector: 'a', between: '' }) ); + root.append( new Rule({ selector: 'a', raw: { between: '' } }) ); root.append( new Rule({ selector: 'b' }) ); expect(root.last.style('between', 'beforeOpen')).to.eql(''); @@ -397,11 +397,11 @@ describe('Node', () => { expect(css.toString()) .to.eql('@page {\n a {\n color: black\n }\n}'); - expect(css.first.before).to.not.exist; - expect(css.first.first.firstbefore).to.not.exist; - expect(css.first.between).to.not.exist; - expect(css.first.first.first.between).to.not.exist; - expect(css.first.after).to.not.exist; + expect(css.first.raw.before).to.not.exist; + expect(css.first.first.first.raw.before).to.not.exist; + expect(css.first.raw.between).to.not.exist; + expect(css.first.first.first.raw.between).to.not.exist; + expect(css.first.raw.after).to.not.exist; }); it('keeps between on request', () => { @@ -410,11 +410,11 @@ describe('Node', () => { expect(css.toString()) .to.eql('@page{\n a{\n color:black\n }\n}'); - expect(css.first.before).to.not.exist; - expect(css.first.first.firstbefore).to.not.exist; - expect(css.first.between).to.exist; - expect(css.first.first.first.between).to.exist; - expect(css.first.after).to.not.exist; + expect(css.first.raw.before).to.not.exist; + expect(css.first.first.first.raw.before).to.not.exist; + expect(css.first.raw.between).to.exist; + expect(css.first.first.first.raw.between).to.exist; + expect(css.first.raw.after).to.not.exist; }); }); diff --git a/test/parse.js b/test/parse.js index b006ab262..7ce3c20ef 100644 --- a/test/parse.js +++ b/test/parse.js @@ -20,12 +20,14 @@ describe('postcss.parse()', () => { it('parses UTF-8 BOM', () => { let css = parse('\uFEFF@host { a {\f} }'); - expect(css.first.before).to.eql(''); + expect(css.first.raw.before).to.eql(''); }); it('parses empty file', () => { expect(parse('', { from: 'a.css' })).to.eql(new Root({ - after: '', + raw: { + after: '' + }, source: { input: new Input('', { from: 'a.css' }) } @@ -34,7 +36,9 @@ describe('postcss.parse()', () => { it('parses spaces', () => { expect(parse(' \n', { from: 'a.css' })).to.eql(new Root({ - after: ' \n', + raw: { + after: ' \n' + }, source: { input: new Input(' \n', { from: 'a.css' }) } @@ -118,7 +122,7 @@ describe('postcss.parse()', () => { it('fixes unnecessary block close in safe mode', () => { let root = parse('a {\n} }', { safe: true }); expect(root.first.toString()).to.eql('a {\n}'); - expect(root.after).to.eql(' }'); + expect(root.raw.after).to.eql(' }'); }); it('throws on unclosed comment', () => { @@ -146,7 +150,7 @@ describe('postcss.parse()', () => { }); it('fixes unclosed bracket', () => { - expect(parse(':not(one() { }', { safe: true }).after) + expect(parse(':not(one() { }', { safe: true }).raw.after) .to.eql(':not(one() { }'); }); @@ -158,15 +162,15 @@ describe('postcss.parse()', () => { it('fixes property without value in safe mode', () => { let root = parse('a { color: white; one }', { safe: true }); expect(root.first.nodes.length).to.eql(1); - expect(root.first.semicolon).to.be.true; - expect(root.first.after).to.eql(' one '); + expect(root.first.raw.semicolon).to.be.true; + expect(root.first.raw.after).to.eql(' one '); }); it('fixes 2 properties in safe mode', () => { let root = parse('a { one color: white; one }', { safe: true }); expect(root.first.nodes.length).to.eql(1); expect(root.first.first.prop).to.eql('color'); - expect(root.first.first.before).to.eql(' one '); + expect(root.first.first.raw.before).to.eql(' one '); }); it('throws on nameless at-rule', () => { diff --git a/test/root.js b/test/root.js index b9eeebb05..4550b2283 100644 --- a/test/root.js +++ b/test/root.js @@ -65,8 +65,8 @@ describe('Root', () => { css.insertAfter(0, { selector: '.a' }); css.insertAfter(2, { selector: '.b' }); - expect(css.nodes[1].before).to.not.exist; - expect(css.nodes[3].before).to.eql(' '); + expect(css.nodes[1].raw.before).to.not.exist; + expect(css.nodes[3].raw.before).to.eql(' '); expect(css.toString()).to.eql('a{} .a{} b{} .b{}'); }); diff --git a/test/stringifier.js b/test/stringifier.js index e8691198f..cb6ea292f 100644 --- a/test/stringifier.js +++ b/test/stringifier.js @@ -30,10 +30,8 @@ describe('stringifier', () => { }); it('creates trimmed/raw property', () => { - let b = new Node({ - one: 'trim', - _one: { value: 'trim', raw: 'raw' } - }); + let b = new Node({ one: 'trim' }); + b.raw.one = { value: 'trim', raw: 'raw' }; expect(str.raw(b, 'one')).to.eql('raw'); b.one = 'trim1'; From 137024f2b8985fbb9db34510b71fe57a06401dae Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 29 Jun 2015 07:46:58 +0300 Subject: [PATCH 0492/3047] Fix depreacted getters for raw properties --- lib/at-rule.js | 12 +++++++++++- lib/comment.js | 4 ++-- lib/container.js | 12 +++++++++++- lib/declaration.js | 12 +++++++++++- lib/node.js | 14 ++------------ lib/rule.js | 11 +++++++++++ 6 files changed, 48 insertions(+), 17 deletions(-) diff --git a/lib/at-rule.js b/lib/at-rule.js index b13a3cba6..e86113bee 100644 --- a/lib/at-rule.js +++ b/lib/at-rule.js @@ -35,7 +35,17 @@ export default class AtRule extends Container { set afterName(val) { warnOnce('AtRule#afterName was deprecated. Use AtRule#raw.afterName'); - return this.raw.afterName = val; + this.raw.afterName = val; + } + + get _params() { + warnOnce('AtRule#_params was deprecated. Use AtRule#raw.params'); + return this.raw.params; + } + + set _params(val) { + warnOnce('AtRule#_params was deprecated. Use AtRule#raw.params'); + this.raw.params = val; } } diff --git a/lib/comment.js b/lib/comment.js index b42109937..9ac78bae5 100644 --- a/lib/comment.js +++ b/lib/comment.js @@ -15,7 +15,7 @@ export default class Comment extends Node { set left(val) { warnOnce('Comment#left was deprecated. Use Comment#raw.left'); - return this.raw.left = val; + this.raw.left = val; } get right() { @@ -25,7 +25,7 @@ export default class Comment extends Node { set right(val) { warnOnce('Comment#right was deprecated. Use Comment#raw.right'); - return this.raw.right = val; + this.raw.right = val; } } diff --git a/lib/container.js b/lib/container.js index 0bf87790e..f16c34e5c 100644 --- a/lib/container.js +++ b/lib/container.js @@ -316,7 +316,17 @@ export default class Container extends Node { set semicolon(val) { warnOnce('Node#semicolon was deprecated. Use Node#raw.semicolon'); - return this.raw.semicolon = val; + this.raw.semicolon = val; + } + + get after() { + warnOnce('Node#after was deprecated. Use Node#raw.after'); + return this.raw.after; + } + + set after(val) { + warnOnce('Node#after was deprecated. Use Node#raw.after'); + this.raw.after = val; } } diff --git a/lib/declaration.js b/lib/declaration.js index 1aec515bd..c4faf66b7 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -8,6 +8,16 @@ export default class Declaration extends Node { this.type = 'decl'; } + get _value() { + warnOnce('Node#_value was deprecated. Use Node#raw.value'); + return this.raw.value; + } + + set _value(val) { + warnOnce('Node#_value was deprecated. Use Node#raw.value'); + this.raw.value = val; + } + get _important() { warnOnce('Node#_important was deprecated. Use Node#raw.important'); return this.raw.important; @@ -15,7 +25,7 @@ export default class Declaration extends Node { set _important(val) { warnOnce('Node#_important was deprecated. Use Node#raw.important'); - return this.raw.important = val; + this.raw.important = val; } } diff --git a/lib/node.js b/lib/node.js index dedb62016..d79aa71b5 100644 --- a/lib/node.js +++ b/lib/node.js @@ -364,17 +364,7 @@ export default class Node { set before(val) { warnOnce('Node#before was deprecated. Use Node#raw.before'); - return this.raw.before = val; - } - - get after() { - warnOnce('Node#after was deprecated. Use Node#raw.after'); - return this.raw.after; - } - - set after(val) { - warnOnce('Node#after was deprecated. Use Node#raw.after'); - return this.raw.after = val; + this.raw.before = val; } get between() { @@ -384,7 +374,7 @@ export default class Node { set between(val) { warnOnce('Node#between was deprecated. Use Node#raw.between'); - return this.raw.between = val; + this.raw.between = val; } } diff --git a/lib/rule.js b/lib/rule.js index 1d3e4594e..0c8b1ecf0 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -1,4 +1,5 @@ import Container from './container'; +import warnOnce from './warn-once'; import list from './list'; export default class Rule extends Container { @@ -17,4 +18,14 @@ export default class Rule extends Container { this.selector = values.join(', '); } + get _selector() { + warnOnce('Rule#_selector was deprecated. Use Rule#raw.selector'); + return this.raw.selector; + } + + set _selector(val) { + warnOnce('Rule#_selector was deprecated. Use Rule#raw.selector'); + this.raw.selector = val; + } + } From 3d9a265e0d2dd9843d0c8e5d4613f6594a5e5757 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 29 Jun 2015 07:48:30 +0300 Subject: [PATCH 0493/3047] Typo --- docs/api.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/api.md b/docs/api.md index 513e4446d..2979efee1 100644 --- a/docs/api.md +++ b/docs/api.md @@ -967,7 +967,8 @@ if ( atrule.name == 'add-link' ) { ### `node.raw` -Contains information to stringify node byte-to-byte as it was in origin input. +Contains information to generate byte-to-byte equal node string +as it was in origin input. Every parser saves its own properties, but default CSS parser use: @@ -983,10 +984,10 @@ Every parser saves its own properties, but default CSS parser use: * `important`: the content of important statement, if it is not just `!important`. -PostCSS cleans selectors, declration’s values and at-rule’s parameters from -comments and extra spaces. But PostCSS stores origin content -in `raw` properties. So, if you will not change declration value, PostCSS will -use raw value with comments. +PostCSS cleans selectors, declaration’s values and at-rule’s parameters +from comments and extra spaces. But PostCSS stores origin content +in `raw` properties. So, if you will not change declaration value, +PostCSS will use raw value with comments. ### `node.toString()` From 42dd6ebfcbeac2cbcfac1996eb37ea4021befa00 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Jul 2015 16:31:05 +0300 Subject: [PATCH 0494/3047] Move Node#style to Stringifier --- lib/node.js | 171 +------------------------------------- lib/stringifier.js | 194 +++++++++++++++++++++++++++++++++++++++++--- test/node.js | 110 +------------------------ test/stringifier.js | 131 ++++++++++++++++++++++++++++-- 4 files changed, 312 insertions(+), 294 deletions(-) diff --git a/lib/node.js b/lib/node.js index d79aa71b5..fa255d7bd 100644 --- a/lib/node.js +++ b/lib/node.js @@ -2,20 +2,6 @@ import CssSyntaxError from './css-syntax-error'; import Stringifier from './stringifier'; import warnOnce from './warn-once'; -const defaultStyle = { - colon: ': ', - indent: ' ', - beforeDecl: '\n', - beforeRule: '\n', - beforeOpen: ' ', - beforeClose: '\n', - beforeComment: '\n', - after: '\n', - emptyBody: '', - commentLeft: ' ', - commentRight: ' ' -}; - let cloneNode = function (obj, parent) { let cloned = new obj.constructor(); @@ -169,161 +155,8 @@ export default class Node { } style(own, detect) { - let value; - if ( !detect ) detect = own; - - // Already had - if ( own ) { - value = this.raw[own]; - if ( typeof value !== 'undefined' ) return value; - } - - let parent = this.parent; - - // Hack for first rule in CSS - if ( detect === 'before' ) { - if ( !parent || parent.type === 'root' && parent.first === this ) { - return ''; - } - } - - // Floating child without parent - if ( !parent ) return defaultStyle[detect]; - - // Detect style by other nodes - let root = this.root(); - if ( !root.styleCache ) root.styleCache = { }; - if ( typeof root.styleCache[detect] !== 'undefined' ) { - return root.styleCache[detect]; - } - - if ( detect === 'semicolon' ) { - root.eachInside( (i) => { - if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { - value = i.raw.semicolon; - if ( typeof value !== 'undefined' ) return false; - } - }); - } else if ( detect === 'emptyBody' ) { - root.eachInside( (i) => { - if ( i.nodes && i.nodes.length === 0 ) { - value = i.raw.after; - if ( typeof value !== 'undefined' ) return false; - } - }); - } else if ( detect === 'indent' ) { - root.eachInside( (i) => { - let p = i.parent; - if ( p && p !== root && p.parent && p.parent === root ) { - if ( typeof i.raw.before !== 'undefined' ) { - let parts = i.raw.before.split('\n'); - value = parts[parts.length - 1]; - value = value.replace(/[^\s]/g, ''); - return false; - } - } - }); - } else if ( detect === 'beforeComment' ) { - root.eachComment( (i) => { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; - if ( value.indexOf('\n') !== -1 ) { - value = value.replace(/[^\n]+$/, ''); - } - return false; - } - }); - if ( typeof value === 'undefined' ) { - value = this.style(null, 'beforeDecl'); - } - } else if ( detect === 'beforeDecl' ) { - root.eachDecl( (i) => { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; - if ( value.indexOf('\n') !== -1 ) { - value = value.replace(/[^\n]+$/, ''); - } - return false; - } - }); - if ( typeof value === 'undefined' ) { - value = this.style(null, 'beforeRule'); - } - } else if ( detect === 'beforeRule' ) { - root.eachInside( (i) => { - if ( i.nodes && (i.parent !== root || root.first !== i) ) { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; - if ( value.indexOf('\n') !== -1 ) { - value = value.replace(/[^\n]+$/, ''); - } - return false; - } - } - }); - } else if ( detect === 'beforeClose' ) { - root.eachInside( (i) => { - if ( i.nodes && i.nodes.length > 0 ) { - if ( typeof i.raw.after !== 'undefined' ) { - value = i.raw.after; - if ( value.indexOf('\n') !== -1 ) { - value = value.replace(/[^\n]+$/, ''); - } - return false; - } - } - }); - } else if ( detect === 'before' || detect === 'after' ) { - if ( this.type === 'decl' ) { - value = this.style(null, 'beforeDecl'); - } else if ( this.type === 'comment' ) { - value = this.style(null, 'beforeComment'); - } else if ( detect === 'before' ) { - value = this.style(null, 'beforeRule'); - } else { - value = this.style(null, 'beforeClose'); - } - - let node = this.parent; - let depth = 0; - while ( node && node.type !== 'root' ) { - depth += 1; - node = node.parent; - } - - if ( value.indexOf('\n') !== -1 ) { - let indent = this.style(null, 'indent'); - if ( indent.length ) { - for ( let step = 0; step < depth; step++ ) value += indent; - } - } - - return value; - } else if ( detect === 'colon' ) { - root.eachDecl( (i) => { - if ( typeof i.raw.between !== 'undefined' ) { - value = i.raw.between.replace(/[^\s:]/g, ''); - return false; - } - }); - } else if ( detect === 'beforeOpen' ) { - root.eachInside( (i) => { - if ( i.type !== 'decl' ) { - value = i.raw.between; - if ( typeof value !== 'undefined' ) return false; - } - }); - } else { - root.eachInside( (i) => { - value = i.raw[own]; - if ( typeof value !== 'undefined' ) return false; - }); - } - - if ( typeof value === 'undefined' ) value = defaultStyle[detect]; - - root.styleCache[detect] = value; - return value; + let str = new Stringifier(); + return str.style(this, own, detect); } root() { diff --git a/lib/stringifier.js b/lib/stringifier.js index f329322c3..38774a2ba 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -1,3 +1,17 @@ +const defaultStyle = { + colon: ': ', + indent: ' ', + beforeDecl: '\n', + beforeRule: '\n', + beforeOpen: ' ', + beforeClose: '\n', + beforeComment: '\n', + after: '\n', + emptyBody: '', + commentLeft: ' ', + commentRight: ' ' +}; + export default class Stringifier { constructor(builder) { @@ -14,18 +28,18 @@ export default class Stringifier { } comment(node) { - let before = node.style('before'); + let before = this.style(node, 'before'); if ( before ) this.builder(before); - let left = node.style('left', 'commentLeft'); - let right = node.style('right', 'commentRight'); + let left = this.style(node, 'left', 'commentLeft'); + let right = this.style(node, 'right', 'commentRight'); this.builder('/*' + left + node.text + right + '*/', node); } decl(node, semicolon) { - let before = node.style('before'); + let before = this.style(node, 'before'); if ( before ) this.builder(before); - let between = node.style('between', 'colon'); + let between = this.style(node, 'between', 'colon'); let string = node.prop + between + this.raw(node, 'value'); if ( node.important ) { @@ -54,7 +68,7 @@ export default class Stringifier { this.block(node, name + params); } else { - let before = node.style('before'); + let before = this.style(node, 'before'); if ( before ) this.builder(before); let end = (node.raw.between || '') + (semicolon ? ';' : ''); this.builder(name + params + end, node); @@ -70,31 +84,189 @@ export default class Stringifier { last -= 1; } - let semicolon = node.style('semicolon'); + let semicolon = this.style(node, 'semicolon'); for ( let i = 0; i < node.nodes.length; i++ ) { this.stringify(node.nodes[i], last !== i || semicolon); } } block(node, start) { - let before = node.style('before'); + let before = this.style(node, 'before'); if ( before ) this.builder(before); - let between = node.style('between', 'beforeOpen'); + let between = this.style(node, 'between', 'beforeOpen'); this.builder(start + between + '{', node, 'start'); let after; if ( node.nodes && node.nodes.length ) { this.body(node); - after = node.style('after'); + after = this.style(node, 'after'); } else { - after = node.style('after', 'emptyBody'); + after = this.style(node, 'after', 'emptyBody'); } if ( after ) this.builder(after); this.builder('}', node, 'end'); } + style(node, own, detect) { + let value; + if ( !detect ) detect = own; + + // Already had + if ( own ) { + value = node.raw[own]; + if ( typeof value !== 'undefined' ) return value; + } + + let parent = node.parent; + + // Hack for first rule in CSS + if ( detect === 'before' ) { + if ( !parent || parent.type === 'root' && parent.first === node ) { + return ''; + } + } + + // Floating child without parent + if ( !parent ) return defaultStyle[detect]; + + // Detect style by other nodes + let root = node.root(); + if ( !root.styleCache ) root.styleCache = { }; + if ( typeof root.styleCache[detect] !== 'undefined' ) { + return root.styleCache[detect]; + } + + if ( detect === 'semicolon' ) { + root.eachInside( (i) => { + if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { + value = i.raw.semicolon; + if ( typeof value !== 'undefined' ) return false; + } + }); + } else if ( detect === 'emptyBody' ) { + root.eachInside( (i) => { + if ( i.nodes && i.nodes.length === 0 ) { + value = i.raw.after; + if ( typeof value !== 'undefined' ) return false; + } + }); + } else if ( detect === 'indent' ) { + root.eachInside( (i) => { + let p = i.parent; + if ( p && p !== root && p.parent && p.parent === root ) { + if ( typeof i.raw.before !== 'undefined' ) { + let parts = i.raw.before.split('\n'); + value = parts[parts.length - 1]; + value = value.replace(/[^\s]/g, ''); + return false; + } + } + }); + } else if ( detect === 'beforeComment' ) { + root.eachComment( (i) => { + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; + if ( value.indexOf('\n') !== -1 ) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + }); + if ( typeof value === 'undefined' ) { + value = this.style(node, null, 'beforeDecl'); + } + } else if ( detect === 'beforeDecl' ) { + root.eachDecl( (i) => { + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; + if ( value.indexOf('\n') !== -1 ) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + }); + if ( typeof value === 'undefined' ) { + value = this.style(node, null, 'beforeRule'); + } + } else if ( detect === 'beforeRule' ) { + root.eachInside( (i) => { + if ( i.nodes && (i.parent !== root || root.first !== i) ) { + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; + if ( value.indexOf('\n') !== -1 ) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + } + }); + } else if ( detect === 'beforeClose' ) { + root.eachInside( (i) => { + if ( i.nodes && i.nodes.length > 0 ) { + if ( typeof i.raw.after !== 'undefined' ) { + value = i.raw.after; + if ( value.indexOf('\n') !== -1 ) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + } + }); + } else if ( detect === 'before' || detect === 'after' ) { + if ( node.type === 'decl' ) { + value = this.style(node, null, 'beforeDecl'); + } else if ( node.type === 'comment' ) { + value = this.style(node, null, 'beforeComment'); + } else if ( detect === 'before' ) { + value = this.style(node, null, 'beforeRule'); + } else { + value = this.style(node, null, 'beforeClose'); + } + + let buf = node.parent; + let depth = 0; + while ( buf && buf.type !== 'root' ) { + depth += 1; + buf = buf.parent; + } + + if ( value.indexOf('\n') !== -1 ) { + let indent = this.style(node, null, 'indent'); + if ( indent.length ) { + for ( let step = 0; step < depth; step++ ) value += indent; + } + } + + return value; + } else if ( detect === 'colon' ) { + root.eachDecl( (i) => { + if ( typeof i.raw.between !== 'undefined' ) { + value = i.raw.between.replace(/[^\s:]/g, ''); + return false; + } + }); + } else if ( detect === 'beforeOpen' ) { + root.eachInside( (i) => { + if ( i.type !== 'decl' ) { + value = i.raw.between; + if ( typeof value !== 'undefined' ) return false; + } + }); + } else { + root.eachInside( (i) => { + value = i.raw[own]; + if ( typeof value !== 'undefined' ) return false; + }); + } + + if ( typeof value === 'undefined' ) value = defaultStyle[detect]; + + root.styleCache[detect] = value; + return value; + } + raw(node, prop) { let value = node[prop]; let raw = node.raw[prop]; diff --git a/test/node.js b/test/node.js index 7eed18dd4..878c396ad 100644 --- a/test/node.js +++ b/test/node.js @@ -254,119 +254,11 @@ describe('Node', () => { describe('style()', () => { - it('uses node style', () => { - let rule = new Rule({ selector: 'a', raw: { between: '\n' } }); - expect(rule.style('between', 'beforeOpen')).to.eql('\n'); - }); - - it('hacks before for nodes without parent', () => { + it('has shortcut to stringifier', () => { let rule = new Rule({ selector: 'a' }); expect(rule.style('before')).to.eql(''); }); - it('hacks before for first node', () => { - let root = new Root(); - root.append(new Rule({ selector: 'a' })); - expect(root.first.style('before')).to.eql(''); - }); - - it('hacks before for first decl', () => { - let decl = new Declaration({ prop: 'color', value: 'black' }); - expect(decl.style('before')).to.eql(''); - - let rule = new Rule({ selector: 'a' }); - rule.append(decl); - expect(decl.style('before')).to.eql('\n '); - }); - - it('detects after style', () => { - let root = new Root(); - root.append({ selector: 'a', raw: { after: ' ' } }); - root.first.append({ prop: 'color', value: 'black' }); - root.append({ selector: 'a' }); - expect(root.last.style('after')).to.eql(' '); - }); - - it('uses defaults without parent', () => { - let rule = new Rule({ selector: 'a' }); - expect(rule.style('between', 'beforeOpen')).to.eql(' '); - }); - - it('uses defaults for unique node', () => { - let root = new Root(); - root.append(new Rule({ selector: 'a' })); - expect(root.first.style('between', 'beforeOpen')).to.eql(' '); - }); - - it('clones style from first node', () => { - let root = new Root(); - root.append( new Rule({ selector: 'a', raw: { between: '' } }) ); - root.append( new Rule({ selector: 'b' }) ); - - expect(root.last.style('between', 'beforeOpen')).to.eql(''); - }); - - it('indents by default', () => { - let root = new Root(); - root.append( new AtRule({ name: 'page' }) ); - root.first.append( new Rule({ selector: 'a' }) ); - root.first.first.append({ prop: 'color', value: 'black' }); - - expect(root.toString()).to.eql('@page {\n' + - ' a {\n' + - ' color: black\n' + - ' }\n' + - '}'); - }); - - it('clones indent', () => { - let compress = parse('@page{ a{ } }'); - let spaces = parse('@page {\n a {\n }\n}'); - - compress.first.first.append({ prop: 'color', value: 'black' }); - expect(compress.toString()).to.eql('@page{ a{ color: black } }'); - - spaces.first.first.append({ prop: 'color', value: 'black' }); - expect(spaces.toString()) - .to.eql('@page {\n a {\n color: black\n }\n}'); - }); - - it('clones indent by types', () => { - let css = parse('a {\n color: black\n}\n\nb {\n}'); - css.append(new Rule({ selector: 'em' })); - css.last.append({ prop: 'z-index', value: '1' }); - - expect(css.last.toString()).to.eql('\n\nem {\n z-index: 1\n}'); - }); - - it('clones indent by before and after', () => { - let css = parse('@page{\n\n a{\n color: black}}'); - css.first.append(new Rule({ selector: 'b' })); - css.first.last.append({ prop: 'z-index', value: '1' }); - - expect(css.first.last.toString()).to.eql('\n\n b{\n z-index: 1}'); - }); - - it('clones semicolon only from rules with children', () => { - let css = parse('a{}b{one:1;}'); - expect(css.first.style('semicolon')).to.be.true; - }); - - it('clones only spaces in before', () => { - let css = parse('a{*one:1}'); - css.first.append({ prop: 'two', value: '2' }); - css.append({ name: 'keyframes', params: 'a' }); - css.last.append({ selector: 'from'}); - expect(css.toString()) - .to.eql('a{*one:1;two:2}\n@keyframes a{\nfrom{}}'); - }); - - it('clones only spaces in between', () => { - let css = parse('a{one/**/:1}'); - css.first.append({ prop: 'two', value: '2' }); - expect(css.toString()).to.eql('a{one/**/:1;two:2}'); - }); - }); describe('root()', () => { diff --git a/test/stringifier.js b/test/stringifier.js index cb6ea292f..89cbf91cf 100644 --- a/test/stringifier.js +++ b/test/stringifier.js @@ -1,12 +1,20 @@ import Stringifier from '../lib/stringifier'; -import Node from '../lib/node'; +import Declaration from '../lib/declaration'; +import AtRule from '../lib/at-rule'; import parse from '../lib/parse'; +import Node from '../lib/node'; +import Root from '../lib/root'; +import Rule from '../lib/rule'; import { expect } from 'chai'; import path from 'path'; import fs from 'fs'; describe('stringifier', () => { + let str; + before( () => { + str = new Stringifier(); + }); describe('.stringify()', () => { @@ -24,10 +32,6 @@ describe('stringifier', () => { }); describe('.raw()', () => { - let str; - before( () => { - str = new Stringifier(); - }); it('creates trimmed/raw property', () => { let b = new Node({ one: 'trim' }); @@ -46,4 +50,121 @@ describe('stringifier', () => { }); }); + describe('style()', () => { + + it('uses node style', () => { + let rule = new Rule({ selector: 'a', raw: { between: '\n' } }); + expect(str.style(rule, 'between', 'beforeOpen')).to.eql('\n'); + }); + + it('hacks before for nodes without parent', () => { + let rule = new Rule({ selector: 'a' }); + expect(str.style(rule, 'before')).to.eql(''); + }); + + it('hacks before for first node', () => { + let root = new Root(); + root.append(new Rule({ selector: 'a' })); + expect(str.style(root.first, 'before')).to.eql(''); + }); + + it('hacks before for first decl', () => { + let decl = new Declaration({ prop: 'color', value: 'black' }); + expect(str.style(decl, 'before')).to.eql(''); + + let rule = new Rule({ selector: 'a' }); + rule.append(decl); + expect(str.style(decl, 'before')).to.eql('\n '); + }); + + it('detects after style', () => { + let root = new Root(); + root.append({ selector: 'a', raw: { after: ' ' } }); + root.first.append({ prop: 'color', value: 'black' }); + root.append({ selector: 'a' }); + expect(str.style(root.last, 'after')).to.eql(' '); + }); + + it('uses defaults without parent', () => { + let rule = new Rule({ selector: 'a' }); + expect(str.style(rule, 'between', 'beforeOpen')).to.eql(' '); + }); + + it('uses defaults for unique node', () => { + let root = new Root(); + root.append(new Rule({ selector: 'a' })); + expect(str.style(root.first, 'between', 'beforeOpen')).to.eql(' '); + }); + + it('clones style from first node', () => { + let root = new Root(); + root.append( new Rule({ selector: 'a', raw: { between: '' } }) ); + root.append( new Rule({ selector: 'b' }) ); + + expect(str.style(root.last, 'between', 'beforeOpen')).to.eql(''); + }); + + it('indents by default', () => { + let root = new Root(); + root.append( new AtRule({ name: 'page' }) ); + root.first.append( new Rule({ selector: 'a' }) ); + root.first.first.append({ prop: 'color', value: 'black' }); + + expect(root.toString()).to.eql('@page {\n' + + ' a {\n' + + ' color: black\n' + + ' }\n' + + '}'); + }); + + it('clones indent', () => { + let compress = parse('@page{ a{ } }'); + let spaces = parse('@page {\n a {\n }\n}'); + + compress.first.first.append({ prop: 'color', value: 'black' }); + expect(compress.toString()).to.eql('@page{ a{ color: black } }'); + + spaces.first.first.append({ prop: 'color', value: 'black' }); + expect(spaces.toString()) + .to.eql('@page {\n a {\n color: black\n }\n}'); + }); + + it('clones indent by types', () => { + let css = parse('a {\n color: black\n}\n\nb {\n}'); + css.append(new Rule({ selector: 'em' })); + css.last.append({ prop: 'z-index', value: '1' }); + + expect(css.last.toString()).to.eql('\n\nem {\n z-index: 1\n}'); + }); + + it('clones indent by before and after', () => { + let css = parse('@page{\n\n a{\n color: black}}'); + css.first.append(new Rule({ selector: 'b' })); + css.first.last.append({ prop: 'z-index', value: '1' }); + + expect(css.first.last.toString()).to.eql('\n\n b{\n z-index: 1}'); + }); + + it('clones semicolon only from rules with children', () => { + let css = parse('a{}b{one:1;}'); + expect(str.style(css.first, 'semicolon')).to.be.true; + }); + + it('clones only spaces in before', () => { + let css = parse('a{*one:1}'); + css.first.append({ prop: 'two', value: '2' }); + css.append({ name: 'keyframes', params: 'a' }); + css.last.append({ selector: 'from'}); + expect(css.toString()) + .to.eql('a{*one:1;two:2}\n@keyframes a{\nfrom{}}'); + }); + + it('clones only spaces in between', () => { + let css = parse('a{one/**/:1}'); + css.first.append({ prop: 'two', value: '2' }); + expect(css.toString()).to.eql('a{one/**/:1;two:2}'); + }); + + }); + }); From 877f51b4fe3623f311750ed65138d3b80a2d495b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Jul 2015 17:00:11 +0300 Subject: [PATCH 0495/3047] Split Stringify#style to submethods --- lib/stringifier.js | 248 +++++++++++++++++++++++++++------------------ 1 file changed, 149 insertions(+), 99 deletions(-) diff --git a/lib/stringifier.js b/lib/stringifier.js index 38774a2ba..6d31c6cef 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -12,6 +12,10 @@ const defaultStyle = { commentRight: ' ' }; +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1); +} + export default class Stringifier { constructor(builder) { @@ -138,34 +142,102 @@ export default class Stringifier { return root.styleCache[detect]; } - if ( detect === 'semicolon' ) { - root.eachInside( (i) => { - if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { - value = i.raw.semicolon; + if ( detect === 'before' || detect === 'after' ) { + return this.beforeAfter(node, detect); + } else { + let method = 'style' + capitalize(detect); + if ( this[method] ) { + value = this[method](root, node); + } else { + root.eachInside( (i) => { + value = i.raw[own]; if ( typeof value !== 'undefined' ) return false; + }); + } + } + + if ( typeof value === 'undefined' ) value = defaultStyle[detect]; + + root.styleCache[detect] = value; + return value; + } + + styleSemicolon(root) { + let value; + root.eachInside( (i) => { + if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { + value = i.raw.semicolon; + if ( typeof value !== 'undefined' ) return false; + } + }); + return value; + } + + styleEmptyBody(root) { + let value; + root.eachInside( (i) => { + if ( i.nodes && i.nodes.length === 0 ) { + value = i.raw.after; + if ( typeof value !== 'undefined' ) return false; + } + }); + return value; + } + + styleIndent(root) { + let value; + root.eachInside( (i) => { + let p = i.parent; + if ( p && p !== root && p.parent && p.parent === root ) { + if ( typeof i.raw.before !== 'undefined' ) { + let parts = i.raw.before.split('\n'); + value = parts[parts.length - 1]; + value = value.replace(/[^\s]/g, ''); + return false; } - }); - } else if ( detect === 'emptyBody' ) { - root.eachInside( (i) => { - if ( i.nodes && i.nodes.length === 0 ) { - value = i.raw.after; - if ( typeof value !== 'undefined' ) return false; + } + }); + return value; + } + + styleBeforeComment(root, node) { + let value; + root.eachComment( (i) => { + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; + if ( value.indexOf('\n') !== -1 ) { + value = value.replace(/[^\n]+$/, ''); } - }); - } else if ( detect === 'indent' ) { - root.eachInside( (i) => { - let p = i.parent; - if ( p && p !== root && p.parent && p.parent === root ) { - if ( typeof i.raw.before !== 'undefined' ) { - let parts = i.raw.before.split('\n'); - value = parts[parts.length - 1]; - value = value.replace(/[^\s]/g, ''); - return false; - } + return false; + } + }); + if ( typeof value === 'undefined' ) { + value = this.style(node, null, 'beforeDecl'); + } + return value; + } + + styleBeforeDecl(root, node) { + let value; + root.eachDecl( (i) => { + if ( typeof i.raw.before !== 'undefined' ) { + value = i.raw.before; + if ( value.indexOf('\n') !== -1 ) { + value = value.replace(/[^\n]+$/, ''); } - }); - } else if ( detect === 'beforeComment' ) { - root.eachComment( (i) => { + return false; + } + }); + if ( typeof value === 'undefined' ) { + value = this.style(node, null, 'beforeRule'); + } + return value; + } + + styleBeforeRule(root) { + let value; + root.eachInside( (i) => { + if ( i.nodes && (i.parent !== root || root.first !== i) ) { if ( typeof i.raw.before !== 'undefined' ) { value = i.raw.before; if ( value.indexOf('\n') !== -1 ) { @@ -173,97 +245,75 @@ export default class Stringifier { } return false; } - }); - if ( typeof value === 'undefined' ) { - value = this.style(node, null, 'beforeDecl'); } - } else if ( detect === 'beforeDecl' ) { - root.eachDecl( (i) => { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; + }); + return value; + } + + styleBeforeClose(root) { + let value; + root.eachInside( (i) => { + if ( i.nodes && i.nodes.length > 0 ) { + if ( typeof i.raw.after !== 'undefined' ) { + value = i.raw.after; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } return false; } - }); - if ( typeof value === 'undefined' ) { - value = this.style(node, null, 'beforeRule'); - } - } else if ( detect === 'beforeRule' ) { - root.eachInside( (i) => { - if ( i.nodes && (i.parent !== root || root.first !== i) ) { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; - if ( value.indexOf('\n') !== -1 ) { - value = value.replace(/[^\n]+$/, ''); - } - return false; - } - } - }); - } else if ( detect === 'beforeClose' ) { - root.eachInside( (i) => { - if ( i.nodes && i.nodes.length > 0 ) { - if ( typeof i.raw.after !== 'undefined' ) { - value = i.raw.after; - if ( value.indexOf('\n') !== -1 ) { - value = value.replace(/[^\n]+$/, ''); - } - return false; - } - } - }); - } else if ( detect === 'before' || detect === 'after' ) { - if ( node.type === 'decl' ) { - value = this.style(node, null, 'beforeDecl'); - } else if ( node.type === 'comment' ) { - value = this.style(node, null, 'beforeComment'); - } else if ( detect === 'before' ) { - value = this.style(node, null, 'beforeRule'); - } else { - value = this.style(node, null, 'beforeClose'); } + }); + return value; + } - let buf = node.parent; - let depth = 0; - while ( buf && buf.type !== 'root' ) { - depth += 1; - buf = buf.parent; + styleBeforeOpen(root) { + let value; + root.eachInside( (i) => { + if ( i.type !== 'decl' ) { + value = i.raw.between; + if ( typeof value !== 'undefined' ) return false; } + }); + return value; + } - if ( value.indexOf('\n') !== -1 ) { - let indent = this.style(node, null, 'indent'); - if ( indent.length ) { - for ( let step = 0; step < depth; step++ ) value += indent; - } + styleColon(root) { + let value; + root.eachDecl( (i) => { + if ( typeof i.raw.between !== 'undefined' ) { + value = i.raw.between.replace(/[^\s:]/g, ''); + return false; } + }); + return value; + } - return value; - } else if ( detect === 'colon' ) { - root.eachDecl( (i) => { - if ( typeof i.raw.between !== 'undefined' ) { - value = i.raw.between.replace(/[^\s:]/g, ''); - return false; - } - }); - } else if ( detect === 'beforeOpen' ) { - root.eachInside( (i) => { - if ( i.type !== 'decl' ) { - value = i.raw.between; - if ( typeof value !== 'undefined' ) return false; - } - }); + beforeAfter(node, detect) { + let value; + if ( node.type === 'decl' ) { + value = this.style(node, null, 'beforeDecl'); + } else if ( node.type === 'comment' ) { + value = this.style(node, null, 'beforeComment'); + } else if ( detect === 'before' ) { + value = this.style(node, null, 'beforeRule'); } else { - root.eachInside( (i) => { - value = i.raw[own]; - if ( typeof value !== 'undefined' ) return false; - }); + value = this.style(node, null, 'beforeClose'); } - if ( typeof value === 'undefined' ) value = defaultStyle[detect]; + let buf = node.parent; + let depth = 0; + while ( buf && buf.type !== 'root' ) { + depth += 1; + buf = buf.parent; + } + + if ( value.indexOf('\n') !== -1 ) { + let indent = this.style(node, null, 'indent'); + if ( indent.length ) { + for ( let step = 0; step < depth; step++ ) value += indent; + } + } - root.styleCache[detect] = value; return value; } From fe5acddc4fe989d5ef260b51ab562b6fac72d056 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Jul 2015 17:30:31 +0300 Subject: [PATCH 0496/3047] Add options to change PostCSS syntax --- docs/api.md | 3 +++ lib/lazy-result.js | 15 +++++++++++++-- lib/map-generator.js | 18 ++++++++++-------- lib/node.js | 2 +- test/processor.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 71 insertions(+), 11 deletions(-) diff --git a/docs/api.md b/docs/api.md index 2979efee1..67670f218 100644 --- a/docs/api.md +++ b/docs/api.md @@ -279,6 +279,9 @@ Arguments: because it is used in source map generation and syntax error messages. * `to`: the path where you’ll put the output CSS file. You should always set `to` to generate correct source maps. + * `parser`: function to generate AST by string. + * `stringifier`: class to generate string by AST. + * `syntax`: object with `parser` and `stringifier` properties. * `safe`: enable [Safe Mode], in which PostCSS will try to fix CSS syntax errors. * `map`: an object of [source map options]. diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 30cee9003..1c21ebf53 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -1,4 +1,5 @@ import MapGenerator from './map-generator'; +import Stringifier from './stringifier'; import warnOnce from './warn-once'; import Result from './result'; import parse from './parse'; @@ -25,8 +26,12 @@ export default class LazyResult { opts.map = { prev: css.map }; } } else { + let parser = parse; + if ( opts.syntax ) parser = opts.syntax.parser; + if ( opts.parser ) parser = opts.parser; + try { - root = parse(css, opts); + root = parser(css, opts); } catch (error) { this.error = error; } @@ -199,7 +204,13 @@ export default class LazyResult { this.stringified = true; this.sync(); - let map = new MapGenerator(this.result.root, this.result.opts); + + let opts = this.result.opts; + let str = Stringifier; + if ( opts.syntax ) str = opts.syntax.stringifier; + if ( opts.stringifier ) str = opts.stringifier; + + let map = new MapGenerator(str, this.result.root, this.result.opts); let data = map.generate(); this.result.css = data[0]; this.result.map = data[1]; diff --git a/lib/map-generator.js b/lib/map-generator.js index 080b6208f..90b60e5fe 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -1,15 +1,14 @@ -import Stringifier from './stringifier'; - import { Base64 } from 'js-base64'; import mozilla from 'source-map'; import path from 'path'; export default class { - constructor(root, opts) { - this.root = root; - this.opts = opts; - this.mapOpts = opts.map || { }; + constructor(stringifier, root, opts) { + this.stringifier = stringifier; + this.mapOpts = opts.map || { }; + this.root = root; + this.opts = opts; } isMap() { @@ -230,7 +229,7 @@ export default class { } }; - let str = new Stringifier(builder); + let str = new this.stringifier(builder); str.stringify(this.root); } @@ -240,7 +239,10 @@ export default class { if ( this.isMap() ) { return this.generateMap(); } else { - return [this.root.toString()]; + let result = ''; + let str = new this.stringifier( i => result += i ); + str.stringify(this.root); + return [result]; } } diff --git a/lib/node.js b/lib/node.js index fa255d7bd..d45f105de 100644 --- a/lib/node.js +++ b/lib/node.js @@ -60,7 +60,7 @@ export default class Node { toString() { let result = ''; - let str = new Stringifier( (i) => result += i ); + let str = new Stringifier( i => result += i ); str.stringify(this); return result; } diff --git a/test/processor.js b/test/processor.js index 630799140..8fd0bdcb6 100644 --- a/test/processor.js +++ b/test/processor.js @@ -9,6 +9,16 @@ import { expect } from 'chai'; import sinon from 'sinon'; import path from 'path'; +let parser = () => new Root({ raw: { after: 'ok' } }); +class Str { + constructor(builder) { + this.builder = builder; + } + stringify(node) { + this.builder(node.after + '!'); + } +} + describe('Processor', () => { describe('use()', () => { @@ -340,6 +350,40 @@ describe('Processor', () => { }).catch(done); }); + it('uses custom parsers', (done) => { + let processor = new Processor([]); + processor.process('a{}', { parser: parser }).then( (result) => { + expect(result.css).to.equal('ok'); + done(); + }); + }); + + it('uses custom stringifier', (done) => { + let processor = new Processor([]); + processor.process('a{}', { stringifier: Str }).then( (result) => { + expect(result.css).to.equal('!'); + done(); + }); + }); + + it('uses custom stringifier with source maps', (done) => { + let processor = new Processor([]); + processor.process('a{}', { map: true, stringifier: Str }) + .then( (result) => { + expect(result.css).to.match(/^\!\n\/\*# sourceMap/); + done(); + }); + }); + + it('uses custom syntax', (done) => { + let processor = new Processor([]); + let syntax = { parser: parser, stringifier: Str }; + processor.process('a{}', { syntax: syntax }).then( (result) => { + expect(result.css).to.equal('ok!'); + done(); + }); + }); + }); describe('version', () => { From cb6d0ed5a90dc9ad98f5e47e2e363e248541a56d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 2 Jul 2015 09:28:45 +0300 Subject: [PATCH 0497/3047] Fix linter --- lib/map-generator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 90b60e5fe..23a1ef3a8 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -5,7 +5,7 @@ import path from 'path'; export default class { constructor(stringifier, root, opts) { - this.stringifier = stringifier; + this.Stringifier = stringifier; this.mapOpts = opts.map || { }; this.root = root; this.opts = opts; @@ -229,7 +229,7 @@ export default class { } }; - let str = new this.stringifier(builder); + let str = new this.Stringifier(builder); str.stringify(this.root); } @@ -240,7 +240,7 @@ export default class { return this.generateMap(); } else { let result = ''; - let str = new this.stringifier( i => result += i ); + let str = new this.Stringifier( i => result += i ); str.stringify(this.root); return [result]; } From 583e101e584197a68847b4e83026c2916818b5bb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Jul 2015 12:50:51 +0300 Subject: [PATCH 0498/3047] Accepts a syntax object to parser and stringifier options --- lib/lazy-result.js | 8 +++++--- test/processor.js | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 1c21ebf53..df0e527f0 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -27,8 +27,9 @@ export default class LazyResult { } } else { let parser = parse; - if ( opts.syntax ) parser = opts.syntax.parser; - if ( opts.parser ) parser = opts.parser; + if ( opts.syntax ) parser = opts.syntax.parser; + if ( opts.parser ) parser = opts.parser; + if ( parser.parser ) parser = parser.parser; try { root = parser(css, opts); @@ -207,8 +208,9 @@ export default class LazyResult { let opts = this.result.opts; let str = Stringifier; - if ( opts.syntax ) str = opts.syntax.stringifier; + if ( opts.syntax ) str = opts.syntax.stringifier; if ( opts.stringifier ) str = opts.stringifier; + if ( str.stringifier ) str = str.stringifier; let map = new MapGenerator(str, this.result.root, this.result.opts); let data = map.generate(); diff --git a/test/processor.js b/test/processor.js index 8fd0bdcb6..836a34bb9 100644 --- a/test/processor.js +++ b/test/processor.js @@ -358,6 +358,15 @@ describe('Processor', () => { }); }); + it('uses custom parsers from object', (done) => { + let processor = new Processor([]); + let syntax = { parser: parser, stringifier: Str }; + processor.process('a{}', { parser: syntax }).then( (result) => { + expect(result.css).to.equal('ok'); + done(); + }); + }); + it('uses custom stringifier', (done) => { let processor = new Processor([]); processor.process('a{}', { stringifier: Str }).then( (result) => { @@ -366,6 +375,15 @@ describe('Processor', () => { }); }); + it('uses custom stringifier from object', (done) => { + let processor = new Processor([]); + let syntax = { parser: parser, stringifier: Str }; + processor.process('', { stringifier: syntax }).then( (result) => { + expect(result.css).to.equal('!'); + done(); + }); + }); + it('uses custom stringifier with source maps', (done) => { let processor = new Processor([]); processor.process('a{}', { map: true, stringifier: Str }) From 14c081820949ba84472a9a09d0f24c758f352351 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Wed, 15 Jul 2015 14:10:56 +0100 Subject: [PATCH 0499/3047] Add plugin#process shortcut. Fixes #337. --- docs/api.md | 13 +++++++++++-- lib/postcss.js | 4 ++++ test/postcss.js | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/docs/api.md b/docs/api.md index 67670f218..8b0f90cc8 100644 --- a/docs/api.md +++ b/docs/api.md @@ -103,14 +103,23 @@ Then it should mutate the passed `Root` node. Alternatively, create a new `Root` node and override the `result.root` property. ```js -postcss.plugin('postcss-cleaner', function () { +var cleaner = postcss.plugin('postcss-cleaner', function () { return function (css, result) { result.root = postcss.root(); }; }); ``` -Asynchronous plugins should return `Promise` instance. +Plugins also expose a `process` method as a convenience, so that you can use +them as standalone tools. + +```js +cleaner.process(css, options); +// This is equivalent to: +postcss([ cleaner(options) ]).process(css); +``` + +Asynchronous plugin should return `Promise` instance. ```js postcss.plugin('postcss-import', function () { diff --git a/lib/postcss.js b/lib/postcss.js index 2c61b1067..b4eaccfe9 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -24,6 +24,10 @@ postcss.plugin = function (name, initializer) { }; creator.postcss = creator(); + creator.process = function (css, opts) { + let processor = postcss([ creator(opts) ]); + return processor.process(css, opts); + }; return creator; }; diff --git a/test/postcss.js b/test/postcss.js index a73645a4a..2592d13a1 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -77,6 +77,25 @@ describe('postcss()', () => { expect(result2.css).to.eql('a{ one: 1 }'); }); + it('creates a shortcut to process css', (done) => { + let plugin = postcss.plugin('test', ({str = 'bar'} = {}) => { + return function (css) { + css.eachDecl((decl) => decl.value = str); + }; + }); + + let result1 = plugin.process('a{value:foo}'); + expect(result1.css).to.eql('a{value:bar}'); + + let result2 = plugin.process('a{value:foo}', {str: 'baz'}); + expect(result2.css).to.eql('a{value:baz}'); + + plugin.process('a{value:foo}').then(result => { + expect(result.css).to.eql('a{value:bar}'); + done(); + }); + }); + }); describe('.parse()', () => { From a425e295fd3e0973b25b904dd0dcc9f80c6165f3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 15 Jul 2015 16:29:36 +0300 Subject: [PATCH 0500/3047] Clean up code --- lib/postcss.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/postcss.js b/lib/postcss.js index b4eaccfe9..fdd35c0d0 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -25,8 +25,7 @@ postcss.plugin = function (name, initializer) { creator.postcss = creator(); creator.process = function (css, opts) { - let processor = postcss([ creator(opts) ]); - return processor.process(css, opts); + return postcss([ creator(opts) ]).process(css, opts); }; return creator; }; From 975c81918b85e1133d13b97076d8d7dfdf0bbf74 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Jul 2015 15:59:12 +0300 Subject: [PATCH 0501/3047] Better color support detect --- lib/css-syntax-error.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index c9a6a8189..03e8e8375 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -45,13 +45,7 @@ export default class CssSyntaxError extends SyntaxError { mark += ' '; } - if ( typeof color === 'undefined' && typeof process !== 'undefined' ) { - if ( process.stdout && process.env ) { - color = process.stdout.isTTY && - !process.env.NODE_DISABLE_COLORS; - } - } - + if ( typeof color === 'undefined' ) color = this.colorSupport(); if ( color ) { mark += '\x1B[1;31m^\x1B[0m'; } else { @@ -61,6 +55,18 @@ export default class CssSyntaxError extends SyntaxError { return '\n' + prev + broken + mark + next; } + colorSupport() { + // Tests from https://github.com/chalk/supports-color + if ( typeof process === 'undefined' ) return false; + if ( process.stdout && !process.stdout.isTTY ) return false; + if ( process.platform === 'win32' ) return true; + if ( 'COLORTERM' in process.env ) return true; + if ( process.env.TERM === 'dumb' ) return false; + if ( /^(screen|xterm|vt100)/i.test(process.env.TERM) ) return true; + if ( /color|ansi|cygwin|linux/i.test(process.env.TERM) ) return true; + return false; + } + highlight(color) { warnOnce('CssSyntaxError#highlight is deprecated and will be ' + 'removed in 5.0. Use error.showSourceCode instead.'); From 3237bbc595b3910ef94b3821ee1f760cf3ddd1b5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Jul 2015 17:06:12 +0300 Subject: [PATCH 0502/3047] Use supports-color library --- lib/css-syntax-error.js | 16 +++------------- package.json | 9 +++++---- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 03e8e8375..ce6b6aa0e 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,3 +1,5 @@ +import supportsColor from 'supports-color'; + import warnOnce from './warn-once'; export default class CssSyntaxError extends SyntaxError { @@ -45,7 +47,7 @@ export default class CssSyntaxError extends SyntaxError { mark += ' '; } - if ( typeof color === 'undefined' ) color = this.colorSupport(); + if ( typeof color === 'undefined' ) color = supportsColor; if ( color ) { mark += '\x1B[1;31m^\x1B[0m'; } else { @@ -55,18 +57,6 @@ export default class CssSyntaxError extends SyntaxError { return '\n' + prev + broken + mark + next; } - colorSupport() { - // Tests from https://github.com/chalk/supports-color - if ( typeof process === 'undefined' ) return false; - if ( process.stdout && !process.stdout.isTTY ) return false; - if ( process.platform === 'win32' ) return true; - if ( 'COLORTERM' in process.env ) return true; - if ( process.env.TERM === 'dumb' ) return false; - if ( /^(screen|xterm|vt100)/i.test(process.env.TERM) ) return true; - if ( /color|ansi|cygwin|linux/i.test(process.env.TERM) ) return true; - return false; - } - highlight(color) { warnOnce('CssSyntaxError#highlight is deprecated and will be ' + 'removed in 5.0. Use error.showSourceCode instead.'); diff --git a/package.json b/package.json index 6cc713aa2..a254ca110 100644 --- a/package.json +++ b/package.json @@ -21,10 +21,11 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "es6-promise": "~2.3.0", - "source-map": "~0.4.4", - "js-base64": "~2.1.8", - "babel": "5.6.23" + "supports-color": "~3.0.1", + "es6-promise": "~2.3.0", + "source-map": "~0.4.4", + "js-base64": "~2.1.8", + "babel": "5.6.23" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From dd89367efc44564705356d82fe45c2e25de21ef7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Jul 2015 17:45:43 +0300 Subject: [PATCH 0503/3047] Update supports-color --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a254ca110..368c0a66e 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "supports-color": "~3.0.1", + "supports-color": "~3.1.0", "es6-promise": "~2.3.0", "source-map": "~0.4.4", "js-base64": "~2.1.8", From 805e262ff29ae8fa3ebd3270c306e16b73e799b2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Jul 2015 17:58:12 +0300 Subject: [PATCH 0504/3047] Smarter Rule#selectors --- lib/rule.js | 4 +++- test/rule.js | 20 +++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/rule.js b/lib/rule.js index 0c8b1ecf0..127355cc6 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -15,7 +15,9 @@ export default class Rule extends Container { } set selectors(values) { - this.selector = values.join(', '); + let match = this.selector.match(/,\s*/); + let sep = match ? match[0] : ',' + this.style('between', 'beforeOpen'); + this.selector = values.join(sep); } get _selector() { diff --git a/test/rule.js b/test/rule.js index ed222a3e0..041649de1 100644 --- a/test/rule.js +++ b/test/rule.js @@ -34,11 +34,29 @@ describe('Rule', () => { }); it('receive array', () => { - let rule = new Rule({ selector: 'a,b' }); + let rule = new Rule({ selector: 'i, b' }); rule.selectors = ['em', 'strong']; expect(rule.selector).to.eql('em, strong'); }); + it('saves separator', () => { + let rule = new Rule({ selector: 'i,\nb' }); + rule.selectors = ['em', 'strong']; + expect(rule.selector).to.eql('em,\nstrong'); + }); + + it('uses between to detect separator', () => { + let rule = new Rule({ selector: 'b', raw: { between: '' } }); + rule.selectors = ['b', 'strong']; + expect(rule.selector).to.eql('b,strong'); + }); + + it('uses space in separator be default', () => { + let rule = new Rule({ selector: 'b' }); + rule.selectors = ['b', 'strong']; + expect(rule.selector).to.eql('b, strong'); + }); + }); describe('toString()', () => { From 3d14ec81993998b0a984c975f04e928efd26781c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 19 Jul 2015 01:05:01 +0300 Subject: [PATCH 0505/3047] Clean up code --- lib/container.js | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/lib/container.js b/lib/container.js index f16c34e5c..ab7ac7aac 100644 --- a/lib/container.js +++ b/lib/container.js @@ -136,36 +136,22 @@ export default class Container extends Node { } append(...children) { - for (let child of children) { + for ( let child of children ) { let nodes = this.normalize(child, this.last); - - for (let node of nodes) { - this.nodes.push(node); - } + for ( let node of nodes ) this.nodes.push(node); } - return this; } prepend(...children) { children = children.reverse(); - - for (let child of children) { - let nodes = this.normalize( - child, - this.first, - 'prepend' - ).reverse(); - - for (let node of nodes) { - this.nodes.unshift(node); - } - + for ( let child of children ) { + let nodes = this.normalize(child, this.first, 'prepend').reverse(); + for ( let node of nodes ) this.nodes.unshift(node); for ( let id in this.indexes ) { this.indexes[id] = this.indexes[id] + nodes.length; } } - return this; } From 9a1113fbff9b55d69d4b386cef494d894c94572d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Jul 2015 01:09:32 +0300 Subject: [PATCH 0506/3047] Do not add before spaces to root stringifing --- lib/stringifier.js | 16 ++++------------ test/comment.js | 4 ++-- test/declaration.js | 7 +++---- test/rule.js | 12 +++++------- test/stringifier.js | 6 ++++-- 5 files changed, 18 insertions(+), 27 deletions(-) diff --git a/lib/stringifier.js b/lib/stringifier.js index 6d31c6cef..3e2532ec5 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -32,17 +32,12 @@ export default class Stringifier { } comment(node) { - let before = this.style(node, 'before'); - if ( before ) this.builder(before); let left = this.style(node, 'left', 'commentLeft'); let right = this.style(node, 'right', 'commentRight'); this.builder('/*' + left + node.text + right + '*/', node); } decl(node, semicolon) { - let before = this.style(node, 'before'); - if ( before ) this.builder(before); - let between = this.style(node, 'between', 'colon'); let string = node.prop + between + this.raw(node, 'value'); @@ -70,10 +65,7 @@ export default class Stringifier { if ( node.nodes ) { this.block(node, name + params); - } else { - let before = this.style(node, 'before'); - if ( before ) this.builder(before); let end = (node.raw.between || '') + (semicolon ? ';' : ''); this.builder(name + params + end, node); } @@ -90,14 +82,14 @@ export default class Stringifier { let semicolon = this.style(node, 'semicolon'); for ( let i = 0; i < node.nodes.length; i++ ) { - this.stringify(node.nodes[i], last !== i || semicolon); + let child = node.nodes[i]; + let before = this.style(child, 'before'); + if ( before ) this.builder(before); + this.stringify(child, last !== i || semicolon); } } block(node, start) { - let before = this.style(node, 'before'); - if ( before ) this.builder(before); - let between = this.style(node, 'between', 'beforeOpen'); this.builder(start + between + '{', node, 'start'); diff --git a/test/comment.js b/test/comment.js index 348292b77..46f138889 100644 --- a/test/comment.js +++ b/test/comment.js @@ -12,12 +12,12 @@ describe('Comment', () => { expect(comment.toString()).to.eql('/* hi */'); }); - it('clone spaces from another comment', () => { + it('clones spaces from another comment', () => { let root = parse('a{} /*hello*/'); let comment = new Comment({ text: 'world' }); root.append(comment); - expect(comment.toString()).to.eql(' /*world*/'); + expect(root.toString()).to.eql('a{} /*hello*/ /*world*/'); }); }); diff --git a/test/declaration.js b/test/declaration.js index 8910c6c1a..4ad8dc2fb 100644 --- a/test/declaration.js +++ b/test/declaration.js @@ -29,15 +29,14 @@ describe('Declaration', () => { let decl = new Declaration({ prop: 'color', value: 'black' }); let rule = new Rule({ selector: 'a' }); rule.append(decl); - expect(decl.toString()).to.eql('\n color: black'); + expect(rule.toString()).to.eql('a {\n color: black\n}'); }); - it('clone spaces from another declaration', () => { + it('clones spaces from another declaration', () => { let root = parse('a{color:black}'); let decl = new Declaration({ prop: 'margin', value: '0' }); root.first.append(decl); - - expect(decl.toString()).to.eql('margin:0'); + expect(root.toString()).to.eql('a{color:black;margin:0}'); }); }); diff --git a/test/rule.js b/test/rule.js index 041649de1..fc2fe9c05 100644 --- a/test/rule.js +++ b/test/rule.js @@ -69,22 +69,20 @@ describe('Rule', () => { }); it('clones spaces from another rule', () => { - let root = parse('a{\n }b{\n }'); + let root = parse('b{\n }'); let rule = new Rule({ selector: 'em' }); root.append(rule); - - expect(rule.toString()).to.eql('em{\n }'); + expect(root.toString()).to.eql('b{\n }\nem{\n }'); }); it('uses different spaces for empty rules', () => { - let root = parse('a { }\nb {\n color: black\n}'); + let root = parse('a{}\nb{\n a:1\n}'); let rule = new Rule({ selector: 'em' }); root.append(rule); - - expect(rule.toString()).to.eql('\nem { }'); + expect(root.toString()).to.eql('a{}\nb{\n a:1\n}\nem{}'); rule.append({ prop: 'top', value: '0' }); - expect(rule.toString()).to.eql('\nem {\n top: 0\n}'); + expect(root.toString()).to.eql('a{}\nb{\n a:1\n}\nem{\n top:0\n}'); }); }); diff --git a/test/stringifier.js b/test/stringifier.js index 89cbf91cf..7abcec042 100644 --- a/test/stringifier.js +++ b/test/stringifier.js @@ -134,7 +134,8 @@ describe('stringifier', () => { css.append(new Rule({ selector: 'em' })); css.last.append({ prop: 'z-index', value: '1' }); - expect(css.last.toString()).to.eql('\n\nem {\n z-index: 1\n}'); + expect(css.last.style('before')).to.eql('\n\n'); + expect(css.last.first.style('before')).to.eql('\n '); }); it('clones indent by before and after', () => { @@ -142,7 +143,8 @@ describe('stringifier', () => { css.first.append(new Rule({ selector: 'b' })); css.first.last.append({ prop: 'z-index', value: '1' }); - expect(css.first.last.toString()).to.eql('\n\n b{\n z-index: 1}'); + expect(css.first.last.style('before')).to.eql('\n\n '); + expect(css.first.last.style('after')).to.eql(''); }); it('clones semicolon only from rules with children', () => { From 7cfa8dc4ea7a785f61f94fd6ec72e7e333cf8c43 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Jul 2015 01:10:05 +0300 Subject: [PATCH 0507/3047] Clean up Node#positionInside code --- lib/node.js | 26 ++++++++++++++------------ test/node.js | 19 +++++++++---------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/lib/node.js b/lib/node.js index d45f105de..77592591c 100644 --- a/lib/node.js +++ b/lib/node.js @@ -175,19 +175,21 @@ export default class Node { } } - positionAt(indexRelativeToBefore) { - let index = indexRelativeToBefore - this.before.length; - let start = this.source.start; - let indexLine = start.line; - let startToIndex = this.toString().substr(this.before.length, index); - for ( let i = 0, l = startToIndex.length; i < l; i++ ) { - if (startToIndex[i] === '\n') indexLine += 1; + positionInside(index) { + let string = this.toString(); + let column = this.source.start.column; + let line = this.source.start.line; + + for ( let i = 1; i < index; i++ ) { + if ( string[i] === '\n' ) { + column = 0; + line += 1; + } else { + column += 1; + } } - let startColumn = start.line === indexLine ? start.column : 1; - let lastNewlineToIndex = startToIndex - .slice(startToIndex.lastIndexOf('\n') + 1); - let indexColumn = startColumn + lastNewlineToIndex.length; - return { line: indexLine, column: indexColumn }; + + return { line, column }; } get before() { diff --git a/test/node.js b/test/node.js index 878c396ad..cdebfaf40 100644 --- a/test/node.js +++ b/test/node.js @@ -311,27 +311,26 @@ describe('Node', () => { }); - describe.only('positionAt()', () => { + describe('positionInside()', () => { + it('returns correct position when node starts mid-line', () => { - let css = parse('a { one: 1; }'); + let css = parse('a { one: X }'); let one = css.first.first; - expect(one.positionAt(4).line).to.equal(1); - expect(one.positionAt(4).column).to.equal(8); + expect(one.positionInside(6)).to.eql({ line: 1, column: 11 }); }); it('returns correct position when node.before contains newline', () => { - let css = parse('a {\n one: 1;\n}'); + let css = parse('a {\n one: X}'); let one = css.first.first; - expect(one.positionAt(6).line).to.equal(2); - expect(one.positionAt(6).column).to.equal(6); + expect(one.positionInside(6)).to.eql({ line: 2, column: 8 }); }); it('returns correct position when node contains newlines', () => { - let css = parse('a {\n\tmargin: 1px,\n\t\t2px,\n\t\t3px;\n}'); + let css = parse('a {\n\tone: 1\n\t\tX\n3}'); let one = css.first.first; - expect(one.positionAt(25).line).to.equal(4); - expect(one.positionAt(25).column).to.equal(4); + expect(one.positionInside(10)).to.eql({ line: 3, column: 3 }); }); + }); }); From 615715be68f14277a1e78c9918f449a7348b61e7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Jul 2015 01:34:37 +0300 Subject: [PATCH 0508/3047] Add word option to Node#error --- docs/api.md | 6 ++++-- lib/node.js | 10 ++++++++-- test/node.js | 31 ++++++++++++++++++++++++++++--- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/docs/api.md b/docs/api.md index 8b0f90cc8..d3b4e3fa4 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1023,11 +1023,11 @@ This method produces very useful error messages. ```js if ( !variables[name] ) { - throw decl.error('Unknown variable ' + name); + throw decl.error('Unknown variable ' + name, { word: name }); // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black // a // color: $black - // ^ + // ^ // background: white } ``` @@ -1038,6 +1038,8 @@ Arguments: * `opts (object) optional`: options. * `plugin (string)`: plugin name, that created this error. PostCSS will set it automatically. + * `word (string)`: a word inside a node’s string, that should be highlighted + as source of error. See also [`Result#warn()`] for warnings. diff --git a/lib/node.js b/lib/node.js index 77592591c..10ad8f878 100644 --- a/lib/node.js +++ b/lib/node.js @@ -38,6 +38,12 @@ export default class Node { error(message, opts = { }) { if ( this.source ) { let pos = this.source.start; + if ( opts.index ) { + pos = this.positionInside(opts.index); + } else if ( opts.word ) { + let index = this.toString().indexOf(opts.word); + if ( index !== -1 ) pos = this.positionInside(index); + } return this.source.input.error(message, pos.line, pos.column, opts); } else { return new CssSyntaxError(message); @@ -180,9 +186,9 @@ export default class Node { let column = this.source.start.column; let line = this.source.start.line; - for ( let i = 1; i < index; i++ ) { + for ( let i = 0; i < index; i++ ) { if ( string[i] === '\n' ) { - column = 0; + column = 1; line += 1; } else { column += 1; diff --git a/test/node.js b/test/node.js index cdebfaf40..117ed6364 100644 --- a/test/node.js +++ b/test/node.js @@ -24,6 +24,31 @@ describe('Node', () => { expect(error.message).to.eql(': Test'); }); + it('highlights index', () => { + let root = parse('a { b: c }'); + let error = root.first.first.error('Bad semicolon', { index: 1 }); + expect(error.showSourceCode(false)).to.eql('\n' + + 'a { b: c }\n' + + ' ^'); + }); + + it('highlights word', () => { + let root = parse('a { color: x red }'); + let error = root.first.first.error('Wrong color', { word: 'x' }); + expect(error.showSourceCode(false)).to.eql('\n' + + 'a { color: x red }\n' + + ' ^'); + }); + + it('highlights word in multiline string', () => { + let root = parse('a { color: red\n x }'); + let error = root.first.first.error('Wrong color', { word: 'x' }); + expect(error.showSourceCode(false)).to.eql('\n' + + 'a { color: red\n' + + ' x }\n' + + ' ^'); + }); + }); describe('removeSelf()', () => { @@ -316,19 +341,19 @@ describe('Node', () => { it('returns correct position when node starts mid-line', () => { let css = parse('a { one: X }'); let one = css.first.first; - expect(one.positionInside(6)).to.eql({ line: 1, column: 11 }); + expect(one.positionInside(6)).to.eql({ line: 1, column: 12 }); }); it('returns correct position when node.before contains newline', () => { let css = parse('a {\n one: X}'); let one = css.first.first; - expect(one.positionInside(6)).to.eql({ line: 2, column: 8 }); + expect(one.positionInside(6)).to.eql({ line: 2, column: 9 }); }); it('returns correct position when node contains newlines', () => { let css = parse('a {\n\tone: 1\n\t\tX\n3}'); let one = css.first.first; - expect(one.positionInside(10)).to.eql({ line: 3, column: 3 }); + expect(one.positionInside(10)).to.eql({ line: 3, column: 4 }); }); }); From f6c45c5e964162e161ec09a2516cbdfa78387369 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Jul 2015 01:41:45 +0300 Subject: [PATCH 0509/3047] Clean up code --- lib/warning.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/warning.js b/lib/warning.js index ac5a342b0..de6c3314e 100644 --- a/lib/warning.js +++ b/lib/warning.js @@ -3,9 +3,7 @@ export default class Warning { constructor(text, opts = { }) { this.type = 'warning'; this.text = text; - for ( let opt in opts ) { - this[opt] = opts[opt]; - } + for ( let opt in opts ) this[opt] = opts[opt]; } toString() { From 041b57ee445713f70c898b677a44086f281a94a1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 20 Jul 2015 15:54:32 +0300 Subject: [PATCH 0510/3047] Use babel-core instead of babel --- gulpfile.babel.js | 4 ++-- index.js | 2 +- package.json | 2 +- test/mocha.opts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 14c1b5bb7..f02dbad10 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -31,8 +31,8 @@ gulp.task('build:package', ['clean'], () => { gulp.src('./package.json') .pipe(editor( (p) => { p.main = 'lib/postcss'; - p.devDependencies.babel = p.dependencies.babel; - delete p.dependencies.babel; + p.devDependencies['babel-core'] = p.dependencies['babel-core']; + delete p.dependencies['babel-core']; return p; })) .pipe(gulp.dest('build')); diff --git a/index.js b/index.js index 36439815b..058974efc 100644 --- a/index.js +++ b/index.js @@ -10,7 +10,7 @@ var regexp = ['lib', 'test'].map(function (i) { return '^' + escape(path.join(__dirname, i) + path.sep); }).join('|'); -require('babel/register')({ +require('babel-core/register')({ only: new RegExp('(' + regexp + ')'), ignore: false, loose: 'all' diff --git a/package.json b/package.json index 368c0a66e..e27ef4e2a 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ "supports-color": "~3.1.0", "es6-promise": "~2.3.0", "source-map": "~0.4.4", + "babel-core": "5.7.4", "js-base64": "~2.1.8", - "babel": "5.6.23" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", diff --git a/test/mocha.opts b/test/mocha.opts index 59ef7836a..319595319 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,3 +1,3 @@ --inline-diffs --reporter spec ---require babel/register +--require babel-core/register From 0fde610c9559b8973d01b53949fd7bbcf49568b2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Jul 2015 17:04:21 +0300 Subject: [PATCH 0511/3047] Fix package.json syntax --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e27ef4e2a..d6a7896a9 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "es6-promise": "~2.3.0", "source-map": "~0.4.4", "babel-core": "5.7.4", - "js-base64": "~2.1.8", + "js-base64": "~2.1.8" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From 8f1bda1a1e110bc9328b2f6cec7e4f076ab1eb41 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Jul 2015 17:06:48 +0300 Subject: [PATCH 0512/3047] Update dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d6a7896a9..6718ffa53 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "supports-color": "~3.1.0", "es6-promise": "~2.3.0", "source-map": "~0.4.4", - "babel-core": "5.7.4", + "babel-core": "5.8.5", "js-base64": "~2.1.8" }, "devDependencies": { @@ -36,12 +36,12 @@ "gulp-mocha": "2.1.3", "yaspeller": "2.5.0", "gulp-util": "3.0.6", - "gulp-run": "1.6.8", + "gulp-run": "1.6.10", "fs-extra": "0.22.1", "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", - "chai": "3.1.0" + "chai": "3.2.0" }, "scripts": { "test": "gulp" From 02fd426c50de38cebe138f7ce4d64cedfce695f1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Jul 2015 17:08:32 +0300 Subject: [PATCH 0513/3047] Add postcss.stringify --- lib/postcss.js | 9 +++++---- lib/stringify.js | 6 ++++++ test/postcss.js | 8 ++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 lib/stringify.js diff --git a/lib/postcss.js b/lib/postcss.js index fdd35c0d0..553b6dbea 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -1,5 +1,6 @@ import Declaration from './declaration'; import Processor from './processor'; +import stringify from './stringify'; import Comment from './comment'; import AtRule from './at-rule'; import vendor from './vendor'; @@ -30,11 +31,11 @@ postcss.plugin = function (name, initializer) { return creator; }; -postcss.vendor = vendor; -postcss.parse = parse; - -postcss.list = list; +postcss.stringify = stringify; +postcss.vendor = vendor; +postcss.parse = parse; +postcss.list = list; postcss.comment = function (defaults) { return new Comment(defaults); diff --git a/lib/stringify.js b/lib/stringify.js new file mode 100644 index 000000000..e95192ed3 --- /dev/null +++ b/lib/stringify.js @@ -0,0 +1,6 @@ +import Stringifier from './stringifier'; + +export default function stringify(node, builder) { + let str = new Stringifier(builder); + str.stringify(node); +} diff --git a/test/postcss.js b/test/postcss.js index 2592d13a1..48ca4f286 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -106,6 +106,14 @@ describe('postcss()', () => { }); + describe('.stringify()', () => { + + it('contains stringifier', () => { + expect(postcss.stringify).to.be.a('function'); + }); + + }); + describe('.root()', () => { it('allows to build own CSS', () => { From 2c116fd9330a8d0a4edac67a2bf36562ef766883 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Jul 2015 17:28:23 +0300 Subject: [PATCH 0514/3047] Change custom syntaxes API --- docs/api.md | 6 +++--- lib/lazy-result.js | 16 ++++++++-------- lib/map-generator.js | 24 ++++++++++-------------- lib/node.js | 4 ++-- test/processor.js | 29 ++++++++++++----------------- test/stringifier.js | 20 ++------------------ test/stringify.js | 25 +++++++++++++++++++++++++ 7 files changed, 62 insertions(+), 62 deletions(-) create mode 100644 test/stringify.js diff --git a/docs/api.md b/docs/api.md index d3b4e3fa4..7e57c7f02 100644 --- a/docs/api.md +++ b/docs/api.md @@ -288,9 +288,9 @@ Arguments: because it is used in source map generation and syntax error messages. * `to`: the path where you’ll put the output CSS file. You should always set `to` to generate correct source maps. - * `parser`: function to generate AST by string. - * `stringifier`: class to generate string by AST. - * `syntax`: object with `parser` and `stringifier` properties. + * `parse`: function to generate AST by string. + * `stringify`: class to generate string by AST. + * `syntax`: object with `parse` and `stringify` properties. * `safe`: enable [Safe Mode], in which PostCSS will try to fix CSS syntax errors. * `map`: an object of [source map options]. diff --git a/lib/lazy-result.js b/lib/lazy-result.js index df0e527f0..761d70300 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -1,5 +1,5 @@ import MapGenerator from './map-generator'; -import Stringifier from './stringifier'; +import stringify from './stringify'; import warnOnce from './warn-once'; import Result from './result'; import parse from './parse'; @@ -27,9 +27,9 @@ export default class LazyResult { } } else { let parser = parse; - if ( opts.syntax ) parser = opts.syntax.parser; - if ( opts.parser ) parser = opts.parser; - if ( parser.parser ) parser = parser.parser; + if ( opts.syntax ) parser = opts.syntax.parse; + if ( opts.parse ) parser = opts.parse; + if ( parser.parse ) parser = parser.parse; try { root = parser(css, opts); @@ -207,10 +207,10 @@ export default class LazyResult { this.sync(); let opts = this.result.opts; - let str = Stringifier; - if ( opts.syntax ) str = opts.syntax.stringifier; - if ( opts.stringifier ) str = opts.stringifier; - if ( str.stringifier ) str = str.stringifier; + let str = stringify; + if ( opts.syntax ) str = opts.syntax.stringify; + if ( opts.stringify ) str = opts.stringify; + if ( str.stringify ) str = str.stringify; let map = new MapGenerator(str, this.result.root, this.result.opts); let data = map.generate(); diff --git a/lib/map-generator.js b/lib/map-generator.js index 23a1ef3a8..87fb959d5 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -4,11 +4,11 @@ import path from 'path'; export default class { - constructor(stringifier, root, opts) { - this.Stringifier = stringifier; - this.mapOpts = opts.map || { }; - this.root = root; - this.opts = opts; + constructor(stringify, root, opts) { + this.stringify = stringify; + this.mapOpts = opts.map || { }; + this.root = root; + this.opts = opts; } isMap() { @@ -149,7 +149,7 @@ export default class { } generateMap() { - this.stringify(); + this.generateString(); if ( this.isSourcesContent() ) this.setSourcesContent(); if ( this.previous().length > 0 ) this.applyPrevMaps(); if ( this.isAnnotation() ) this.addAnnotation(); @@ -180,7 +180,7 @@ export default class { return this.relative(node.source.input.from); } - stringify() { + generateString() { this.css = ''; this.map = new mozilla.SourceMapGenerator({ file: this.outputFile() }); @@ -188,7 +188,7 @@ export default class { let column = 1; let lines, last; - let builder = (str, node, type) => { + this.stringify(this.root, (str, node, type) => { this.css += str; if ( node && node.source && node.source.start && type !== 'end' ) { @@ -227,10 +227,7 @@ export default class { } }); } - }; - - let str = new this.Stringifier(builder); - str.stringify(this.root); + }); } generate() { @@ -240,8 +237,7 @@ export default class { return this.generateMap(); } else { let result = ''; - let str = new this.Stringifier( i => result += i ); - str.stringify(this.root); + this.stringify(this.root, i => result += i ); return [result]; } } diff --git a/lib/node.js b/lib/node.js index 10ad8f878..d0143dd50 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,5 +1,6 @@ import CssSyntaxError from './css-syntax-error'; import Stringifier from './stringifier'; +import stringify from './stringify'; import warnOnce from './warn-once'; let cloneNode = function (obj, parent) { @@ -66,8 +67,7 @@ export default class Node { toString() { let result = ''; - let str = new Stringifier( i => result += i ); - str.stringify(this); + stringify(this, i => result += i ); return result; } diff --git a/test/processor.js b/test/processor.js index 836a34bb9..83bc1684f 100644 --- a/test/processor.js +++ b/test/processor.js @@ -9,15 +9,10 @@ import { expect } from 'chai'; import sinon from 'sinon'; import path from 'path'; -let parser = () => new Root({ raw: { after: 'ok' } }); -class Str { - constructor(builder) { - this.builder = builder; - } - stringify(node) { - this.builder(node.after + '!'); - } -} +let prs = () => new Root({ raw: { after: 'ok' } }); +let str = (node, builder) => { + builder(node.after + '!'); +}; describe('Processor', () => { @@ -352,7 +347,7 @@ describe('Processor', () => { it('uses custom parsers', (done) => { let processor = new Processor([]); - processor.process('a{}', { parser: parser }).then( (result) => { + processor.process('a{}', { parse: prs }).then( (result) => { expect(result.css).to.equal('ok'); done(); }); @@ -360,8 +355,8 @@ describe('Processor', () => { it('uses custom parsers from object', (done) => { let processor = new Processor([]); - let syntax = { parser: parser, stringifier: Str }; - processor.process('a{}', { parser: syntax }).then( (result) => { + let syntax = { parse: prs, stringify: str }; + processor.process('a{}', { parse: syntax }).then( (result) => { expect(result.css).to.equal('ok'); done(); }); @@ -369,7 +364,7 @@ describe('Processor', () => { it('uses custom stringifier', (done) => { let processor = new Processor([]); - processor.process('a{}', { stringifier: Str }).then( (result) => { + processor.process('a{}', { stringify: str }).then( (result) => { expect(result.css).to.equal('!'); done(); }); @@ -377,8 +372,8 @@ describe('Processor', () => { it('uses custom stringifier from object', (done) => { let processor = new Processor([]); - let syntax = { parser: parser, stringifier: Str }; - processor.process('', { stringifier: syntax }).then( (result) => { + let syntax = { parse: prs, stringify: str }; + processor.process('', { stringify: syntax }).then( (result) => { expect(result.css).to.equal('!'); done(); }); @@ -386,7 +381,7 @@ describe('Processor', () => { it('uses custom stringifier with source maps', (done) => { let processor = new Processor([]); - processor.process('a{}', { map: true, stringifier: Str }) + processor.process('a{}', { map: true, stringify: str }) .then( (result) => { expect(result.css).to.match(/^\!\n\/\*# sourceMap/); done(); @@ -395,7 +390,7 @@ describe('Processor', () => { it('uses custom syntax', (done) => { let processor = new Processor([]); - let syntax = { parser: parser, stringifier: Str }; + let syntax = { parse: prs, stringify: str }; processor.process('a{}', { syntax: syntax }).then( (result) => { expect(result.css).to.equal('ok!'); done(); diff --git a/test/stringifier.js b/test/stringifier.js index 7abcec042..1d719f4cb 100644 --- a/test/stringifier.js +++ b/test/stringifier.js @@ -7,31 +7,15 @@ import Root from '../lib/root'; import Rule from '../lib/rule'; import { expect } from 'chai'; -import path from 'path'; -import fs from 'fs'; describe('stringifier', () => { + let str; before( () => { str = new Stringifier(); }); - describe('.stringify()', () => { - - fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { - if ( !name.match(/\.css$/) ) return; - - it('stringify ' + name, () => { - let file = path.join(__dirname, 'cases', name); - let css = fs.readFileSync(file).toString(); - let root = parse(css, { from: file }); - expect(root.toString()).to.eql(css); - }); - }); - - }); - - describe('.raw()', () => { + describe('raw()', () => { it('creates trimmed/raw property', () => { let b = new Node({ one: 'trim' }); diff --git a/test/stringify.js b/test/stringify.js new file mode 100644 index 000000000..193b21c74 --- /dev/null +++ b/test/stringify.js @@ -0,0 +1,25 @@ +import stringify from '../lib/stringify'; +import parse from '../lib/parse'; + +import { expect } from 'chai'; +import path from 'path'; +import fs from 'fs'; + +describe('stringify', () => { + + fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { + if ( !name.match(/\.css$/) ) return; + + it('stringifies ' + name, () => { + let file = path.join(__dirname, 'cases', name); + let css = fs.readFileSync(file).toString(); + let root = parse(css, { from: file }); + + let str = '' + stringify(root, i => str += i ); + + expect(str).to.eql(css); + }); + }); + +}); From 566f1a58ef58cd0360a321502f5f3fbbec867d68 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Jul 2015 17:31:06 +0300 Subject: [PATCH 0515/3047] Fix ESLint warning --- test/stringify.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/stringify.js b/test/stringify.js index 193b21c74..b2a4c45b7 100644 --- a/test/stringify.js +++ b/test/stringify.js @@ -15,10 +15,10 @@ describe('stringify', () => { let css = fs.readFileSync(file).toString(); let root = parse(css, { from: file }); - let str = '' - stringify(root, i => str += i ); + let result = ''; + stringify(root, i => result += i ); - expect(str).to.eql(css); + expect(result).to.eql(css); }); }); From ab400d3b1d64fc638be9d0f5906caa183780e71a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 26 Jul 2015 00:48:31 +0300 Subject: [PATCH 0516/3047] Add optional stringifier to Node#toString() --- docs/api.md | 4 ++++ lib/node.js | 5 +++-- test/node.js | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/api.md b/docs/api.md index 7e57c7f02..a167fed9e 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1009,6 +1009,10 @@ Returns a CSS string representing the node. postcss.rule({ selector: 'a' }).toString() //=> 'a {}'' ``` +Arguments: + +* `stringify (functions|object) optional`: a syntax to use in string generation. + ### `node.error(message, opts)` Returns a [`CssSyntaxError`] instance containing the original position diff --git a/lib/node.js b/lib/node.js index d0143dd50..a963de638 100644 --- a/lib/node.js +++ b/lib/node.js @@ -65,9 +65,10 @@ export default class Node { return this; } - toString() { + toString(stringifier = stringify) { + if ( stringifier.stringify ) stringifier = stringifier.stringify; let result = ''; - stringify(this, i => result += i ); + stringifier(this, i => result += i ); return result; } diff --git a/test/node.js b/test/node.js index 117ed6364..b99424bf6 100644 --- a/test/node.js +++ b/test/node.js @@ -100,6 +100,24 @@ describe('Node', () => { }); + describe('toString', () => { + + let rule, str; + before( () => { + rule = new Rule({ selector: 'a' }); + str = (node, builder) => builder(node.selector); + }); + + it('accepts custom stringifier', () => { + expect(rule.toString(str)).to.eql('a'); + }); + + it('accepts custom syntax', () => { + expect(rule.toString({ stringify: str })).to.eql('a'); + }); + + }); + describe('clone()', () => { it('clones nodes', () => { From f7ea7e85262d1986f7d2e1854ca7635ac9e70db0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Jul 2015 14:48:28 +0300 Subject: [PATCH 0517/3047] Use .babelrc --- .babelrc | 4 ++++ gulpfile.babel.js | 2 +- index.js | 3 +-- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 .babelrc diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..9853a7135 --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "loose": "all", + "stage": 0 +} diff --git a/gulpfile.babel.js b/gulpfile.babel.js index f02dbad10..83325f994 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -13,7 +13,7 @@ gulp.task('clean', (done) => { gulp.task('build:lib', ['clean'], () => { let babel = require('gulp-babel'); return gulp.src('lib/*.js') - .pipe(babel({ loose: 'all' })) + .pipe(babel()) .pipe(gulp.dest('build/lib')); }); diff --git a/index.js b/index.js index 058974efc..2b2b85bf5 100644 --- a/index.js +++ b/index.js @@ -12,7 +12,6 @@ var regexp = ['lib', 'test'].map(function (i) { require('babel-core/register')({ only: new RegExp('(' + regexp + ')'), - ignore: false, - loose: 'all' + ignore: false }); module.exports = require('./lib/postcss'); From 87ba8dc66a024e0f10ee320a3fb1b72301601bfe Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Jul 2015 14:54:31 +0300 Subject: [PATCH 0518/3047] Use ES7 syntax to set class properties --- lib/css-syntax-error.js | 4 ++-- lib/postcss.js | 2 +- lib/processor.js | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index ce6b6aa0e..529c6888e 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -4,6 +4,8 @@ import warnOnce from './warn-once'; export default class CssSyntaxError extends SyntaxError { + name = 'CssSyntaxError'; + constructor(message, line, column, source, file, plugin) { super(message); this.reason = message; @@ -76,5 +78,3 @@ export default class CssSyntaxError extends SyntaxError { } } - -CssSyntaxError.prototype.name = 'CssSyntaxError'; diff --git a/lib/postcss.js b/lib/postcss.js index 553b6dbea..3a0a40ac4 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -20,7 +20,7 @@ postcss.plugin = function (name, initializer) { let creator = function () { let transformer = initializer.apply(this, arguments); transformer.postcssPlugin = name; - transformer.postcssVersion = Processor.prototype.version; + transformer.postcssVersion = (new Processor()).version; return transformer; }; diff --git a/lib/processor.js b/lib/processor.js index 09d4a8b5f..70f55097b 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -1,7 +1,10 @@ -import LazyResult from './lazy-result'; +import packageInfo from '../package'; +import LazyResult from './lazy-result'; export default class Processor { + version = packageInfo.version; + constructor(plugins = []) { this.plugins = this.normalize(plugins); } @@ -33,5 +36,3 @@ export default class Processor { } } - -Processor.prototype.version = require('../package').version; From 0849903d9ce9cc1d016696f6987157484201d4ef Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Jul 2015 15:04:19 +0300 Subject: [PATCH 0519/3047] Use babel-eslint to lint ES7 --- .eslintrc | 2 ++ package.json | 1 + 2 files changed, 3 insertions(+) diff --git a/.eslintrc b/.eslintrc index eb4b61c40..78c67969a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,4 +1,5 @@ { + "parser": "babel-eslint", "ecmaFeatures": { "modules": true, "module": true @@ -12,6 +13,7 @@ "no-unused-vars": [2], "no-loop-func": [0], "key-spacing": [0], + "no-empty": [0], "max-len": [2, 80], "strict": [0], "indent": [2], diff --git a/package.json b/package.json index 6718ffa53..772bf9c0f 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", "load-resources": "0.1.0", + "babel-eslint": "4.0.5", "gulp-eslint": "0.15.0", "gulp-babel": "5.1.0", "gulp-mocha": "2.1.3", From c21e4a034389f7f8f8baba7f17752408b787eb76 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 27 Jul 2015 15:05:17 +0300 Subject: [PATCH 0520/3047] Use 2 spaces indent in JSON files --- .eslintrc | 54 ++++++------- .yaspellerrc | 220 +++++++++++++++++++++++++-------------------------- 2 files changed, 137 insertions(+), 137 deletions(-) diff --git a/.eslintrc b/.eslintrc index 78c67969a..4f1e8cd4f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,29 +1,29 @@ { - "parser": "babel-eslint", - "ecmaFeatures": { - "modules": true, - "module": true - }, - "rules": { - "no-unused-expressions": [0], - "no-underscore-dangle": [0], - "no-reserved-keys": [2], - "no-multi-spaces": [0], - "no-extra-parens": [2], - "no-unused-vars": [2], - "no-loop-func": [0], - "key-spacing": [0], - "no-empty": [0], - "max-len": [2, 80], - "strict": [0], - "indent": [2], - "quotes": [2, "single", "avoid-escape"], - "no-var": [2], - "curly": [0] - }, - "env": { - "mocha": true, - "node": true, - "es6": true - } + "parser": "babel-eslint", + "ecmaFeatures": { + "modules": true, + "module": true + }, + "rules": { + "no-unused-expressions": [0], + "no-underscore-dangle": [0], + "no-reserved-keys": [2], + "no-multi-spaces": [0], + "no-extra-parens": [2], + "no-unused-vars": [2], + "no-loop-func": [0], + "key-spacing": [0], + "no-empty": [0], + "max-len": [2, 80], + "strict": [0], + "indent": [2], + "quotes": [2, "single", "avoid-escape"], + "no-var": [2], + "curly": [0] + }, + "env": { + "mocha": true, + "node": true, + "es6": true + } } diff --git a/.yaspellerrc b/.yaspellerrc index 048c679af..2745c6207 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -1,112 +1,112 @@ { - "lang": "en", - "format": "markdown", - "fileExtensions": [".md"], - "excludeFiles": [".git", "node_modules", "build"], - "ignoreCapitalization": true, - "dictionary": [ - "6to5", - "AtCSS", - "Autoprefixer", - "Base64", - "cssnext", - "cssnano", - "Browserhacks", - "CoffeeScript", - "GitHub", - "Traceur", - "PostCSS", - "PostCSS’s", - "postcss", - "Shopify", - "Travis", - "Gofmt", - "CI", - "W3C", - "WebP", - "VK", - "IE8", - "IE9", - "ES6", - "ENB", - "SemVer", - "Sass", - "Sass’s", - "Weibo", - "PreCSS", - "libsass", - "CSSOM", - "Jeet", - "Modernizr", - "npm", - "webpack", - "Amdusias", - "Anton", - "Andres", - "Andromalius", - "Andrealphus", - "Andras", - "Briggs", - "Bogdan", - "Chadkin", - "ClojureWerkz’s", - "Dantalion", - "Decarabia", - "Dvornov", - "Flauros", - "Josiah", - "Lydell", - "Matija", - "Marohnić", - "Maxime", - "Mohammad", - "Nikitenko", - "Savary", - "Seere", - "Suarez", - "Thirouin", - "Peterson", - "Yakushev", - "Younes", - "Cimeies", - "Autodetect", - "autodetect", - "codebases", - "flexbox", - "unprefixes", - "regexp", - "changelog", - "Changelog", - "Transpiler", - "transpiler", - "transpile", - "transpiles", - "transpiling", - "tokenizer", - "linters", - "rebases", - "minifier", - "minifiers", - "mixins", - "mixin", - "multitool", - "io", - "inlined", - "inlines", - "polyfill", - "stylesheet", - "stylesheets", - "stringifier", - "keyframes", - "BEM", - "CLI", - "CSS3", - "CSS4", - "SVG", - "SVGO", - "JS", - "js", - "vs", - "pantone" - ] + "lang": "en", + "format": "markdown", + "fileExtensions": [".md"], + "excludeFiles": [".git", "node_modules", "build"], + "ignoreCapitalization": true, + "dictionary": [ + "6to5", + "AtCSS", + "Autoprefixer", + "Base64", + "cssnext", + "cssnano", + "Browserhacks", + "CoffeeScript", + "GitHub", + "Traceur", + "PostCSS", + "PostCSS’s", + "postcss", + "Shopify", + "Travis", + "Gofmt", + "CI", + "W3C", + "WebP", + "VK", + "IE8", + "IE9", + "ES6", + "ENB", + "SemVer", + "Sass", + "Sass’s", + "Weibo", + "PreCSS", + "libsass", + "CSSOM", + "Jeet", + "Modernizr", + "npm", + "webpack", + "Amdusias", + "Anton", + "Andres", + "Andromalius", + "Andrealphus", + "Andras", + "Briggs", + "Bogdan", + "Chadkin", + "ClojureWerkz’s", + "Dantalion", + "Decarabia", + "Dvornov", + "Flauros", + "Josiah", + "Lydell", + "Matija", + "Marohnić", + "Maxime", + "Mohammad", + "Nikitenko", + "Savary", + "Seere", + "Suarez", + "Thirouin", + "Peterson", + "Yakushev", + "Younes", + "Cimeies", + "Autodetect", + "autodetect", + "codebases", + "flexbox", + "unprefixes", + "regexp", + "changelog", + "Changelog", + "Transpiler", + "transpiler", + "transpile", + "transpiles", + "transpiling", + "tokenizer", + "linters", + "rebases", + "minifier", + "minifiers", + "mixins", + "mixin", + "multitool", + "io", + "inlined", + "inlines", + "polyfill", + "stylesheet", + "stylesheets", + "stringifier", + "keyframes", + "BEM", + "CLI", + "CSS3", + "CSS4", + "SVG", + "SVGO", + "JS", + "js", + "vs", + "pantone" + ] } From d37a7d5583064463e6e0c8b82776d2effd8a567c Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 27 Jul 2015 18:07:19 +0100 Subject: [PATCH 0521/3047] Remove postprocessor keyword. --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 772bf9c0f..3269e1950 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "postcss", "rework", "preprocessor", - "postprocessor", "parser", "source map", "transform", From 669c6f1d9c0770a78f98525eb62151fd1e1d323c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 28 Jul 2015 22:19:22 +0300 Subject: [PATCH 0522/3047] Add postcss.stringify to API docs --- docs/api.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/api.md b/docs/api.md index a167fed9e..9ddc6e1ab 100644 --- a/docs/api.md +++ b/docs/api.md @@ -228,6 +228,10 @@ Contains [List module](#list-module) module. postcss.list.space('5px calc(10% + 5px)') //=> ['5px', 'calc(10% + 5px)'] ``` +### `postcss.stringify(node, builder)` + +Default function to convert nodes tree to CSS string. + ## `Processor` class A `Processor` instance contains plugins to process CSS. Create From b55d4ecb4d61f1c41e349109cccb8350b736ee21 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 29 Jul 2015 02:46:09 +0300 Subject: [PATCH 0523/3047] Start a Custom Syntax docs --- docs/syntax.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 docs/syntax.md diff --git a/docs/syntax.md b/docs/syntax.md new file mode 100644 index 000000000..67c3654ea --- /dev/null +++ b/docs/syntax.md @@ -0,0 +1,78 @@ +# How to Write Custom Syntax + +PostCSS can transform not only CSS. You can write a custom syntax +and transform styles in other format. + +Writing a custom syntax is much harder rathet then writing just +a PostCSS plugin. But it is a awesome adventure. + +You can provide 3 types of package: + +* **Parser** to parse input string to node’s tree. +* **Stringifier** to generate output string by node’s tree. +* **Syntax** contains parser and stringifier. + +## Syntax + +Good example of syntax is SCSS. Some users may want to change properties order +or add prefixes directly to SCSS sources. So we need SCSS input and output. + +Syntax API is very simple. It is just a object with `parse` and `stringify` +functions: + +```js +module.exports = { + parse: require('./parse'), + stringify: require('./stringify') +}; +``` + +## Parser + +Main example of parse is Safe Parser, to parse broken CSS. There is not sense +to generate string with broken CSS, so package should provide only parser. + +Parser API is a function, that receives string and returns `Root` node. + +```js +var postcss = require('postcss'); + +module.exports = function (css) { + var root = postcss.root(); + // Some magic with css + return root; +}; +``` + +TODO parser theory look and current one (copy paste is OK) + +TODO: Node#raws + +TODO: tokenizer and parser + +TODO: perfomance: why, tokenizer is important, plain functions and jumps + +## Stringifier + +Style guide generator is good example of stringifier. It generates output HTML +with usage examples by component styles. + +Stringifier API is little bit more complicated, that parser API. +PostCSS generates source map. So stringifier can’t just return a string. +It must link every string with source node. + +Stringifier is a function, that receives `Root` node and builder callback. +Then it calls builder with every node’s string and this node. + +```js +module.export = function (root, builder) { + // Some magic + var string = decl.prop + ':' + decl.value + ';'; + builder(string, decl); + // Some science +}; +``` + +TODO look and extend current one + +TODO start|end tokens in builder From c7b9e91b7813582581457a39302f53ba66f8072a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 29 Jul 2015 03:01:37 +0300 Subject: [PATCH 0524/3047] Typo --- .yaspellerrc | 1 + docs/syntax.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index 2745c6207..6375f7fec 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -32,6 +32,7 @@ "SemVer", "Sass", "Sass’s", + "SCSS", "Weibo", "PreCSS", "libsass", diff --git a/docs/syntax.md b/docs/syntax.md index 67c3654ea..85aface2e 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -3,7 +3,7 @@ PostCSS can transform not only CSS. You can write a custom syntax and transform styles in other format. -Writing a custom syntax is much harder rathet then writing just +Writing a custom syntax is much harder rather then writing just a PostCSS plugin. But it is a awesome adventure. You can provide 3 types of package: @@ -50,7 +50,7 @@ TODO: Node#raws TODO: tokenizer and parser -TODO: perfomance: why, tokenizer is important, plain functions and jumps +TODO: performance: why, tokenizer is important, plain functions and jumps ## Stringifier From 4f71d14b7e4f72eb5f2aa9bbe8772fb4bb7ffc30 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 1 Aug 2015 18:16:57 +0300 Subject: [PATCH 0525/3047] More TODOs to syntax.md --- docs/syntax.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index 85aface2e..2a0add49c 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -44,7 +44,9 @@ module.exports = function (css) { }; ``` -TODO parser theory look and current one (copy paste is OK) +TODO: parser theory look and current one (copy paste is OK) + +TODO: reuse Parser and tests TODO: Node#raws @@ -73,6 +75,8 @@ module.export = function (root, builder) { }; ``` -TODO look and extend current one +TODO: look and extend current one + +TODO: start|end tokens in builder -TODO start|end tokens in builder +TODO: be ready for nodes without raw or from other parser From 0008b3d4c29bc908046732535f1c08dd2c57c5dc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 00:50:45 +0300 Subject: [PATCH 0526/3047] Move to ESLint 1.0 --- .eslintrc | 139 ++++++++++++++++--- gulpfile.babel.js | 10 +- lib/input.js | 6 +- lib/lazy-result.js | 2 +- lib/list.js | 2 +- lib/map-generator.js | 12 +- lib/parser.js | 52 +++---- lib/tokenize.js | 292 +++++++++++++++++++-------------------- package.json | 8 +- test/container.js | 4 +- test/css-syntax-error.js | 20 +-- test/list.js | 4 +- test/map.js | 84 +++++------ test/postcss.js | 10 +- test/processor.js | 20 +-- test/result.js | 2 +- test/rule.js | 6 +- test/stringifier.js | 2 +- test/tokenize.js | 2 +- test/warning.js | 2 +- 20 files changed, 384 insertions(+), 295 deletions(-) diff --git a/.eslintrc b/.eslintrc index 4f1e8cd4f..05a2de90f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,25 +1,126 @@ { "parser": "babel-eslint", - "ecmaFeatures": { - "modules": true, - "module": true - }, "rules": { - "no-unused-expressions": [0], - "no-underscore-dangle": [0], - "no-reserved-keys": [2], - "no-multi-spaces": [0], - "no-extra-parens": [2], - "no-unused-vars": [2], - "no-loop-func": [0], - "key-spacing": [0], - "no-empty": [0], - "max-len": [2, 80], - "strict": [0], - "indent": [2], - "quotes": [2, "single", "avoid-escape"], - "no-var": [2], - "curly": [0] + "space-before-function-paren": [2, { "named": "never" }], + "no-shadow-restricted-names": [2], + "computed-property-spacing": [2], + "no-empty-character-class": [2], + "no-irregular-whitespace": [2], + "no-unexpected-multiline": [2], + "no-multiple-empty-lines": [2], + "space-return-throw-case": [2], + "no-constant-condition": [2], + "no-extra-boolean-cast": [2], + "no-inner-declarations": [2], + "no-this-before-super": [2], + "no-use-before-define": [2], + "no-array-constructor": [2], + "object-curly-spacing": [2, "always"], + "no-floating-decimal": [2], + "no-warning-comments": [2], + "handle-callback-err": [2], + "no-unneeded-ternary": [2], + "operator-assignment": [2], + "space-before-blocks": [2], + "no-native-reassign": [2], + "no-trailing-spaces": [2], + "operator-linebreak": [2, "after"], + "consistent-return": [2], + "no-duplicate-case": [2], + "no-invalid-regexp": [2], + "no-negated-in-lhs": [2], + "constructor-super": [2], + "no-nested-ternary": [2], + "no-extend-native": [2], + "block-scoped-var": [2], + "no-control-regex": [2], + "no-sparse-arrays": [2], + "no-throw-literal": [2], + "no-return-assign": [2], + "object-shorthand": [2], + "no-const-assign": [2], + "no-class-assign": [2], + "no-extra-parens": [2], + "no-regex-spaces": [2], + "no-implied-eval": [2], + "no-useless-call": [2], + "no-self-compare": [2], + "no-octal-escape": [2], + "no-new-wrappers": [2], + "no-process-exit": [2], + "no-catch-shadow": [2], + "linebreak-style": [2], + "space-infix-ops": [2], + "space-unary-ops": [2], + "no-cond-assign": [2], + "no-func-assign": [2], + "no-unreachable": [2], + "accessor-pairs": [2], + "no-empty-label": [2], + "no-fallthrough": [2], + "no-path-concat": [2], + "no-new-require": [2], + "no-spaced-func": [2], + "no-unused-vars": [2], + "spaced-comment": [2], + "no-delete-var": [2], + "comma-spacing": [2], + "no-extra-semi": [2], + "no-extra-bind": [2], + "arrow-spacing": [2], + "prefer-spread": [2], + "no-new-object": [2], + "no-multi-str": [2], + "semi-spacing": [2], + "no-lonely-if": [2], + "dot-notation": [2], + "dot-location": [2, "property"], + "comma-dangle": [2, "never"], + "no-dupe-args": [2], + "no-dupe-keys": [2], + "no-ex-assign": [2], + "no-obj-calls": [2], + "valid-typeof": [2], + "default-case": [2], + "no-redeclare": [2], + "no-div-regex": [2], + "no-sequences": [2], + "no-label-var": [2], + "comma-style": [2], + "brace-style": [2], + "no-debugger": [2], + "quote-props": [2, "as-needed"], + "no-iterator": [2], + "no-new-func": [2], + "key-spacing": [2, { "align": "value" }], + "complexity": [2], + "new-parens": [2], + "no-eq-null": [2], + "no-bitwise": [2], + "wrap-iife": [2], + "no-caller": [2], + "use-isnan": [2], + "no-labels": [2], + "no-shadow": [2], + "camelcase": [2], + "eol-last": [2], + "no-octal": [2], + "no-empty": [2], + "no-alert": [2], + "no-proto": [2], + "no-undef": [2], + "no-eval": [2], + "no-with": [2], + "no-void": [2], + "max-len": [2, 80], + "new-cap": [2], + "eqeqeq": [2], + "no-new": [2], + "quotes": [2, "single"], + "no-var": [2], + "indent": [2, 4], + "semi": [2, "always"], + "yoda": [2, "never"] }, "env": { "mocha": true, diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 83325f994..243a41a82 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -73,10 +73,8 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { let error = (url, message) => { gutil.log(gutil.colors.red('Fail on ' + url)); - done(new gutil.PluginError('integration', { - showStack: false, - message: message - })); + done(new gutil.PluginError( + 'integration', { showStack: false, message })); }; let sites = { @@ -93,8 +91,8 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { load(urls, '.css', (css, url, last) => { postcss().process(css, { - map: { annotation: false }, - safe: url.match('browserhacks.com') + map: { annotation: false }, + safe: url.match('browserhacks.com') }).catch( (e) => { fs.writeFileSync('fail.css', css); diff --git a/lib/input.js b/lib/input.js index 7e8a407d8..deea735dc 100644 --- a/lib/input.js +++ b/lib/input.js @@ -47,11 +47,7 @@ export default class Input { this.css, this.file, opts.plugin); } - error.generated = { - line: line, - column: column, - source: this.css - }; + error.generated = { line, column, source: this.css }; if ( this.file ) error.generated.file = this.file; return error; diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 761d70300..daa47b12d 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -101,7 +101,7 @@ export default class LazyResult { } } } catch (err) { - // Prevent hiding events because of error in error handler + if ( console && console.error ) console.error(err); } } diff --git a/lib/list.js b/lib/list.js index ef5671ce2..484736c13 100644 --- a/lib/list.js +++ b/lib/list.js @@ -20,7 +20,7 @@ let list = { } else if ( letter === quote ) { quote = false; } - } else if ( letter === '"' || letter === "'" ) { + } else if ( letter === '"' || letter === '\'' ) { quote = letter; } else if ( letter === '(' ) { func += 1; diff --git a/lib/map-generator.js b/lib/map-generator.js index 87fb959d5..8600613ae 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -198,10 +198,7 @@ export default class { line: node.source.start.line, column: node.source.start.column - 1 }, - generated: { - line: line, - column: column - 1 - } + generated: { line, column: column - 1 } }); } @@ -211,7 +208,7 @@ export default class { last = str.lastIndexOf('\n'); column = str.length - last; } else { - column = column + str.length; + column += str.length; } if ( node && node.source && node.source.end && type !== 'start' ) { @@ -221,10 +218,7 @@ export default class { line: node.source.end.line, column: node.source.end.column }, - generated: { - line: line, - column: column - 1 - } + generated: { line, column: column - 1 } }); } }); diff --git a/lib/parser.js b/lib/parser.js index 308d95903..1c48a7f8e 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -16,7 +16,7 @@ export default class Parser { this.spaces = ''; this.semicolon = false; - this.root.source = { input: input }; + this.root.source = { input }; if ( input.map ) this.root.prevMap = input.map; } @@ -30,30 +30,30 @@ export default class Parser { token = this.tokens[this.pos]; switch ( token[0] ) { - case 'word': - case ':': - this.word(token); - break; + case 'word': + case ':': + this.word(token); + break; - case '}': - this.end(token); - break; + case '}': + this.end(token); + break; - case 'comment': - this.comment(token); - break; + case 'comment': + this.comment(token); + break; - case 'at-word': - this.atrule(token); - break; + case 'at-word': + this.atrule(token); + break; - case '{': - this.emptyRule(token); - break; + case '{': + this.emptyRule(token); + break; - default: - this.spaces += token[1]; - break; + default: + this.spaces += token[1]; + break; } this.pos += 1; @@ -123,8 +123,8 @@ export default class Parser { end = true; break; - } else { - if ( type === ':' ) colon = true; + } else if ( type === ':' ) { + colon = true; } } else if ( type === ')' ) { @@ -177,7 +177,7 @@ export default class Parser { let node = new Declaration(); this.init(node); - let last = tokens[ tokens.length - 1 ]; + let last = tokens[tokens.length - 1]; if ( last[0] === ';' ) { this.semicolon = true; tokens.pop(); @@ -299,7 +299,7 @@ export default class Parser { node.raw.afterName = this.spacesFromStart(params); this.raw(node, 'params', params); if ( last ) { - token = params[ params.length - 1 ]; + token = params[params.length - 1]; node.source.end = { line: token[4], column: token[5] }; this.spaces = node.raw.between; node.raw.between = ''; @@ -444,7 +444,7 @@ export default class Parser { if ( !clean ) { let origin = ''; for ( token of tokens ) origin += token[1]; - node.raw[prop] = { value: value, raw: origin }; + node.raw[prop] = { value, raw: origin }; } node[prop] = value; } @@ -453,7 +453,7 @@ export default class Parser { let next; let spaces = ''; while ( tokens.length ) { - next = tokens[ tokens.length - 1 ][0]; + next = tokens[tokens.length - 1][0]; if ( next !== 'space' && next !== 'comment' ) break; spaces += tokens.pop()[1]; } diff --git a/lib/tokenize.js b/lib/tokenize.js index 905170a6e..5b74328ec 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -49,168 +49,168 @@ export default function tokenize(input) { } switch ( code ) { - case NEWLINE: - case SPACE: - case TAB: - case CR: - case FEED: - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - if ( code === NEWLINE ) { - offset = next; - line += 1; - } - } while ( code === SPACE || - code === NEWLINE || - code === TAB || - code === CR || - code === FEED ); - - tokens.push(['space', css.slice(pos, next)]); - pos = next - 1; - break; - - case OPEN_CURLY: - tokens.push(['{', '{', line, pos - offset]); - break; - - case CLOSE_CURLY: - tokens.push(['}', '}', line, pos - offset]); - break; - - case COLON: - tokens.push([':', ':', line, pos - offset]); - break; - - case SEMICOLON: - tokens.push([';', ';', line, pos - offset]); - break; - - case OPEN_PARENTHESES: - next = css.indexOf(')', pos + 1); - content = css.slice(pos, next + 1); - - if ( next === -1 || RE_BAD_BRACKET.test(content) ) { - tokens.push(['(', '(', line, pos - offset]); - } else { - tokens.push(['brackets', content, - line, pos - offset, - line, next - offset - ]); - pos = next; + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: + next = pos; + do { + next += 1; + code = css.charCodeAt(next); + if ( code === NEWLINE ) { + offset = next; + line += 1; } - - break; - - case CLOSE_PARENTHESES: - tokens.push([')', ')', line, pos - offset]); - break; - - case SINGLE_QUOTE: - case DOUBLE_QUOTE: - quote = code === SINGLE_QUOTE ? "'" : '"'; - next = pos; - do { - escaped = false; - next = css.indexOf(quote, next + 1); - if ( next === -1 ) unclosed('quote', quote); - escapePos = next; - while ( css.charCodeAt(escapePos - 1) === BACKSLASH ) { - escapePos -= 1; - escaped = !escaped; - } - } while ( escaped ); - - tokens.push(['string', css.slice(pos, next + 1), + } while ( code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED ); + + tokens.push(['space', css.slice(pos, next)]); + pos = next - 1; + break; + + case OPEN_CURLY: + tokens.push(['{', '{', line, pos - offset]); + break; + + case CLOSE_CURLY: + tokens.push(['}', '}', line, pos - offset]); + break; + + case COLON: + tokens.push([':', ':', line, pos - offset]); + break; + + case SEMICOLON: + tokens.push([';', ';', line, pos - offset]); + break; + + case OPEN_PARENTHESES: + next = css.indexOf(')', pos + 1); + content = css.slice(pos, next + 1); + + if ( next === -1 || RE_BAD_BRACKET.test(content) ) { + tokens.push(['(', '(', line, pos - offset]); + } else { + tokens.push(['brackets', content, line, pos - offset, line, next - offset ]); pos = next; - break; + } + + break; + + case CLOSE_PARENTHESES: + tokens.push([')', ')', line, pos - offset]); + break; + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: + quote = code === SINGLE_QUOTE ? '\'' : '"'; + next = pos; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if ( next === -1 ) unclosed('quote', quote); + escapePos = next; + while ( css.charCodeAt(escapePos - 1) === BACKSLASH ) { + escapePos -= 1; + escaped = !escaped; + } + } while ( escaped ); + + tokens.push(['string', css.slice(pos, next + 1), + line, pos - offset, + line, next - offset + ]); + pos = next; + break; + + case AT: + RE_AT_END.lastIndex = pos + 1; + RE_AT_END.test(css); + if ( RE_AT_END.lastIndex === 0 ) { + next = css.length - 1; + } else { + next = RE_AT_END.lastIndex - 2; + } + tokens.push(['at-word', css.slice(pos, next + 1), + line, pos - offset, + line, next - offset + ]); + pos = next; + break; + + case BACKSLASH: + next = pos; + escape = true; + while ( css.charCodeAt(next + 1) === BACKSLASH ) { + next += 1; + escape = !escape; + } + code = css.charCodeAt(next + 1); + if ( escape && (code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED ) ) { + next += 1; + } + tokens.push(['word', css.slice(pos, next + 1), + line, pos - offset, + line, next - offset + ]); + pos = next; + break; + + default: + if ( code === SLASH && css.charCodeAt(pos + 1) === ASTERICK ) { + next = css.indexOf('*/', pos + 2) + 1; + if ( next === 0 ) unclosed('comment', '*/'); - case AT: - RE_AT_END.lastIndex = pos + 1; - RE_AT_END.test(css); - if ( RE_AT_END.lastIndex === 0 ) { - next = css.length - 1; + content = css.slice(pos, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + + if ( last > 0 ) { + nextLine = line + last; + nextOffset = next - lines[last].length; } else { - next = RE_AT_END.lastIndex - 2; + nextLine = line; + nextOffset = offset; } - tokens.push(['at-word', css.slice(pos, next + 1), - line, pos - offset, - line, next - offset + + tokens.push(['comment', content, + line, pos - offset, + nextLine, next - nextOffset ]); - pos = next; - break; - - case BACKSLASH: - next = pos; - escape = true; - while ( css.charCodeAt(next + 1) === BACKSLASH ) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if ( escape && (code !== SLASH && - code !== SPACE && - code !== NEWLINE && - code !== TAB && - code !== CR && - code !== FEED ) ) { - next += 1; + + offset = nextOffset; + line = nextLine; + pos = next; + + } else { + RE_WORD_END.lastIndex = pos + 1; + RE_WORD_END.test(css); + if ( RE_WORD_END.lastIndex === 0 ) { + next = css.length - 1; + } else { + next = RE_WORD_END.lastIndex - 2; } + tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset ]); pos = next; - break; - - default: - if ( code === SLASH && css.charCodeAt(pos + 1) === ASTERICK ) { - next = css.indexOf('*/', pos + 2) + 1; - if ( next === 0 ) unclosed('comment', '*/'); - - content = css.slice(pos, next + 1); - lines = content.split('\n'); - last = lines.length - 1; - - if ( last > 0 ) { - nextLine = line + last; - nextOffset = next - lines[last].length; - } else { - nextLine = line; - nextOffset = offset; - } - - tokens.push(['comment', content, - line, pos - offset, - nextLine, next - nextOffset - ]); - - offset = nextOffset; - line = nextLine; - pos = next; - - } else { - RE_WORD_END.lastIndex = pos + 1; - RE_WORD_END.test(css); - if ( RE_WORD_END.lastIndex === 0 ) { - next = css.length - 1; - } else { - next = RE_WORD_END.lastIndex - 2; - } - - tokens.push(['word', css.slice(pos, next + 1), - line, pos - offset, - line, next - offset - ]); - pos = next; - } + } - break; + break; } pos++; diff --git a/package.json b/package.json index 3269e1950..3a61b211f 100644 --- a/package.json +++ b/package.json @@ -23,16 +23,16 @@ "supports-color": "~3.1.0", "es6-promise": "~2.3.0", "source-map": "~0.4.4", - "babel-core": "5.8.5", - "js-base64": "~2.1.8" + "babel-core": "5.8.20", + "js-base64": "~2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", "gulp-json-editor": "2.2.1", "load-resources": "0.1.0", "babel-eslint": "4.0.5", - "gulp-eslint": "0.15.0", - "gulp-babel": "5.1.0", + "gulp-eslint": "1.0.0", + "gulp-babel": "5.2.0", "gulp-mocha": "2.1.3", "yaspeller": "2.5.0", "gulp-util": "3.0.6", diff --git a/test/container.js b/test/container.js index 41dffc875..65cd184b5 100644 --- a/test/container.js +++ b/test/container.js @@ -25,7 +25,7 @@ describe('Container', () => { it('throws error on declaration without value', () => { expect( () => { - (new Rule()).append({prop: 'color', vlaue: 'black' }); + (new Rule()).append({ prop: 'color', vlaue: 'black' }); }).to.throw(/Value field is missed/); }); @@ -710,7 +710,7 @@ describe('Container', () => { describe('normalize()', () => { - it("doesn't normalize new children with exists before", () => { + it('does not normalize new children with exists before', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3', raw: { before: '\n ' } }); expect(rule.toString()).to.eql('a { a: 1; b: 2;\n c: 3 }'); diff --git a/test/css-syntax-error.js b/test/css-syntax-error.js index 163195060..55656aef4 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.js @@ -81,7 +81,7 @@ describe('CssSyntaxError', () => { let error = parseError(concat.content, { from: 'build/all.css', - map: { prev: concat.sourceMap } + map: { prev: concat.sourceMap } }); expect(error.file).to.eql(path.resolve('b.css')); @@ -89,9 +89,9 @@ describe('CssSyntaxError', () => { expect(error.source).to.not.exist; expect(error.generated).to.eql({ - file: path.resolve('build/all.css'), - line: 3, - column: 1, + file: path.resolve('build/all.css'), + line: 3, + column: 1, source: 'a { }\n\nb {\n' }); }); @@ -99,11 +99,11 @@ describe('CssSyntaxError', () => { it('does not uses wrong source map', () => { let error = parseError('a { }\nb {', { from: 'build/all.css', - map: { + map: { prev: { - version: 3, - file: 'build/all.css', - sources: ['a.css', 'b.css'], + version: 3, + file: 'build/all.css', + sources: ['a.css', 'b.css'], mappings: 'A' } } @@ -130,7 +130,7 @@ describe('CssSyntaxError', () => { expect(error.plugin).to.eql('test-plugin'); expect(error.toString()).to.match(/test-plugin/); done(); - }).catch( (error) => done(error) ); + }).catch(done); }); it('set plugin automatically in async', (done) => { @@ -146,7 +146,7 @@ describe('CssSyntaxError', () => { if ( error.name !== 'CssSyntaxError' ) throw error; expect(error.plugin).to.eql('async-plugin'); done(); - }).catch( (error) => done(error) ); + }).catch(done); }); }); diff --git a/test/list.js b/test/list.js index 4dfad1483..2b5928f38 100644 --- a/test/list.js +++ b/test/list.js @@ -15,7 +15,7 @@ describe('list', () => { }); it('checks quotes', () => { - expect(list.space('"a b\\"" \'\'')).to.eql(['"a b\\""', "''"]); + expect(list.space('"a b\\"" \'\'')).to.eql(['"a b\\""', '\'\'']); }); it('checks functions', () => { @@ -40,7 +40,7 @@ describe('list', () => { }); it('checks quotes', () => { - expect(list.comma('"a,b\\"", \'\'')).to.eql(['"a,b\\""', "''"]); + expect(list.comma('"a,b\\"", \'\'')).to.eql(['"a,b\\""', '\'\'']); }); it('checks functions', () => { diff --git a/test/map.js b/test/map.js index 238940513..a5587ed2a 100644 --- a/test/map.js +++ b/test/map.js @@ -82,13 +82,13 @@ describe('source maps', () => { let doubled = doubler.process(css, { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); let lighted = lighter.process(doubled.css, { from: 'b.css', to: 'c.css', - map: { prev: doubled.map } + map: { prev: doubled.map } }); let map = consumer(lighted.map); @@ -105,7 +105,7 @@ describe('source maps', () => { let result = postcss().process(css, { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); @@ -116,7 +116,7 @@ describe('source maps', () => { let result = postcss().process(css, { from: 'a.css', to: 'b.css', - map: { annotation: false } + map: { annotation: false } }); expect(result.css).to.eql(css); @@ -128,13 +128,13 @@ describe('source maps', () => { let step1 = postcss().process(css, { from: 'a.css', to: 'b.css', - map: { annotation: false } + map: { annotation: false } }); let step2 = postcss().process(step1.css, { from: 'b.css', to: 'c.css', - map: { prev: step1.map } + map: { prev: step1.map } }); expect(step2.css).to.eql(css); @@ -144,7 +144,7 @@ describe('source maps', () => { let result = postcss().process('a { }', { from: 'source/a.css', to: 'build/b.css', - map: { annotation: 'maps/b.map' } + map: { annotation: 'maps/b.map' } }); expect(result.css).to.eql('a { }\n/*# sourceMappingURL=maps/b.map */'); @@ -161,16 +161,16 @@ describe('source maps', () => { let inline = postcss().process(css, { from: 'a.css', to: 'b.css', - map: { inline: true } + map: { inline: true } }); expect(inline.map).to.not.exist; expect(inline.css).to.match(/# sourceMappingURL=data:/); let separated = postcss().process(css, { - from: 'a.css', - to: 'b.css', - map: { inline: false } + from: 'a.css', + to: 'b.css', + map: { inline: false } }); let base64 = new Buffer(separated.map.toString()).toString('base64'); @@ -181,7 +181,7 @@ describe('source maps', () => { let inline = postcss().process('a { }', { from: 'a.css', to: 'b.css', - map: true + map: true }); expect(inline.css).to.match(/# sourceMappingURL=data:/); @@ -191,12 +191,12 @@ describe('source maps', () => { let step1 = doubler.process('a { color: black }', { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); let step2 = lighter.process(step1.css, { from: 'b.css', to: 'c.css', - map: { prev: step1.map } + map: { prev: step1.map } }); expect(step2.map).to.exist; @@ -206,7 +206,7 @@ describe('source maps', () => { let result = postcss().process('a { }', { from: 'a.css', to: 'b.css', - map: { annotation: false } + map: { annotation: false } }); expect(result.map).to.exist; @@ -216,13 +216,13 @@ describe('source maps', () => { let step1 = postcss().process('a { }', { from: 'a.css', to: 'b.css', - map: { inline: true } + map: { inline: true } }); let step2 = postcss().process(step1.css, { from: 'b.css', to: 'c.css', - map: { inline: false } + map: { inline: false } }); expect(step2).to.have.property('map'); @@ -234,14 +234,14 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'a.css', - to: file, - map: true + to: file, + map: true }); fs.outputFileSync(file + '.map', step1.map); let step2 = lighter.process(step1.css, { from: file, - to: 'b.css', + to: 'b.css', map: false }); @@ -252,7 +252,7 @@ describe('source maps', () => { let result = doubler.process('a { }', { from: 'from/a.css', to: 'out/b.css', - map: { inline: false } + map: { inline: false } }); expect(result.css).to.match(/sourceMappingURL=b.css.map/); @@ -266,13 +266,13 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', - map: { inline: false } + map: { inline: false } }); let step2 = doubler.process(step1.css, { from: 'out/b.css', to: 'out/two/c.css', - map: { prev: step1.map } + map: { prev: step1.map } }); let source = consumer(step2.map) @@ -282,7 +282,7 @@ describe('source maps', () => { let step3 = doubler.process(step2.css, { from: 'c.css', to: 'd.css', - map: { prev: step2.map } + map: { prev: step2.map } }); source = consumer(step3.map) @@ -294,13 +294,13 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', - map: true + map: true }); let step2 = doubler.process(step1.css, { from: 'out/b.css', to: 'out/two/c.css', - map: { inline: false } + map: { inline: false } }); let source = consumer(step2.map) @@ -312,7 +312,7 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'source/a.css', to: 'one/b.css', - map: { annotation: 'maps/b.css.map', inline: false } + map: { annotation: 'maps/b.css.map', inline: false } }); let source = consumer(step1.map) @@ -337,7 +337,7 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); let map = step1.map; @@ -347,7 +347,7 @@ describe('source maps', () => { let step2 = doubler.process(step1.css, { from: 'b.css', to: 'c.css', - map: { prev: i } + map: { prev: i } }); let source = consumer(step2.map) .originalPositionFor({ line: 1, column: 0 }).source; @@ -359,7 +359,7 @@ describe('source maps', () => { let result = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', - map: true + map: true }); expect(read(result).sourceContentFor('../a.css')).to.eql('a { }'); @@ -369,7 +369,7 @@ describe('source maps', () => { let result = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', - map: { sourcesContent: false } + map: { sourcesContent: false } }); expect(read(result).sourceContentFor('../a.css')).to.not.exist; @@ -377,14 +377,14 @@ describe('source maps', () => { it('misses source content if previous not have', () => { let step1 = doubler.process('a { }', { - from: 'a.css', - to: 'out/a.css', - map: { sourcesContent: false } + from: 'a.css', + to: 'out/a.css', + map: { sourcesContent: false } }); let file1 = postcss.parse(step1.css, { from: 'a.css', - map: { prev: step1.map } + map: { prev: step1.map } }); let file2 = postcss.parse('b { }', { from: 'b.css', map: true }); @@ -398,18 +398,18 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/a.css', - map: { sourcesContent: true } + map: { sourcesContent: true } }); let file1 = postcss.parse(step1.css, { from: 'a.css', - map: { prev: step1.map } + map: { prev: step1.map } }); let file2 = postcss.parse('b { }', { from: 'b.css', map: true }); file2.append( file1.first.clone() ); let step2 = file2.toResult({ - to: 'c.css', + to: 'c.css', map: { sourcesContent: false } }); @@ -434,7 +434,7 @@ describe('source maps', () => { let step1 = doubler.process('a { }', { from: 'вход.css', to: 'шаг1.css', - map: true + map: true }); let step2 = doubler.process(step1.css, { from: 'шаг1.css', @@ -456,7 +456,7 @@ describe('source maps', () => { it('uses input file name as output file name', () => { let result = doubler.process('a{}', { from: 'a.css', - map: { inline: false } + map: { inline: false } }); expect(result.map.toJSON().file).to.eql('a.css'); }); @@ -471,7 +471,7 @@ describe('source maps', () => { let result = postcss().process(css, { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); @@ -482,7 +482,7 @@ describe('source maps', () => { let result = postcss().process(css, { from: 'a.css', to: 'b.css', - map: { annotation: false, inline: false } + map: { annotation: false, inline: false } }); expect(result.css).to.eql('a { }/*# sourceMappingURL=a.css.map */'); diff --git a/test/postcss.js b/test/postcss.js index 48ca4f286..0c8b8e277 100644 --- a/test/postcss.js +++ b/test/postcss.js @@ -78,22 +78,22 @@ describe('postcss()', () => { }); it('creates a shortcut to process css', (done) => { - let plugin = postcss.plugin('test', ({str = 'bar'} = {}) => { + let plugin = postcss.plugin('test', (str = 'bar') => { return function (css) { - css.eachDecl((decl) => decl.value = str); + css.eachDecl( i => i.value = str ); }; }); let result1 = plugin.process('a{value:foo}'); expect(result1.css).to.eql('a{value:bar}'); - let result2 = plugin.process('a{value:foo}', {str: 'baz'}); + let result2 = plugin.process('a{value:foo}', 'baz'); expect(result2.css).to.eql('a{value:baz}'); - plugin.process('a{value:foo}').then(result => { + plugin.process('a{value:foo}').then( (result) => { expect(result.css).to.eql('a{value:bar}'); done(); - }); + }).catch(done); }); }); diff --git a/test/processor.js b/test/processor.js index 83bc1684f..a0c9755e3 100644 --- a/test/processor.js +++ b/test/processor.js @@ -105,10 +105,10 @@ describe('Processor', () => { let one = (new Processor()).process('a{}', { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); let two = (new Processor()).process(one, { - to: 'c.css', + to: 'c.css', map: { inline: false } }); expect(two.map.toJSON().sources).to.eql(['a.css']); @@ -177,12 +177,12 @@ describe('Processor', () => { let one = (new Processor()).process('a{}', { from: 'a.css', to: 'b.css', - map: { inline: false } + map: { inline: false } }); let two = (new Processor()).process(one.css, { from: 'b.css', to: 'c.css', - map: { prev: one.map, inline: false } + map: { prev: one.map, inline: false } }); expect(two.map.toJSON().sources).to.eql(['a.css']); }); @@ -267,7 +267,7 @@ describe('Processor', () => { expect(err2).to.eql(error); done(); }); - }).catch( (err) => done(err) ); + }).catch(done); }); it('supports sync errors in async mode', (done) => { @@ -284,7 +284,7 @@ describe('Processor', () => { }); it('throws parse error in async', (done) => { - (new Processor()).process('a{').catch(function (err) { + (new Processor()).process('a{').catch( (err) => { expect(err.message).to.eql(':1:1: Unclosed block'); done(); }).catch(done); @@ -300,9 +300,9 @@ describe('Processor', () => { }); it('checks plugin compatibility', () => { - let plugin = postcss.plugin('test', function () { - return function () { - throw 'Er'; + let plugin = postcss.plugin('test', () => { + return () => { + throw new Error('Er'); }; }); let func = plugin(); @@ -391,7 +391,7 @@ describe('Processor', () => { it('uses custom syntax', (done) => { let processor = new Processor([]); let syntax = { parse: prs, stringify: str }; - processor.process('a{}', { syntax: syntax }).then( (result) => { + processor.process('a{}', { syntax }).then( (result) => { expect(result.css).to.equal('ok!'); done(); }); diff --git a/test/result.js b/test/result.js index a2eb49355..a598550b3 100644 --- a/test/result.js +++ b/test/result.js @@ -29,7 +29,7 @@ describe('Result', () => { expect(result.messages).to.eql([ new Warning('test', { plugin: 'test-plugin', - node: result.root.first + node: result.root.first }) ]); }); diff --git a/test/rule.js b/test/rule.js index fc2fe9c05..243730772 100644 --- a/test/rule.js +++ b/test/rule.js @@ -26,11 +26,11 @@ describe('Rule', () => { // Note: We don’t have to care about unquoted attribute values // (such as `[foo=a,b]`), because that is invalid CSS. let rule = new Rule({ - selector: "[foo='a, b'], a:-moz-any(:focus, [href*=','])" + selector: '[foo=\'a, b\'], a:-moz-any(:focus, [href*=\',\'])' }); expect(rule.selectors).to.eql([ - "[foo='a, b']", - "a:-moz-any(:focus, [href*=','])"]); + '[foo=\'a, b\']', + 'a:-moz-any(:focus, [href*=\',\'])']); }); it('receive array', () => { diff --git a/test/stringifier.js b/test/stringifier.js index 1d719f4cb..1255319fc 100644 --- a/test/stringifier.js +++ b/test/stringifier.js @@ -140,7 +140,7 @@ describe('stringifier', () => { let css = parse('a{*one:1}'); css.first.append({ prop: 'two', value: '2' }); css.append({ name: 'keyframes', params: 'a' }); - css.last.append({ selector: 'from'}); + css.last.append({ selector: 'from' }); expect(css.toString()) .to.eql('a{*one:1;two:2}\n@keyframes a{\nfrom{}}'); }); diff --git a/test/tokenize.js b/test/tokenize.js index baf8633ec..6c4f7218c 100644 --- a/test/tokenize.js +++ b/test/tokenize.js @@ -89,7 +89,7 @@ describe('tokenize', () => { it('tokenizes string', () => { test('\'"\'"\\""', [ - ['string', "'\"'", 1, 1, 1, 3], + ['string', '\'"\'', 1, 1, 1, 3], ['string', '"\\""', 1, 4, 1, 7] ]); }); diff --git a/test/warning.js b/test/warning.js index 46129c99b..6b12fd53d 100644 --- a/test/warning.js +++ b/test/warning.js @@ -27,7 +27,7 @@ describe('Warning', () => { let root = parse('a{}', { from: '/a.css' }); let warning = new Warning('text', { plugin: 'plugin', - node: root.first + node: root.first }); expect(warning.toString()).to.eql('plugin: /a.css:1:1: text'); }); From 894c9a8c552ae79aaf95fd0422af1db451eddab4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 01:06:52 +0300 Subject: [PATCH 0527/3047] Add Result#content --- docs/api.md | 16 ++++++++++++++++ lib/lazy-result.js | 4 ++++ lib/result.js | 4 ++++ test/lazy-result.js | 9 +++++++++ 4 files changed, 33 insertions(+) diff --git a/docs/api.md b/docs/api.md index 9ddc6e1ab..7d33e2fb0 100644 --- a/docs/api.md +++ b/docs/api.md @@ -378,6 +378,14 @@ postcss([cssnext]).then(function (result) { }); ``` +### `lazy.content` + +It is alias for `css` property to use with syntaxes generates non-CSS output. + +```js +lazy.css === lazy.content; +``` + ### `lazy.map` Processes input CSS through synchronous plugins and returns [`Result#map`]. @@ -533,6 +541,14 @@ A CSS string representing this `Result`’s '`Root` instance. postcss.parse('a{}').toResult().css //=> "a{}" ``` +### `result.content` + +It is alias for `css` property to use with syntaxes generates non-CSS output. + +```js +result.css === result.content; +``` + ### `result.map` An instance of the `SourceMapGenerator` class from the [`source-map`] library, diff --git a/lib/lazy-result.js b/lib/lazy-result.js index daa47b12d..68cbf9ccc 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -53,6 +53,10 @@ export default class LazyResult { return this.stringify().css; } + get content() { + return this.stringify().content; + } + get map() { return this.stringify().map; } diff --git a/lib/result.js b/lib/result.js index 9ba0075e5..30bad69e2 100644 --- a/lib/result.js +++ b/lib/result.js @@ -30,6 +30,10 @@ export default class Result { return this.messages.filter( i => i.type === 'warning' ); } + get content() { + return this.css; + } + get from() { warnOnce('result.from is deprecated and will be removed in 5.0. ' + 'Use result.opts.from instead.'); diff --git a/test/lazy-result.js b/test/lazy-result.js index d1c1cdce2..9db691fb9 100644 --- a/test/lazy-result.js +++ b/test/lazy-result.js @@ -31,6 +31,15 @@ describe('LazyResult', () => { }); + describe('content', () => { + + it('is alias for css', () => { + let result = new LazyResult(processor, 'a {}', { }); + expect(result.content).to.eql('a {}'); + }); + + }); + describe('map', () => { it('exists only if necessary', () => { From e34a5280d97ce714305612c4ce95dbb6fe241de4 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Sun, 2 Aug 2015 02:06:50 +0300 Subject: [PATCH 0528/3047] Fix tests on Windows --- test/node.js | 6 ++++-- test/warning.js | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/test/node.js b/test/node.js index b99424bf6..864b50757 100644 --- a/test/node.js +++ b/test/node.js @@ -6,16 +6,18 @@ import Root from '../lib/root'; import Rule from '../lib/rule'; import { expect } from 'chai'; +import path from 'path'; describe('Node', () => { describe('error()', () => { it('generates custom error', () => { - let css = parse('a{}', { from: '/a.css' }); + let file = path.resolve('a.css'); + let css = parse('a{}', { from: file }); let error = css.first.error('Test'); expect(error).to.be.instanceOf(CssSyntaxError); - expect(error.message).to.eql('/a.css:1:1: Test'); + expect(error.message).to.eql(file + ':1:1: Test'); }); it('generates custom error for nodes without source', () => { diff --git a/test/warning.js b/test/warning.js index 6b12fd53d..6fa55128f 100644 --- a/test/warning.js +++ b/test/warning.js @@ -2,6 +2,7 @@ import Warning from '../lib/warning'; import parse from '../lib/parse'; import { expect } from 'chai'; +import path from 'path'; describe('Warning', () => { @@ -24,12 +25,13 @@ describe('Warning', () => { }); it('outputs warning with plugin and node', () => { - let root = parse('a{}', { from: '/a.css' }); + let file = path.resolve('a.css'); + let root = parse('a{}', { from: file }); let warning = new Warning('text', { plugin: 'plugin', node: root.first }); - expect(warning.toString()).to.eql('plugin: /a.css:1:1: text'); + expect(warning.toString()).to.eql(`plugin: ${ file }:1:1: text`); }); }); From 022151f8f420fe1bd3de5c1270d2e213c27d088f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 02:17:17 +0300 Subject: [PATCH 0529/3047] Fix parse tests on Windows --- gulpfile.babel.js | 3 +- test/cases/atrule-decls.json | 55 +++++++++------------ test/cases/atrule-empty.json | 10 ++-- test/cases/atrule-no-params.json | 10 ++-- test/cases/atrule-no-semicolon.json | 10 ++-- test/cases/atrule-no-space.json | 10 ++-- test/cases/atrule-params.json | 10 ++-- test/cases/atrule-rules.json | 35 ++++++-------- test/cases/colon-selector.json | 10 ++-- test/cases/comments.json | 70 +++++++++++---------------- test/cases/decls.json | 20 +++----- test/cases/empty.json | 10 ++-- test/cases/escape.json | 75 ++++++++++++----------------- test/cases/extends.json | 30 +++++------- test/cases/function.json | 15 +++--- test/cases/ie-progid.json | 15 +++--- test/cases/important.json | 55 +++++++++------------ test/cases/prop-hacks.json | 25 ++++------ test/cases/quotes.json | 20 +++----- test/cases/raw-decl.json | 15 +++--- test/cases/rule-at.json | 30 +++++------- test/cases/rule-no-semicolon.json | 15 +++--- test/cases/selector.json | 10 ++-- test/cases/semicolons.json | 15 +++--- test/cases/tab.json | 15 +++--- test/parse.js | 5 +- test/utils/jsonify.js | 17 +++++++ 27 files changed, 257 insertions(+), 353 deletions(-) create mode 100644 test/utils/jsonify.js diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 243a41a82..0b04ce7f7 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -130,12 +130,13 @@ gulp.task('test', () => { gulp.task('cases', () => { let postcss = require('./lib/postcss'); + let jsonify = require('./test/utils/jsonify'); let cases = path.join(__dirname, 'test', 'cases'); fs.readdirSync(cases).forEach( (name) => { if ( !name.match(/\.css$/) ) return; let css = fs.readFileSync(path.join(cases, name)); let root = postcss.parse(css, { from: '/' + name }); - let json = JSON.stringify(root, null, 4); + let json = JSON.stringify(jsonify(root), null, 4); let file = path.join(cases, name.replace(/\.css$/, '.json')); fs.writeFileSync(file, json + '\n'); }); diff --git a/test/cases/atrule-decls.json b/test/cases/atrule-decls.json index cc7e9bc60..553d2bd80 100644 --- a/test/cases/atrule-decls.json +++ b/test/cases/atrule-decls.json @@ -20,10 +20,9 @@ "column": 1 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 3, @@ -44,10 +43,9 @@ "column": 5 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 2, @@ -75,10 +73,9 @@ "column": 1 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 7, @@ -99,10 +96,9 @@ "column": 5 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 6, @@ -130,10 +126,9 @@ "column": 1 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 11, @@ -154,10 +149,9 @@ "column": 5 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 10, @@ -185,10 +179,9 @@ "column": 1 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 15, @@ -209,10 +202,9 @@ "column": 5 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 14, @@ -240,10 +232,9 @@ "column": 1 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 19, @@ -264,10 +255,9 @@ "column": 5 }, "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" }, "end": { "line": 18, @@ -283,10 +273,9 @@ "type": "root", "source": { "input": { - "css": "@page :left {\n background: black\n}\n\n@media(min-width: 0) {\n background: white\n}\n\n@font-face {\n family-name: \"A;' /**/\";\n}\n\n@viewport {\n width: 110px;\n}\n\n@-ms-viewport {\n width: 100px;\n}\n", "safe": false, - "file": "/atrule-decls.css", - "from": "/atrule-decls.css" + "file": "atrule-decls.css", + "from": "atrule-decls.css" } } } diff --git a/test/cases/atrule-empty.json b/test/cases/atrule-empty.json index 28f075664..7a08c1339 100644 --- a/test/cases/atrule-empty.json +++ b/test/cases/atrule-empty.json @@ -18,10 +18,9 @@ "column": 1 }, "input": { - "css": "@charset \"UTF-8\";\n", "safe": false, - "file": "/atrule-empty.css", - "from": "/atrule-empty.css" + "file": "atrule-empty.css", + "from": "atrule-empty.css" }, "end": { "line": 1, @@ -34,10 +33,9 @@ "type": "root", "source": { "input": { - "css": "@charset \"UTF-8\";\n", "safe": false, - "file": "/atrule-empty.css", - "from": "/atrule-empty.css" + "file": "atrule-empty.css", + "from": "atrule-empty.css" } } } diff --git a/test/cases/atrule-no-params.json b/test/cases/atrule-no-params.json index 209e0b25c..48e98aecc 100644 --- a/test/cases/atrule-no-params.json +++ b/test/cases/atrule-no-params.json @@ -19,10 +19,9 @@ "column": 1 }, "input": { - "css": "@page{ }\n", "safe": false, - "file": "/atrule-no-params.css", - "from": "/atrule-no-params.css" + "file": "atrule-no-params.css", + "from": "atrule-no-params.css" }, "end": { "line": 1, @@ -36,10 +35,9 @@ "type": "root", "source": { "input": { - "css": "@page{ }\n", "safe": false, - "file": "/atrule-no-params.css", - "from": "/atrule-no-params.css" + "file": "atrule-no-params.css", + "from": "atrule-no-params.css" } } } diff --git a/test/cases/atrule-no-semicolon.json b/test/cases/atrule-no-semicolon.json index fb80e34e4..e4d8f1e97 100644 --- a/test/cases/atrule-no-semicolon.json +++ b/test/cases/atrule-no-semicolon.json @@ -18,10 +18,9 @@ "column": 1 }, "input": { - "css": "\n@charset \"UTF-8\"\n\n", "safe": false, - "file": "/atrule-no-semicolon.css", - "from": "/atrule-no-semicolon.css" + "file": "atrule-no-semicolon.css", + "from": "atrule-no-semicolon.css" }, "end": { "line": 2, @@ -34,10 +33,9 @@ "type": "root", "source": { "input": { - "css": "\n@charset \"UTF-8\"\n\n", "safe": false, - "file": "/atrule-no-semicolon.css", - "from": "/atrule-no-semicolon.css" + "file": "atrule-no-semicolon.css", + "from": "atrule-no-semicolon.css" } } } diff --git a/test/cases/atrule-no-space.json b/test/cases/atrule-no-space.json index bb4ca692f..28a5b1b54 100644 --- a/test/cases/atrule-no-space.json +++ b/test/cases/atrule-no-space.json @@ -18,10 +18,9 @@ "column": 1 }, "input": { - "css": "@import\"test.css\"\n", "safe": false, - "file": "/atrule-no-space.css", - "from": "/atrule-no-space.css" + "file": "atrule-no-space.css", + "from": "atrule-no-space.css" }, "end": { "line": 1, @@ -34,10 +33,9 @@ "type": "root", "source": { "input": { - "css": "@import\"test.css\"\n", "safe": false, - "file": "/atrule-no-space.css", - "from": "/atrule-no-space.css" + "file": "atrule-no-space.css", + "from": "atrule-no-space.css" } } } diff --git a/test/cases/atrule-params.json b/test/cases/atrule-params.json index 8dad0920b..2981af454 100644 --- a/test/cases/atrule-params.json +++ b/test/cases/atrule-params.json @@ -19,10 +19,9 @@ "column": 1 }, "input": { - "css": "@-moz-document/* near */ /* filter */ url(\"example.com/{\") /* a */ {}\n", "safe": false, - "file": "/atrule-params.css", - "from": "/atrule-params.css" + "file": "atrule-params.css", + "from": "atrule-params.css" }, "end": { "line": 1, @@ -36,10 +35,9 @@ "type": "root", "source": { "input": { - "css": "@-moz-document/* near */ /* filter */ url(\"example.com/{\") /* a */ {}\n", "safe": false, - "file": "/atrule-params.css", - "from": "/atrule-params.css" + "file": "atrule-params.css", + "from": "atrule-params.css" } } } diff --git a/test/cases/atrule-rules.json b/test/cases/atrule-rules.json index c83da7a3e..9c5bec6d9 100644 --- a/test/cases/atrule-rules.json +++ b/test/cases/atrule-rules.json @@ -20,10 +20,9 @@ "column": 1 }, "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" }, "end": { "line": 10, @@ -48,10 +47,9 @@ "column": 5 }, "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" }, "end": { "line": 9, @@ -80,10 +78,9 @@ "column": 13 }, "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" }, "end": { "line": 4, @@ -101,10 +98,9 @@ "column": 9 }, "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" }, "end": { "line": 5, @@ -133,10 +129,9 @@ "column": 13 }, "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" }, "end": { "line": 7, @@ -154,10 +149,9 @@ "column": 9 }, "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" }, "end": { "line": 8, @@ -174,10 +168,9 @@ "type": "root", "source": { "input": { - "css": "@supports (animation-name: test) {\n @-custom-keyframe anim {\n from {\n color: black;\n }\n to {\n color: white\n }\n }\n}\n", "safe": false, - "file": "/atrule-rules.css", - "from": "/atrule-rules.css" + "file": "atrule-rules.css", + "from": "atrule-rules.css" } } } diff --git a/test/cases/colon-selector.json b/test/cases/colon-selector.json index 326c002eb..42e3a836f 100644 --- a/test/cases/colon-selector.json +++ b/test/cases/colon-selector.json @@ -18,10 +18,9 @@ "column": 1 }, "input": { - "css": ":fullscreen {}\n", "safe": false, - "file": "/colon-selector.css", - "from": "/colon-selector.css" + "file": "colon-selector.css", + "from": "colon-selector.css" }, "end": { "line": 1, @@ -34,10 +33,9 @@ "type": "root", "source": { "input": { - "css": ":fullscreen {}\n", "safe": false, - "file": "/colon-selector.css", - "from": "/colon-selector.css" + "file": "colon-selector.css", + "from": "colon-selector.css" } } } diff --git a/test/cases/comments.json b/test/cases/comments.json index 11263d305..351a4ae6d 100644 --- a/test/cases/comments.json +++ b/test/cases/comments.json @@ -17,10 +17,9 @@ "column": 1 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 1, @@ -42,10 +41,9 @@ "column": 1 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 2, @@ -67,10 +65,9 @@ "column": 1 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 3, @@ -100,10 +97,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 5, @@ -124,10 +120,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 6, @@ -150,10 +145,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 7, @@ -174,10 +168,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 8, @@ -200,10 +193,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 9, @@ -220,10 +212,9 @@ "column": 1 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 10, @@ -245,10 +236,9 @@ "column": 1 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 11, @@ -277,10 +267,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 14, @@ -303,10 +292,9 @@ "column": 5 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 15, @@ -323,10 +311,9 @@ "column": 1 }, "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" }, "end": { "line": 16, @@ -339,10 +326,9 @@ "type": "root", "source": { "input": { - "css": "/* a { color: black } */\n/**/\n/* */\ndiv {\n /* inside */\n color: black;\n /* between */\n border-radius: 3px / 7px\n /* end */\n}\n/* b */\n\na {\n color: black;\n /* c */\n}\n", "safe": false, - "file": "/comments.css", - "from": "/comments.css" + "file": "comments.css", + "from": "comments.css" } } } diff --git a/test/cases/decls.json b/test/cases/decls.json index 49cbe0fb1..f6962846b 100644 --- a/test/cases/decls.json +++ b/test/cases/decls.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {\n color: black;\n background: white;\n}\n", "safe": false, - "file": "/decls.css", - "from": "/decls.css" + "file": "decls.css", + "from": "decls.css" }, "end": { "line": 2, @@ -49,10 +48,9 @@ "column": 5 }, "input": { - "css": "a {\n color: black;\n background: white;\n}\n", "safe": false, - "file": "/decls.css", - "from": "/decls.css" + "file": "decls.css", + "from": "decls.css" }, "end": { "line": 3, @@ -70,10 +68,9 @@ "column": 1 }, "input": { - "css": "a {\n color: black;\n background: white;\n}\n", "safe": false, - "file": "/decls.css", - "from": "/decls.css" + "file": "decls.css", + "from": "decls.css" }, "end": { "line": 4, @@ -86,10 +83,9 @@ "type": "root", "source": { "input": { - "css": "a {\n color: black;\n background: white;\n}\n", "safe": false, - "file": "/decls.css", - "from": "/decls.css" + "file": "decls.css", + "from": "decls.css" } } } diff --git a/test/cases/empty.json b/test/cases/empty.json index f7296fe0a..9ce76fc96 100644 --- a/test/cases/empty.json +++ b/test/cases/empty.json @@ -18,10 +18,9 @@ "column": 1 }, "input": { - "css": "{}\n", "safe": false, - "file": "/empty.css", - "from": "/empty.css" + "file": "empty.css", + "from": "empty.css" }, "end": { "line": 1, @@ -34,10 +33,9 @@ "type": "root", "source": { "input": { - "css": "{}\n", "safe": false, - "file": "/empty.css", - "from": "/empty.css" + "file": "empty.css", + "from": "empty.css" } } } diff --git a/test/cases/escape.json b/test/cases/escape.json index ddde8826d..212c715fb 100644 --- a/test/cases/escape.json +++ b/test/cases/escape.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 2, @@ -49,10 +48,9 @@ "column": 5 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 3, @@ -74,10 +72,9 @@ "column": 5 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 4, @@ -95,10 +92,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 5, @@ -121,10 +117,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 7, @@ -151,10 +146,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 8, @@ -177,10 +171,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 9, @@ -203,10 +196,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 10, @@ -229,10 +221,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 11, @@ -255,10 +246,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 12, @@ -281,10 +271,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 13, @@ -307,10 +296,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 15, @@ -339,10 +327,9 @@ "column": 5 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 18, @@ -360,10 +347,9 @@ "column": 1 }, "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" }, "end": { "line": 19, @@ -376,10 +362,9 @@ "type": "root", "source": { "input": { - "css": "a {\n background: url(\"a).png\");\n background: url(a;a);\n background: \\;a;\n}\n\n:not([foo=\")\"]) { }\n:not(div/*)*/) { }\n:not(:nth-child(2n of [foo=\")\"])) { }\n[foo=\\\"] { }\n[foo=\\{] { }\n[foo=\\(] { }\n[foo=yes\\:\\(it\\'s\\ work\\)] { }\n\n\\@noat { }\n\nh1\\\\{\n color: \\\\;\n}\n", "safe": false, - "file": "/escape.css", - "from": "/escape.css" + "file": "escape.css", + "from": "escape.css" } } } diff --git a/test/cases/extends.json b/test/cases/extends.json index 686ca927e..f294f0480 100644 --- a/test/cases/extends.json +++ b/test/cases/extends.json @@ -16,10 +16,9 @@ "column": 1 }, "input": { - "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", "safe": false, - "file": "/extends.css", - "from": "/extends.css" + "file": "extends.css", + "from": "extends.css" }, "end": { "line": 1, @@ -49,10 +48,9 @@ "column": 5 }, "input": { - "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", "safe": false, - "file": "/extends.css", - "from": "/extends.css" + "file": "extends.css", + "from": "extends.css" }, "end": { "line": 4, @@ -82,10 +80,9 @@ "column": 9 }, "input": { - "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", "safe": false, - "file": "/extends.css", - "from": "/extends.css" + "file": "extends.css", + "from": "extends.css" }, "end": { "line": 6, @@ -103,10 +100,9 @@ "column": 5 }, "input": { - "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", "safe": false, - "file": "/extends.css", - "from": "/extends.css" + "file": "extends.css", + "from": "extends.css" }, "end": { "line": 7, @@ -123,10 +119,9 @@ "column": 1 }, "input": { - "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", "safe": false, - "file": "/extends.css", - "from": "/extends.css" + "file": "extends.css", + "from": "extends.css" }, "end": { "line": 8, @@ -139,10 +134,9 @@ "type": "root", "source": { "input": { - "css": "one: 1;\n\na {\n two: 2;\n b {\n three: 3;\n }\n}\n", "safe": false, - "file": "/extends.css", - "from": "/extends.css" + "file": "extends.css", + "from": "extends.css" } } } diff --git a/test/cases/function.json b/test/cases/function.json index 5e13014c6..c6c88aeca 100644 --- a/test/cases/function.json +++ b/test/cases/function.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {\n background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\n}\n", "safe": false, - "file": "/function.css", - "from": "/function.css" + "file": "function.css", + "from": "function.css" }, "end": { "line": 2, @@ -45,10 +44,9 @@ "column": 1 }, "input": { - "css": "a {\n background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\n}\n", "safe": false, - "file": "/function.css", - "from": "/function.css" + "file": "function.css", + "from": "function.css" }, "end": { "line": 3, @@ -61,10 +59,9 @@ "type": "root", "source": { "input": { - "css": "a {\n background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\n}\n", "safe": false, - "file": "/function.css", - "from": "/function.css" + "file": "function.css", + "from": "function.css" } } } diff --git a/test/cases/ie-progid.json b/test/cases/ie-progid.json index 7241c322e..7f9b44ef3 100644 --- a/test/cases/ie-progid.json +++ b/test/cases/ie-progid.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {\n filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3);\n}\n", "safe": false, - "file": "/ie-progid.css", - "from": "/ie-progid.css" + "file": "ie-progid.css", + "from": "ie-progid.css" }, "end": { "line": 2, @@ -45,10 +44,9 @@ "column": 1 }, "input": { - "css": "a {\n filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3);\n}\n", "safe": false, - "file": "/ie-progid.css", - "from": "/ie-progid.css" + "file": "ie-progid.css", + "from": "ie-progid.css" }, "end": { "line": 3, @@ -61,10 +59,9 @@ "type": "root", "source": { "input": { - "css": "a {\n filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3);\n}\n", "safe": false, - "file": "/ie-progid.css", - "from": "/ie-progid.css" + "file": "ie-progid.css", + "from": "ie-progid.css" } } } diff --git a/test/cases/important.json b/test/cases/important.json index ecde524c4..1bccc6caa 100644 --- a/test/cases/important.json +++ b/test/cases/important.json @@ -25,10 +25,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 2, @@ -52,10 +51,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 3, @@ -74,10 +72,9 @@ "column": 1 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 4, @@ -106,10 +103,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 7, @@ -131,10 +127,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 8, @@ -157,10 +152,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 9, @@ -184,10 +178,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 10, @@ -211,10 +204,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 11, @@ -241,10 +233,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 12, @@ -262,10 +253,9 @@ "column": 1 }, "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" }, "end": { "line": 13, @@ -278,10 +268,9 @@ "type": "root", "source": { "input": { - "css": "a {\n width: 1px!important;\n color: black !important ;\n}\n\np {\n prop: important;\n color: red important;\n margin: 10px ! important;\n padding: 20px ! /* test */ important;\n width: 100px ! /*! test */ important;\n height: 100px /*! test */ important;\n}\n", "safe": false, - "file": "/important.css", - "from": "/important.css" + "file": "important.css", + "from": "important.css" } } } diff --git a/test/cases/prop-hacks.json b/test/cases/prop-hacks.json index 95a545885..b04560855 100644 --- a/test/cases/prop-hacks.json +++ b/test/cases/prop-hacks.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {\n *color : black;\n _background: white;\n font-size/**/: big;\n}\n", "safe": false, - "file": "/prop-hacks.css", - "from": "/prop-hacks.css" + "file": "prop-hacks.css", + "from": "prop-hacks.css" }, "end": { "line": 2, @@ -49,10 +48,9 @@ "column": 5 }, "input": { - "css": "a {\n *color : black;\n _background: white;\n font-size/**/: big;\n}\n", "safe": false, - "file": "/prop-hacks.css", - "from": "/prop-hacks.css" + "file": "prop-hacks.css", + "from": "prop-hacks.css" }, "end": { "line": 3, @@ -74,10 +72,9 @@ "column": 5 }, "input": { - "css": "a {\n *color : black;\n _background: white;\n font-size/**/: big;\n}\n", "safe": false, - "file": "/prop-hacks.css", - "from": "/prop-hacks.css" + "file": "prop-hacks.css", + "from": "prop-hacks.css" }, "end": { "line": 4, @@ -95,10 +92,9 @@ "column": 1 }, "input": { - "css": "a {\n *color : black;\n _background: white;\n font-size/**/: big;\n}\n", "safe": false, - "file": "/prop-hacks.css", - "from": "/prop-hacks.css" + "file": "prop-hacks.css", + "from": "prop-hacks.css" }, "end": { "line": 5, @@ -111,10 +107,9 @@ "type": "root", "source": { "input": { - "css": "a {\n *color : black;\n _background: white;\n font-size/**/: big;\n}\n", "safe": false, - "file": "/prop-hacks.css", - "from": "/prop-hacks.css" + "file": "prop-hacks.css", + "from": "prop-hacks.css" } } } diff --git a/test/cases/quotes.json b/test/cases/quotes.json index 930d32127..a236e4603 100644 --- a/test/cases/quotes.json +++ b/test/cases/quotes.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a::before {\n content: \";'@ /**/\\\"\";\n content: '\\'\"\\\\';\n}\n", "safe": false, - "file": "/quotes.css", - "from": "/quotes.css" + "file": "quotes.css", + "from": "quotes.css" }, "end": { "line": 2, @@ -49,10 +48,9 @@ "column": 5 }, "input": { - "css": "a::before {\n content: \";'@ /**/\\\"\";\n content: '\\'\"\\\\';\n}\n", "safe": false, - "file": "/quotes.css", - "from": "/quotes.css" + "file": "quotes.css", + "from": "quotes.css" }, "end": { "line": 3, @@ -70,10 +68,9 @@ "column": 1 }, "input": { - "css": "a::before {\n content: \";'@ /**/\\\"\";\n content: '\\'\"\\\\';\n}\n", "safe": false, - "file": "/quotes.css", - "from": "/quotes.css" + "file": "quotes.css", + "from": "quotes.css" }, "end": { "line": 4, @@ -86,10 +83,9 @@ "type": "root", "source": { "input": { - "css": "a::before {\n content: \";'@ /**/\\\"\";\n content: '\\'\"\\\\';\n}\n", "safe": false, - "file": "/quotes.css", - "from": "/quotes.css" + "file": "quotes.css", + "from": "quotes.css" } } } diff --git a/test/cases/raw-decl.json b/test/cases/raw-decl.json index fc765746f..5cb31b25f 100644 --- a/test/cases/raw-decl.json +++ b/test/cases/raw-decl.json @@ -28,10 +28,9 @@ "column": 5 }, "input": { - "css": "a { color: a/* ; */ b; }\n", "safe": false, - "file": "/raw-decl.css", - "from": "/raw-decl.css" + "file": "raw-decl.css", + "from": "raw-decl.css" }, "end": { "line": 1, @@ -49,10 +48,9 @@ "column": 1 }, "input": { - "css": "a { color: a/* ; */ b; }\n", "safe": false, - "file": "/raw-decl.css", - "from": "/raw-decl.css" + "file": "raw-decl.css", + "from": "raw-decl.css" }, "end": { "line": 1, @@ -65,10 +63,9 @@ "type": "root", "source": { "input": { - "css": "a { color: a/* ; */ b; }\n", "safe": false, - "file": "/raw-decl.css", - "from": "/raw-decl.css" + "file": "raw-decl.css", + "from": "raw-decl.css" } } } diff --git a/test/cases/rule-at.json b/test/cases/rule-at.json index 984c5a4ca..434ca520e 100644 --- a/test/cases/rule-at.json +++ b/test/cases/rule-at.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", "safe": false, - "file": "/rule-at.css", - "from": "/rule-at.css" + "file": "rule-at.css", + "from": "rule-at.css" }, "end": { "line": 2, @@ -49,10 +48,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", "safe": false, - "file": "/rule-at.css", - "from": "/rule-at.css" + "file": "rule-at.css", + "from": "rule-at.css" }, "end": { "line": 3, @@ -78,10 +76,9 @@ "column": 5 }, "input": { - "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", "safe": false, - "file": "/rule-at.css", - "from": "/rule-at.css" + "file": "rule-at.css", + "from": "rule-at.css" }, "end": { "line": 6, @@ -102,10 +99,9 @@ "column": 9 }, "input": { - "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", "safe": false, - "file": "/rule-at.css", - "from": "/rule-at.css" + "file": "rule-at.css", + "from": "rule-at.css" }, "end": { "line": 5, @@ -125,10 +121,9 @@ "column": 1 }, "input": { - "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", "safe": false, - "file": "/rule-at.css", - "from": "/rule-at.css" + "file": "rule-at.css", + "from": "rule-at.css" }, "end": { "line": 7, @@ -141,10 +136,9 @@ "type": "root", "source": { "input": { - "css": "a {\n width: 10px;\n margin: 0 @width;\n @mixin mobile {\n height: 100px;\n }\n}\n", "safe": false, - "file": "/rule-at.css", - "from": "/rule-at.css" + "file": "rule-at.css", + "from": "rule-at.css" } } } diff --git a/test/cases/rule-no-semicolon.json b/test/cases/rule-no-semicolon.json index b9ebbd70a..7ac12ed8b 100644 --- a/test/cases/rule-no-semicolon.json +++ b/test/cases/rule-no-semicolon.json @@ -24,10 +24,9 @@ "column": 3 }, "input": { - "css": "a{color:black}\n", "safe": false, - "file": "/rule-no-semicolon.css", - "from": "/rule-no-semicolon.css" + "file": "rule-no-semicolon.css", + "from": "rule-no-semicolon.css" }, "end": { "line": 1, @@ -45,10 +44,9 @@ "column": 1 }, "input": { - "css": "a{color:black}\n", "safe": false, - "file": "/rule-no-semicolon.css", - "from": "/rule-no-semicolon.css" + "file": "rule-no-semicolon.css", + "from": "rule-no-semicolon.css" }, "end": { "line": 1, @@ -61,10 +59,9 @@ "type": "root", "source": { "input": { - "css": "a{color:black}\n", "safe": false, - "file": "/rule-no-semicolon.css", - "from": "/rule-no-semicolon.css" + "file": "rule-no-semicolon.css", + "from": "rule-no-semicolon.css" } } } diff --git a/test/cases/selector.json b/test/cases/selector.json index 5682e52a9..ab1f1027b 100644 --- a/test/cases/selector.json +++ b/test/cases/selector.json @@ -22,10 +22,9 @@ "column": 1 }, "input": { - "css": "\na/* { } */ b {}\n", "safe": false, - "file": "/selector.css", - "from": "/selector.css" + "file": "selector.css", + "from": "selector.css" }, "end": { "line": 2, @@ -38,10 +37,9 @@ "type": "root", "source": { "input": { - "css": "\na/* { } */ b {}\n", "safe": false, - "file": "/selector.css", - "from": "/selector.css" + "file": "selector.css", + "from": "selector.css" } } } diff --git a/test/cases/semicolons.json b/test/cases/semicolons.json index 8e02ac32f..8fc3ba341 100644 --- a/test/cases/semicolons.json +++ b/test/cases/semicolons.json @@ -24,10 +24,9 @@ "column": 5 }, "input": { - "css": "a {;;\n color: black;\n ; ;\n}\n", "safe": false, - "file": "/semicolons.css", - "from": "/semicolons.css" + "file": "semicolons.css", + "from": "semicolons.css" }, "end": { "line": 2, @@ -45,10 +44,9 @@ "column": 1 }, "input": { - "css": "a {;;\n color: black;\n ; ;\n}\n", "safe": false, - "file": "/semicolons.css", - "from": "/semicolons.css" + "file": "semicolons.css", + "from": "semicolons.css" }, "end": { "line": 4, @@ -61,10 +59,9 @@ "type": "root", "source": { "input": { - "css": "a {;;\n color: black;\n ; ;\n}\n", "safe": false, - "file": "/semicolons.css", - "from": "/semicolons.css" + "file": "semicolons.css", + "from": "semicolons.css" } } } diff --git a/test/cases/tab.json b/test/cases/tab.json index d73a954a2..f7caf6667 100644 --- a/test/cases/tab.json +++ b/test/cases/tab.json @@ -24,10 +24,9 @@ "column": 2 }, "input": { - "css": "a {\n\tcolor: black\n}\n", "safe": false, - "file": "/tab.css", - "from": "/tab.css" + "file": "tab.css", + "from": "tab.css" }, "end": { "line": 2, @@ -45,10 +44,9 @@ "column": 1 }, "input": { - "css": "a {\n\tcolor: black\n}\n", "safe": false, - "file": "/tab.css", - "from": "/tab.css" + "file": "tab.css", + "from": "tab.css" }, "end": { "line": 3, @@ -61,10 +59,9 @@ "type": "root", "source": { "input": { - "css": "a {\n\tcolor: black\n}\n", "safe": false, - "file": "/tab.css", - "from": "/tab.css" + "file": "tab.css", + "from": "tab.css" } } } diff --git a/test/parse.js b/test/parse.js index 7ce3c20ef..1b6a6b316 100644 --- a/test/parse.js +++ b/test/parse.js @@ -2,6 +2,8 @@ import Input from '../lib/input'; import parse from '../lib/parse'; import Root from '../lib/root'; +import jsonify from './utils/jsonify'; + import { expect } from 'chai'; import path from 'path'; import fs from 'fs'; @@ -51,7 +53,7 @@ describe('postcss.parse()', () => { if ( !name.match(/\.css$/) ) return; it('parses ' + name, () => { - let css = parse(read(name), { from: '/' + name }); + let css = jsonify(parse(read(name), { from: '/' + name })); let json = read(name.replace(/\.css$/, '.json')).toString().trim(); expect(JSON.stringify(css, null, 4)).to.eql(json); }); @@ -59,6 +61,7 @@ describe('postcss.parse()', () => { it('saves source file', () => { let css = parse('a {}', { from: 'a.css' }); + expect(css.first.source.input.css).to.eql('a {}'); expect(css.first.source.input.file).to.eql(path.resolve('a.css')); expect(css.first.source.input.from).to.eql(path.resolve('a.css')); }); diff --git a/test/utils/jsonify.js b/test/utils/jsonify.js new file mode 100644 index 000000000..1597e20ca --- /dev/null +++ b/test/utils/jsonify.js @@ -0,0 +1,17 @@ +import path from 'path'; + +function clean(node) { + delete node.source.input.css; + node.source.input.file = path.basename(node.source.input.file); + node.source.input.from = path.basename(node.source.input.from); + + if ( node.nodes ) { + node.nodes = node.nodes.map( i => clean(i) ); + } + + return node; +} + +export default function jsonify(node) { + return clean(node.toJSON()); +} From 29926cab8d99dc78a721ef31820763ad72e39409 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 02:35:07 +0300 Subject: [PATCH 0530/3047] Cleanup ignore files --- .gitignore | 3 +-- .npmignore | 4 ++-- docs/syntax.md | 2 ++ 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 3282aff5d..77ee424a7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,10 @@ *~ node_modules/ -.bundle/ +npm-debug.log build/ -npm-debug.log origin.css fail.css diff --git a/.npmignore b/.npmignore index e80cc5a26..f3c84b760 100644 --- a/.npmignore +++ b/.npmignore @@ -1,15 +1,15 @@ .gitignore node_modules/ +npm-debug.log build/ +/postcss.js test/ .travis.yml origin.css fail.css -/postcss.js -npm-debug.log gulpfile.babel.js logo.svg diff --git a/docs/syntax.md b/docs/syntax.md index 2a0add49c..ec5f9c3eb 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -48,6 +48,8 @@ TODO: parser theory look and current one (copy paste is OK) TODO: reuse Parser and tests +TODO: Node#source.input + TODO: Node#raws TODO: tokenizer and parser From e1965769d6e170f5937fc62e65e47ad1b33f6ff2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 02:55:49 +0300 Subject: [PATCH 0531/3047] Update parse API --- docs/syntax.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/syntax.md b/docs/syntax.md index ec5f9c3eb..ec93d0e96 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -33,11 +33,12 @@ Main example of parse is Safe Parser, to parse broken CSS. There is not sense to generate string with broken CSS, so package should provide only parser. Parser API is a function, that receives string and returns `Root` node. +The second function argument will be a object with PostCSS options. ```js var postcss = require('postcss'); -module.exports = function (css) { +module.exports = function (css, opts) { var root = postcss.root(); // Some magic with css return root; From b02e3a6aea5924c4f178ae26243d82ed8f2a8c93 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 16:09:39 +0300 Subject: [PATCH 0532/3047] Prepare parser be extended in postcss-safe-parser --- lib/parser.js | 229 +++++++++++++++++++++++++++++--------------------- 1 file changed, 132 insertions(+), 97 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 1c48a7f8e..54cdbf54f 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -139,9 +139,7 @@ export default class Parser { end = true; } - if ( brackets > 0 && !this.input.safe ) { - throw this.input.error('Unclosed bracket', bracket[2], bracket[3]); - } + if ( brackets > 0 ) this.unclosedBracket(bracket); if ( end && colon ) { while ( this.pos > start ) { @@ -153,13 +151,7 @@ export default class Parser { return; } - if ( this.input.safe ) { - let buffer = this.tokens.slice(start, this.pos + 1); - this.spaces += buffer.map( i => i[1] ).join(''); - } else { - token = this.tokens[start]; - throw this.input.error('Unknown word', token[2], token[3]); - } + this.unknownWord(start); } rule(tokens) { @@ -204,7 +196,7 @@ export default class Parser { node.raw.between += token[1]; break; } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { - this.unknownWord(node, token, tokens); + this.unknownDecl(node, token, tokens); } else { node.raw.between += token[1]; } @@ -215,8 +207,7 @@ export default class Parser { node.prop = node.prop.slice(1); } node.raw.between += this.spacesFromStart(tokens); - - if ( this.input.safe ) this.checkMissedSemicolon(tokens); + this.precheckMissedSemicolon(tokens); for ( let i = tokens.length - 1; i > 0; i-- ) { token = tokens[i]; @@ -251,21 +242,14 @@ export default class Parser { this.raw(node, 'value', tokens); - if ( node.value.indexOf(':') !== -1 && !this.input.safe ) { - this.checkMissedSemicolon(tokens); - } + if ( node.value.indexOf(':') !== -1 ) this.checkMissedSemicolon(tokens); } atrule(token) { let node = new AtRule(); node.name = token[1].slice(1); if ( node.name === '' ) { - if ( this.input.safe ) { - node.name = ''; - } else { - throw this.input.error( - 'At-rule without name', token[2], token[3]); - } + this.unnamedAtrule(node, token); } this.init(node, token[2], token[3]); @@ -327,18 +311,13 @@ export default class Parser { if ( this.current.parent ) { this.current.source.end = { line: token[2], column: token[3] }; this.current = this.current.parent; - } else if ( !this.input.safe ) { - throw this.input.error('Unexpected }', token[2], token[3]); } else { - this.current.raw.after += '}'; + this.unexpectedClose(token); } } endFile() { - if ( this.current.parent && !this.input.safe ) { - let pos = this.current.source.start; - throw this.input.error('Unclosed block', pos.line, pos.column); - } + if ( this.current.parent ) this.unclosedBlock(); if ( this.current.nodes && this.current.nodes.length ) { this.current.raw.semicolon = this.semicolon; @@ -351,74 +330,6 @@ export default class Parser { } } - unknownWord(node, token) { - if ( this.input.safe ) { - node.source.start = { line: token[2], column: token[3] }; - node.raw.before += node.prop + node.raw.between; - node.raw.between = ''; - node.prop = token[1]; - } else { - throw this.input.error('Unknown word', token[2], token[3]); - } - } - - checkMissedSemicolon(tokens) { - let prev = null; - let colon = false; - let brackets = 0; - let type, token; - for ( let i = 0; i < tokens.length; i++ ) { - token = tokens[i]; - type = token[0]; - - if ( type === '(' ) { - brackets += 1; - } else if ( type === ')' ) { - brackets -= 0; - } else if ( brackets === 0 && type === ':' ) { - if ( !prev && this.input.safe ) { - continue; - } else if ( !prev ) { - throw this.input.error('Double colon', token[2], token[3]); - } else if ( prev[0] === 'word' && prev[1] === 'progid' ) { - continue; - } else { - colon = i; - break; - } - } - - prev = token; - } - - if ( colon === false ) return; - - if ( this.input.safe ) { - let split; - for ( split = colon - 1; split >= 0; split-- ) { - if ( tokens[split][0] === 'word' ) break; - } - for ( split -= 1; split >= 0; split-- ) { - if ( tokens[split][0] !== 'space' ) { - split += 1; - break; - } - } - let other = tokens.splice(split, tokens.length - split); - this.decl(other); - } else { - let founded = 0; - for ( let j = colon - 1; j >= 0; j-- ) { - token = tokens[j]; - if ( token[0] !== 'space' ) { - founded += 1; - if ( founded === 2 ) break; - } - } - throw this.input.error('Missed semicolon', token[2], token[3]); - } - } - // Helpers init(node, line, column) { @@ -480,4 +391,128 @@ export default class Parser { return result; } + colon(tokens) { + let brackets = 0; + let token, type, prev; + for ( let i = 0; i < tokens.length; i++ ) { + token = tokens[i]; + type = token[0]; + + if ( type === '(' ) { + brackets += 1; + } else if ( type === ')' ) { + brackets -= 0; + } else if ( brackets === 0 && type === ':' ) { + if ( !prev ) { + this.doubleColon(token); + continue; + } else if ( prev[0] === 'word' && prev[1] === 'progid' ) { + continue; + } else { + return i; + } + } + + prev = token; + } + return false; + } + + // Errors + + unknownDecl(node, token) { + if ( this.input.safe ) { + node.source.start = { line: token[2], column: token[3] }; + node.raw.before += node.prop + node.raw.between; + node.raw.between = ''; + node.prop = token[1]; + } else { + throw this.input.error('Unknown word', token[2], token[3]); + } + } + + unclosedBracket(bracket) { + if ( !this.input.safe ) { + throw this.input.error('Unclosed bracket', bracket[2], bracket[3]); + } + } + + unknownWord(start) { + if ( this.input.safe ) { + let buffer = this.tokens.slice(start, this.pos + 1); + this.spaces += buffer.map( i => i[1] ).join(''); + } else { + let token = this.tokens[start]; + throw this.input.error('Unknown word', token[2], token[3]); + } + } + + unexpectedClose(token) { + if ( this.input.safe ) { + this.current.raw.after += '}'; + } else { + throw this.input.error('Unexpected }', token[2], token[3]); + } + } + + unclosedBlock() { + if ( !this.input.safe ) { + let pos = this.current.source.start; + throw this.input.error('Unclosed block', pos.line, pos.column); + } + } + + doubleColon(token) { + if ( !this.input.safe ) { + throw this.input.error('Double colon', token[2], token[3]); + } + } + + unnamedAtrule(node, token) { + if ( this.input.safe ) { + node.name = ''; + } else { + throw this.input.error( + 'At-rule without name', token[2], token[3]); + } + } + + precheckMissedSemicolon(tokens) { + if ( !this.input.safe ) return; + + let colon = this.colon(tokens); + if ( colon === false ) return; + + let split; + for ( split = colon - 1; split >= 0; split-- ) { + if ( tokens[split][0] === 'word' ) break; + } + for ( split -= 1; split >= 0; split-- ) { + if ( tokens[split][0] !== 'space' ) { + split += 1; + break; + } + } + let other = tokens.splice(split, tokens.length - split); + this.decl(other); + } + + checkMissedSemicolon(tokens) { + if ( this.input.safe ) return; + + let colon = this.colon(tokens); + if ( colon === false ) return; + + let founded = 0; + let token; + for ( let j = colon - 1; j >= 0; j-- ) { + token = tokens[j]; + if ( token[0] !== 'space' ) { + founded += 1; + if ( founded === 2 ) break; + } + } + throw this.input.error('Missed semicolon', token[2], token[3]); + } + } From fb75f7423ef92a29bf8a15621dcac4cb2c862357 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 16:09:57 +0300 Subject: [PATCH 0533/3047] Add other topic TODO to syntax.md --- docs/syntax.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/syntax.md b/docs/syntax.md index ec93d0e96..f2bf32ce9 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -57,6 +57,8 @@ TODO: tokenizer and parser TODO: performance: why, tokenizer is important, plain functions and jumps +TODO: tests, cases, jsonify + ## Stringifier Style guide generator is good example of stringifier. It generates output HTML From d3b66503fa2d42880470bedaf9874a466e9c3bf6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 17:06:01 +0300 Subject: [PATCH 0534/3047] Move integration tests to postcss-parser-tests --- .gitignore | 3 --- .npmignore | 2 -- gulpfile.babel.js | 54 ++--------------------------------------------- package.json | 2 +- 4 files changed, 3 insertions(+), 58 deletions(-) diff --git a/.gitignore b/.gitignore index 77ee424a7..f85108659 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,4 @@ npm-debug.log build/ -origin.css -fail.css - /postcss.js diff --git a/.npmignore b/.npmignore index f3c84b760..9a1dd89c6 100644 --- a/.npmignore +++ b/.npmignore @@ -8,8 +8,6 @@ build/ test/ .travis.yml -origin.css -fail.css gulpfile.babel.js logo.svg diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 0b04ce7f7..eaf3a3f30 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -66,59 +66,9 @@ gulp.task('spellcheck', (done) => { // Tests gulp.task('integration', ['build:lib', 'build:package'], (done) => { - let gutil = require('gulp-util'); - let load = require('load-resources'); - let postcss = require('./build/lib/postcss'); - - let error = (url, message) => { - gutil.log(gutil.colors.red('Fail on ' + url)); - done(new gutil.PluginError( - 'integration', { showStack: false, message })); - }; - - let sites = { - GitHub: 'https://github.com/', - Twitter: 'https://twitter.com/', - Bootstrap: 'github:twbs/bootstrap:dist/css/bootstrap.css', - Habrahabr: 'http://habrahabr.ru/', - Browserhacks: 'http://browserhacks.com/' - }; - let urls = Object.keys(sites).map( i => sites[i] ); - - let lastDomain = false; - let siteIndex = -1; - - load(urls, '.css', (css, url, last) => { - postcss().process(css, { - map: { annotation: false }, - safe: url.match('browserhacks.com') - - }).catch( (e) => { - fs.writeFileSync('fail.css', css); - return error(url, 'Parsing error: ' + e.message + e.stack); - - }).then( (result) => { - if ( !result ) return; - - if ( result.css !== css ) { - fs.writeFileSync('origin.css', css); - fs.writeFileSync('fail.css', result.css); - error(url, 'Output is not equal input'); - return; - } - - let domain = url.match(/https?:\/\/[^\/]+/)[0]; - if ( domain !== lastDomain ) { - lastDomain = domain; - siteIndex += 1; - gutil.log('Test ' + Object.keys(sites)[siteIndex] + ' styles'); - } - gutil.log(' ' + gutil.colors.green(path.basename(url))); - - if ( last ) done(); - }).catch(done); - }); + let real = require('postcss-parser-tests/real'); + real(postcss.parse, done); }); gulp.task('test', () => { diff --git a/package.json b/package.json index 3a61b211f..141a9dc50 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,8 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", + "postcss-parser-tests": "postcss/postcss-parser-tests", "gulp-json-editor": "2.2.1", - "load-resources": "0.1.0", "babel-eslint": "4.0.5", "gulp-eslint": "1.0.0", "gulp-babel": "5.2.0", From 35620520f4f560d7ca801506cd8a1d8dffd6fa7a Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Sun, 2 Aug 2015 13:49:22 -0500 Subject: [PATCH 0535/3047] Run tests w/ AppVeyor --- appveyor.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..2dbd37938 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,18 @@ +# http://www.appveyor.com/docs/appveyor-yml + +environment: + matrix: + - nodejs_version: 2 + +version: {build} +build: off +deploy: off + +install: + - ps: Install-Product node $env:nodejs_version + - npm install + +test_script: + - node --version + - npm --version + - npm test From ee3f2f0b84e9fdc28b3eb9bc75ab3130be1955ee Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 21:58:57 +0300 Subject: [PATCH 0536/3047] Move cases tests to postcss-parser-tests --- test/cases/atrule-decls.css | 19 -- test/cases/atrule-decls.json | 281 --------------------- test/cases/atrule-empty.css | 1 - test/cases/atrule-empty.json | 41 --- test/cases/atrule-no-params.css | 1 - test/cases/atrule-no-params.json | 43 ---- test/cases/atrule-no-semicolon.css | 3 - test/cases/atrule-no-semicolon.json | 41 --- test/cases/atrule-no-space.css | 1 - test/cases/atrule-no-space.json | 41 --- test/cases/atrule-params.css | 1 - test/cases/atrule-params.json | 43 ---- test/cases/atrule-rules.css | 10 - test/cases/atrule-rules.json | 176 ------------- test/cases/colon-selector.css | 1 - test/cases/colon-selector.json | 41 --- test/cases/comments.css | 16 -- test/cases/comments.json | 334 ------------------------- test/cases/decls.css | 4 - test/cases/decls.json | 91 ------- test/cases/empty.css | 1 - test/cases/empty.json | 41 --- test/cases/escape.css | 19 -- test/cases/escape.json | 370 ---------------------------- test/cases/extends.css | 8 - test/cases/extends.json | 142 ----------- test/cases/function.css | 3 - test/cases/function.json | 67 ----- test/cases/ie-progid.css | 3 - test/cases/ie-progid.json | 67 ----- test/cases/important.css | 13 - test/cases/important.json | 276 --------------------- test/cases/prop-hacks.css | 5 - test/cases/prop-hacks.json | 115 --------- test/cases/quotes.css | 4 - test/cases/quotes.json | 91 ------- test/cases/raw-decl.css | 1 - test/cases/raw-decl.json | 71 ------ test/cases/rule-at.css | 7 - test/cases/rule-at.json | 144 ----------- test/cases/rule-no-semicolon.css | 1 - test/cases/rule-no-semicolon.json | 67 ----- test/cases/selector.css | 2 - test/cases/selector.json | 45 ---- test/cases/semicolons.css | 4 - test/cases/semicolons.json | 67 ----- test/cases/tab.css | 3 - test/cases/tab.json | 67 ----- test/parse.js | 22 +- test/stringify.js | 11 +- test/utils/jsonify.js | 17 -- 51 files changed, 11 insertions(+), 2932 deletions(-) delete mode 100644 test/cases/atrule-decls.css delete mode 100644 test/cases/atrule-decls.json delete mode 100644 test/cases/atrule-empty.css delete mode 100644 test/cases/atrule-empty.json delete mode 100644 test/cases/atrule-no-params.css delete mode 100644 test/cases/atrule-no-params.json delete mode 100644 test/cases/atrule-no-semicolon.css delete mode 100644 test/cases/atrule-no-semicolon.json delete mode 100644 test/cases/atrule-no-space.css delete mode 100644 test/cases/atrule-no-space.json delete mode 100644 test/cases/atrule-params.css delete mode 100644 test/cases/atrule-params.json delete mode 100644 test/cases/atrule-rules.css delete mode 100644 test/cases/atrule-rules.json delete mode 100644 test/cases/colon-selector.css delete mode 100644 test/cases/colon-selector.json delete mode 100644 test/cases/comments.css delete mode 100644 test/cases/comments.json delete mode 100644 test/cases/decls.css delete mode 100644 test/cases/decls.json delete mode 100644 test/cases/empty.css delete mode 100644 test/cases/empty.json delete mode 100644 test/cases/escape.css delete mode 100644 test/cases/escape.json delete mode 100644 test/cases/extends.css delete mode 100644 test/cases/extends.json delete mode 100644 test/cases/function.css delete mode 100644 test/cases/function.json delete mode 100644 test/cases/ie-progid.css delete mode 100644 test/cases/ie-progid.json delete mode 100644 test/cases/important.css delete mode 100644 test/cases/important.json delete mode 100644 test/cases/prop-hacks.css delete mode 100644 test/cases/prop-hacks.json delete mode 100644 test/cases/quotes.css delete mode 100644 test/cases/quotes.json delete mode 100644 test/cases/raw-decl.css delete mode 100644 test/cases/raw-decl.json delete mode 100644 test/cases/rule-at.css delete mode 100644 test/cases/rule-at.json delete mode 100644 test/cases/rule-no-semicolon.css delete mode 100644 test/cases/rule-no-semicolon.json delete mode 100644 test/cases/selector.css delete mode 100644 test/cases/selector.json delete mode 100644 test/cases/semicolons.css delete mode 100644 test/cases/semicolons.json delete mode 100644 test/cases/tab.css delete mode 100644 test/cases/tab.json delete mode 100644 test/utils/jsonify.js diff --git a/test/cases/atrule-decls.css b/test/cases/atrule-decls.css deleted file mode 100644 index 9b627021b..000000000 --- a/test/cases/atrule-decls.css +++ /dev/null @@ -1,19 +0,0 @@ -@page :left { - background: black -} - -@media(min-width: 0) { - background: white -} - -@font-face { - family-name: "A;' /**/"; -} - -@viewport { - width: 110px; -} - -@-ms-viewport { - width: 100px; -} diff --git a/test/cases/atrule-decls.json b/test/cases/atrule-decls.json deleted file mode 100644 index 553d2bd80..000000000 --- a/test/cases/atrule-decls.json +++ /dev/null @@ -1,281 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "afterName": " ", - "semicolon": false, - "after": "\n" - }, - "type": "atrule", - "name": "page", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 3, - "column": 1 - } - }, - "params": ":left", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 2, - "column": 21 - } - }, - "prop": "background", - "value": "black" - } - ] - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "afterName": "", - "semicolon": false, - "after": "\n" - }, - "type": "atrule", - "name": "media", - "source": { - "start": { - "line": 5, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 7, - "column": 1 - } - }, - "params": "(min-width: 0)", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 6, - "column": 5 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 6, - "column": 21 - } - }, - "prop": "background", - "value": "white" - } - ] - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "afterName": "", - "semicolon": true, - "after": "\n" - }, - "type": "atrule", - "name": "font-face", - "source": { - "start": { - "line": 9, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 11, - "column": 1 - } - }, - "params": "", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 10, - "column": 5 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 10, - "column": 28 - } - }, - "prop": "family-name", - "value": "\"A;' /**/\"" - } - ] - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "afterName": "", - "semicolon": true, - "after": "\n" - }, - "type": "atrule", - "name": "viewport", - "source": { - "start": { - "line": 13, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 15, - "column": 1 - } - }, - "params": "", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 14, - "column": 5 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 14, - "column": 17 - } - }, - "prop": "width", - "value": "110px" - } - ] - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "afterName": "", - "semicolon": true, - "after": "\n" - }, - "type": "atrule", - "name": "-ms-viewport", - "source": { - "start": { - "line": 17, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 19, - "column": 1 - } - }, - "params": "", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 18, - "column": 5 - }, - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - }, - "end": { - "line": 18, - "column": 17 - } - }, - "prop": "width", - "value": "100px" - } - ] - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-decls.css", - "from": "atrule-decls.css" - } - } -} diff --git a/test/cases/atrule-empty.css b/test/cases/atrule-empty.css deleted file mode 100644 index 9f44090c9..000000000 --- a/test/cases/atrule-empty.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8"; diff --git a/test/cases/atrule-empty.json b/test/cases/atrule-empty.json deleted file mode 100644 index 7a08c1339..000000000 --- a/test/cases/atrule-empty.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "raw": { - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": "", - "afterName": " " - }, - "type": "atrule", - "name": "charset", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-empty.css", - "from": "atrule-empty.css" - }, - "end": { - "line": 1, - "column": 17 - } - }, - "params": "\"UTF-8\"" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-empty.css", - "from": "atrule-empty.css" - } - } -} diff --git a/test/cases/atrule-no-params.css b/test/cases/atrule-no-params.css deleted file mode 100644 index 64d101b43..000000000 --- a/test/cases/atrule-no-params.css +++ /dev/null @@ -1 +0,0 @@ -@page{ } diff --git a/test/cases/atrule-no-params.json b/test/cases/atrule-no-params.json deleted file mode 100644 index 48e98aecc..000000000 --- a/test/cases/atrule-no-params.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": "", - "afterName": "", - "after": " " - }, - "type": "atrule", - "name": "page", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-no-params.css", - "from": "atrule-no-params.css" - }, - "end": { - "line": 1, - "column": 8 - } - }, - "params": "", - "nodes": [] - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-no-params.css", - "from": "atrule-no-params.css" - } - } -} diff --git a/test/cases/atrule-no-semicolon.css b/test/cases/atrule-no-semicolon.css deleted file mode 100644 index 1c96c0aad..000000000 --- a/test/cases/atrule-no-semicolon.css +++ /dev/null @@ -1,3 +0,0 @@ - -@charset "UTF-8" - diff --git a/test/cases/atrule-no-semicolon.json b/test/cases/atrule-no-semicolon.json deleted file mode 100644 index e4d8f1e97..000000000 --- a/test/cases/atrule-no-semicolon.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n\n" - }, - "nodes": [ - { - "raw": { - "before": "\n", - "between": "", - "afterName": " " - }, - "type": "atrule", - "name": "charset", - "source": { - "start": { - "line": 2, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-no-semicolon.css", - "from": "atrule-no-semicolon.css" - }, - "end": { - "line": 2, - "column": 16 - } - }, - "params": "\"UTF-8\"" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-no-semicolon.css", - "from": "atrule-no-semicolon.css" - } - } -} diff --git a/test/cases/atrule-no-space.css b/test/cases/atrule-no-space.css deleted file mode 100644 index 86db681ee..000000000 --- a/test/cases/atrule-no-space.css +++ /dev/null @@ -1 +0,0 @@ -@import"test.css" diff --git a/test/cases/atrule-no-space.json b/test/cases/atrule-no-space.json deleted file mode 100644 index 28a5b1b54..000000000 --- a/test/cases/atrule-no-space.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": "", - "afterName": "" - }, - "type": "atrule", - "name": "import", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-no-space.css", - "from": "atrule-no-space.css" - }, - "end": { - "line": 1, - "column": 17 - } - }, - "params": "\"test.css\"" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-no-space.css", - "from": "atrule-no-space.css" - } - } -} diff --git a/test/cases/atrule-params.css b/test/cases/atrule-params.css deleted file mode 100644 index ae224f3ce..000000000 --- a/test/cases/atrule-params.css +++ /dev/null @@ -1 +0,0 @@ -@-moz-document/* near */ /* filter */ url("example.com/{") /* a */ {} diff --git a/test/cases/atrule-params.json b/test/cases/atrule-params.json deleted file mode 100644 index 2981af454..000000000 --- a/test/cases/atrule-params.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " /* a */ ", - "afterName": "/* near */ /* filter */ ", - "after": "" - }, - "type": "atrule", - "name": "-moz-document", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-params.css", - "from": "atrule-params.css" - }, - "end": { - "line": 1, - "column": 69 - } - }, - "params": "url(\"example.com/{\")", - "nodes": [] - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-params.css", - "from": "atrule-params.css" - } - } -} diff --git a/test/cases/atrule-rules.css b/test/cases/atrule-rules.css deleted file mode 100644 index 3f30251dd..000000000 --- a/test/cases/atrule-rules.css +++ /dev/null @@ -1,10 +0,0 @@ -@supports (animation-name: test) { - @-custom-keyframe anim { - from { - color: black; - } - to { - color: white - } - } -} diff --git a/test/cases/atrule-rules.json b/test/cases/atrule-rules.json deleted file mode 100644 index 9c5bec6d9..000000000 --- a/test/cases/atrule-rules.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "afterName": " ", - "semicolon": false, - "after": "\n" - }, - "type": "atrule", - "name": "supports", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - }, - "end": { - "line": 10, - "column": 1 - } - }, - "params": "(animation-name: test)", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": " ", - "afterName": " ", - "semicolon": false, - "after": "\n " - }, - "type": "atrule", - "name": "-custom-keyframe", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - }, - "end": { - "line": 9, - "column": 5 - } - }, - "params": "anim", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": " ", - "semicolon": true, - "after": "\n " - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 4, - "column": 13 - }, - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - }, - "end": { - "line": 4, - "column": 25 - } - }, - "prop": "color", - "value": "black" - } - ], - "type": "rule", - "source": { - "start": { - "line": 3, - "column": 9 - }, - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - }, - "end": { - "line": 5, - "column": 9 - } - }, - "selector": "from" - }, - { - "raw": { - "before": "\n ", - "between": " ", - "semicolon": false, - "after": "\n " - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 7, - "column": 13 - }, - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - }, - "end": { - "line": 7, - "column": 24 - } - }, - "prop": "color", - "value": "white" - } - ], - "type": "rule", - "source": { - "start": { - "line": 6, - "column": 9 - }, - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - }, - "end": { - "line": 8, - "column": 9 - } - }, - "selector": "to" - } - ] - } - ] - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "atrule-rules.css", - "from": "atrule-rules.css" - } - } -} diff --git a/test/cases/colon-selector.css b/test/cases/colon-selector.css deleted file mode 100644 index 8f6a1b093..000000000 --- a/test/cases/colon-selector.css +++ /dev/null @@ -1 +0,0 @@ -:fullscreen {} diff --git a/test/cases/colon-selector.json b/test/cases/colon-selector.json deleted file mode 100644 index 42e3a836f..000000000 --- a/test/cases/colon-selector.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "after": "" - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "colon-selector.css", - "from": "colon-selector.css" - }, - "end": { - "line": 1, - "column": 14 - } - }, - "selector": ":fullscreen" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "colon-selector.css", - "from": "colon-selector.css" - } - } -} diff --git a/test/cases/comments.css b/test/cases/comments.css deleted file mode 100644 index df1ae6d98..000000000 --- a/test/cases/comments.css +++ /dev/null @@ -1,16 +0,0 @@ -/* a { color: black } */ -/**/ -/* */ -div { - /* inside */ - color: black; - /* between */ - border-radius: 3px / 7px - /* end */ -} -/* b */ - -a { - color: black; - /* c */ -} diff --git a/test/cases/comments.json b/test/cases/comments.json deleted file mode 100644 index 351a4ae6d..000000000 --- a/test/cases/comments.json +++ /dev/null @@ -1,334 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "left": " ", - "right": " " - }, - "type": "comment", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 1, - "column": 24 - } - }, - "text": "a { color: black }" - }, - { - "raw": { - "before": "\n", - "left": "", - "right": "" - }, - "type": "comment", - "source": { - "start": { - "line": 2, - "column": 1 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 2, - "column": 4 - } - }, - "text": "" - }, - { - "raw": { - "before": "\n", - "left": " ", - "right": "" - }, - "type": "comment", - "source": { - "start": { - "line": 3, - "column": 1 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 3, - "column": 5 - } - }, - "text": "" - }, - { - "raw": { - "before": "\n", - "between": " ", - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "left": " ", - "right": " " - }, - "type": "comment", - "source": { - "start": { - "line": 5, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 5, - "column": 16 - } - }, - "text": "inside" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 6, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 6, - "column": 17 - } - }, - "prop": "color", - "value": "black" - }, - { - "raw": { - "before": "\n ", - "left": " ", - "right": " " - }, - "type": "comment", - "source": { - "start": { - "line": 7, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 7, - "column": 17 - } - }, - "text": "between" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 8, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 8, - "column": 28 - } - }, - "prop": "border-radius", - "value": "3px / 7px" - }, - { - "raw": { - "before": "\n ", - "left": " ", - "right": " " - }, - "type": "comment", - "source": { - "start": { - "line": 9, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 9, - "column": 13 - } - }, - "text": "end" - } - ], - "type": "rule", - "source": { - "start": { - "line": 4, - "column": 1 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 10, - "column": 1 - } - }, - "selector": "div" - }, - { - "raw": { - "before": "\n", - "left": " ", - "right": " " - }, - "type": "comment", - "source": { - "start": { - "line": 11, - "column": 1 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 11, - "column": 7 - } - }, - "text": "b" - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 14, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 14, - "column": 17 - } - }, - "prop": "color", - "value": "black" - }, - { - "raw": { - "before": "\n ", - "left": " ", - "right": " " - }, - "type": "comment", - "source": { - "start": { - "line": 15, - "column": 5 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 15, - "column": 11 - } - }, - "text": "c" - } - ], - "type": "rule", - "source": { - "start": { - "line": 13, - "column": 1 - }, - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - }, - "end": { - "line": 16, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "comments.css", - "from": "comments.css" - } - } -} diff --git a/test/cases/decls.css b/test/cases/decls.css deleted file mode 100644 index 5bbce091c..000000000 --- a/test/cases/decls.css +++ /dev/null @@ -1,4 +0,0 @@ -a { - color: black; - background: white; -} diff --git a/test/cases/decls.json b/test/cases/decls.json deleted file mode 100644 index f6962846b..000000000 --- a/test/cases/decls.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "decls.css", - "from": "decls.css" - }, - "end": { - "line": 2, - "column": 17 - } - }, - "prop": "color", - "value": "black" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 3, - "column": 5 - }, - "input": { - "safe": false, - "file": "decls.css", - "from": "decls.css" - }, - "end": { - "line": 3, - "column": 22 - } - }, - "prop": "background", - "value": "white" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "decls.css", - "from": "decls.css" - }, - "end": { - "line": 4, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "decls.css", - "from": "decls.css" - } - } -} diff --git a/test/cases/empty.css b/test/cases/empty.css deleted file mode 100644 index 0967ef424..000000000 --- a/test/cases/empty.css +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/cases/empty.json b/test/cases/empty.json deleted file mode 100644 index 9ce76fc96..000000000 --- a/test/cases/empty.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": "", - "after": "" - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "empty.css", - "from": "empty.css" - }, - "end": { - "line": 1, - "column": 2 - } - }, - "selector": "" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "empty.css", - "from": "empty.css" - } - } -} diff --git a/test/cases/escape.css b/test/cases/escape.css deleted file mode 100644 index 970712fc7..000000000 --- a/test/cases/escape.css +++ /dev/null @@ -1,19 +0,0 @@ -a { - background: url("a).png"); - background: url(a;a); - background: \;a; -} - -:not([foo=")"]) { } -:not(div/*)*/) { } -:not(:nth-child(2n of [foo=")"])) { } -[foo=\"] { } -[foo=\{] { } -[foo=\(] { } -[foo=yes\:\(it\'s\ work\)] { } - -\@noat { } - -h1\\{ - color: \\; -} diff --git a/test/cases/escape.json b/test/cases/escape.json deleted file mode 100644 index 212c715fb..000000000 --- a/test/cases/escape.json +++ /dev/null @@ -1,370 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 2, - "column": 30 - } - }, - "prop": "background", - "value": "url(\"a).png\")" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 3, - "column": 5 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 3, - "column": 25 - } - }, - "prop": "background", - "value": "url(a;a)" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 4, - "column": 5 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 4, - "column": 20 - } - }, - "prop": "background", - "value": "\\;a" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 5, - "column": 1 - } - }, - "selector": "a" - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 7, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 7, - "column": 19 - } - }, - "selector": ":not([foo=\")\"])" - }, - { - "raw": { - "before": "\n", - "between": " ", - "selector": { - "value": ":not(div)", - "raw": ":not(div/*)*/)" - }, - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 8, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 8, - "column": 18 - } - }, - "selector": ":not(div)" - }, - { - "raw": { - "before": "\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 9, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 9, - "column": 37 - } - }, - "selector": ":not(:nth-child(2n of [foo=\")\"]))" - }, - { - "raw": { - "before": "\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 10, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 10, - "column": 12 - } - }, - "selector": "[foo=\\\"]" - }, - { - "raw": { - "before": "\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 11, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 11, - "column": 12 - } - }, - "selector": "[foo=\\{]" - }, - { - "raw": { - "before": "\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 12, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 12, - "column": 12 - } - }, - "selector": "[foo=\\(]" - }, - { - "raw": { - "before": "\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 13, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 13, - "column": 30 - } - }, - "selector": "[foo=yes\\:\\(it\\'s\\ work\\)]" - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "after": " " - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 15, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 15, - "column": 10 - } - }, - "selector": "\\@noat" - }, - { - "raw": { - "before": "\n\n", - "between": "", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 18, - "column": 5 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 18, - "column": 14 - } - }, - "prop": "color", - "value": "\\\\" - } - ], - "type": "rule", - "source": { - "start": { - "line": 17, - "column": 1 - }, - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - }, - "end": { - "line": 19, - "column": 1 - } - }, - "selector": "h1\\\\" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "escape.css", - "from": "escape.css" - } - } -} diff --git a/test/cases/extends.css b/test/cases/extends.css deleted file mode 100644 index a87c452df..000000000 --- a/test/cases/extends.css +++ /dev/null @@ -1,8 +0,0 @@ -one: 1; - -a { - two: 2; - b { - three: 3; - } -} diff --git a/test/cases/extends.json b/test/cases/extends.json deleted file mode 100644 index f294f0480..000000000 --- a/test/cases/extends.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "extends.css", - "from": "extends.css" - }, - "end": { - "line": 1, - "column": 7 - } - }, - "prop": "one", - "value": "1" - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 4, - "column": 5 - }, - "input": { - "safe": false, - "file": "extends.css", - "from": "extends.css" - }, - "end": { - "line": 4, - "column": 11 - } - }, - "prop": "two", - "value": "2" - }, - { - "raw": { - "before": "\n ", - "between": " ", - "semicolon": true, - "after": "\n " - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 6, - "column": 9 - }, - "input": { - "safe": false, - "file": "extends.css", - "from": "extends.css" - }, - "end": { - "line": 6, - "column": 17 - } - }, - "prop": "three", - "value": "3" - } - ], - "type": "rule", - "source": { - "start": { - "line": 5, - "column": 5 - }, - "input": { - "safe": false, - "file": "extends.css", - "from": "extends.css" - }, - "end": { - "line": 7, - "column": 5 - } - }, - "selector": "b" - } - ], - "type": "rule", - "source": { - "start": { - "line": 3, - "column": 1 - }, - "input": { - "safe": false, - "file": "extends.css", - "from": "extends.css" - }, - "end": { - "line": 8, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "extends.css", - "from": "extends.css" - } - } -} diff --git a/test/cases/function.css b/test/cases/function.css deleted file mode 100644 index d3e916ecc..000000000 --- a/test/cases/function.css +++ /dev/null @@ -1,3 +0,0 @@ -a { - background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) -} diff --git a/test/cases/function.json b/test/cases/function.json deleted file mode 100644 index c6c88aeca..000000000 --- a/test/cases/function.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "function.css", - "from": "function.css" - }, - "end": { - "line": 2, - "column": 105 - } - }, - "prop": "background-image", - "value": "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "function.css", - "from": "function.css" - }, - "end": { - "line": 3, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "function.css", - "from": "function.css" - } - } -} diff --git a/test/cases/ie-progid.css b/test/cases/ie-progid.css deleted file mode 100644 index 4b1020229..000000000 --- a/test/cases/ie-progid.css +++ /dev/null @@ -1,3 +0,0 @@ -a { - filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3); -} diff --git a/test/cases/ie-progid.json b/test/cases/ie-progid.json deleted file mode 100644 index 7f9b44ef3..000000000 --- a/test/cases/ie-progid.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "ie-progid.css", - "from": "ie-progid.css" - }, - "end": { - "line": 2, - "column": 118 - } - }, - "prop": "filter", - "value": "progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3)" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "ie-progid.css", - "from": "ie-progid.css" - }, - "end": { - "line": 3, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "ie-progid.css", - "from": "ie-progid.css" - } - } -} diff --git a/test/cases/important.css b/test/cases/important.css deleted file mode 100644 index 75bcc450f..000000000 --- a/test/cases/important.css +++ /dev/null @@ -1,13 +0,0 @@ -a { - width: 1px!important; - color: black !important ; -} - -p { - prop: important; - color: red important; - margin: 10px ! important; - padding: 20px ! /* test */ important; - width: 100px ! /*! test */ important; - height: 100px /*! test */ important; -} diff --git a/test/cases/important.json b/test/cases/important.json deleted file mode 100644 index 1bccc6caa..000000000 --- a/test/cases/important.json +++ /dev/null @@ -1,276 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": ", - "important": "!important" - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 2, - "column": 25 - } - }, - "prop": "width", - "important": true, - "value": "1px" - }, - { - "raw": { - "before": "\n ", - "between": ": ", - "important": " !important " - }, - "type": "decl", - "source": { - "start": { - "line": 3, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 3, - "column": 30 - } - }, - "prop": "color", - "important": true, - "value": "black" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 4, - "column": 1 - } - }, - "selector": "a" - }, - { - "raw": { - "before": "\n\n", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 7, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 7, - "column": 20 - } - }, - "prop": "prop", - "value": "important" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 8, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 8, - "column": 25 - } - }, - "prop": "color", - "value": "red important" - }, - { - "raw": { - "before": "\n ", - "between": ": ", - "important": " ! important" - }, - "type": "decl", - "source": { - "start": { - "line": 9, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 9, - "column": 39 - } - }, - "prop": "margin", - "important": true, - "value": "10px" - }, - { - "raw": { - "before": "\n ", - "between": ": ", - "important": " ! /* test */ important" - }, - "type": "decl", - "source": { - "start": { - "line": 10, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 10, - "column": 48 - } - }, - "prop": "padding", - "important": true, - "value": "20px" - }, - { - "raw": { - "before": "\n ", - "between": ": ", - "important": " ! /*! test */ important" - }, - "type": "decl", - "source": { - "start": { - "line": 11, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 11, - "column": 41 - } - }, - "prop": "width", - "important": true, - "value": "100px" - }, - { - "raw": { - "before": "\n ", - "between": ": ", - "value": { - "value": "100px important", - "raw": "100px /*! test */ important" - } - }, - "type": "decl", - "source": { - "start": { - "line": 12, - "column": 5 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 12, - "column": 40 - } - }, - "prop": "height", - "value": "100px important" - } - ], - "type": "rule", - "source": { - "start": { - "line": 6, - "column": 1 - }, - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - }, - "end": { - "line": 13, - "column": 1 - } - }, - "selector": "p" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "important.css", - "from": "important.css" - } - } -} diff --git a/test/cases/prop-hacks.css b/test/cases/prop-hacks.css deleted file mode 100644 index b495a90f9..000000000 --- a/test/cases/prop-hacks.css +++ /dev/null @@ -1,5 +0,0 @@ -a { - *color : black; - _background: white; - font-size/**/: big; -} diff --git a/test/cases/prop-hacks.json b/test/cases/prop-hacks.json deleted file mode 100644 index b04560855..000000000 --- a/test/cases/prop-hacks.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n *", - "between": " : " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "prop-hacks.css", - "from": "prop-hacks.css" - }, - "end": { - "line": 2, - "column": 19 - } - }, - "prop": "color", - "value": "black" - }, - { - "raw": { - "before": "\n _", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 3, - "column": 5 - }, - "input": { - "safe": false, - "file": "prop-hacks.css", - "from": "prop-hacks.css" - }, - "end": { - "line": 3, - "column": 23 - } - }, - "prop": "background", - "value": "white" - }, - { - "raw": { - "before": "\n ", - "between": "/**/: " - }, - "type": "decl", - "source": { - "start": { - "line": 4, - "column": 5 - }, - "input": { - "safe": false, - "file": "prop-hacks.css", - "from": "prop-hacks.css" - }, - "end": { - "line": 4, - "column": 23 - } - }, - "prop": "font-size", - "value": "big" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "prop-hacks.css", - "from": "prop-hacks.css" - }, - "end": { - "line": 5, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "prop-hacks.css", - "from": "prop-hacks.css" - } - } -} diff --git a/test/cases/quotes.css b/test/cases/quotes.css deleted file mode 100644 index a580478b5..000000000 --- a/test/cases/quotes.css +++ /dev/null @@ -1,4 +0,0 @@ -a::before { - content: ";'@ /**/\""; - content: '\'"\\'; -} diff --git a/test/cases/quotes.json b/test/cases/quotes.json deleted file mode 100644 index a236e4603..000000000 --- a/test/cases/quotes.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "quotes.css", - "from": "quotes.css" - }, - "end": { - "line": 2, - "column": 26 - } - }, - "prop": "content", - "value": "\";'@ /**/\\\"\"" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 3, - "column": 5 - }, - "input": { - "safe": false, - "file": "quotes.css", - "from": "quotes.css" - }, - "end": { - "line": 3, - "column": 21 - } - }, - "prop": "content", - "value": "'\\'\"\\\\'" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "quotes.css", - "from": "quotes.css" - }, - "end": { - "line": 4, - "column": 1 - } - }, - "selector": "a::before" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "quotes.css", - "from": "quotes.css" - } - } -} diff --git a/test/cases/raw-decl.css b/test/cases/raw-decl.css deleted file mode 100644 index 52c444dcb..000000000 --- a/test/cases/raw-decl.css +++ /dev/null @@ -1 +0,0 @@ -a { color: a/* ; */ b; } diff --git a/test/cases/raw-decl.json b/test/cases/raw-decl.json deleted file mode 100644 index 5cb31b25f..000000000 --- a/test/cases/raw-decl.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": " " - }, - "nodes": [ - { - "raw": { - "before": " ", - "between": ": ", - "value": { - "value": "a b", - "raw": "a/* ; */ b" - } - }, - "type": "decl", - "source": { - "start": { - "line": 1, - "column": 5 - }, - "input": { - "safe": false, - "file": "raw-decl.css", - "from": "raw-decl.css" - }, - "end": { - "line": 1, - "column": 22 - } - }, - "prop": "color", - "value": "a b" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "raw-decl.css", - "from": "raw-decl.css" - }, - "end": { - "line": 1, - "column": 24 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "raw-decl.css", - "from": "raw-decl.css" - } - } -} diff --git a/test/cases/rule-at.css b/test/cases/rule-at.css deleted file mode 100644 index 91a5ae0a7..000000000 --- a/test/cases/rule-at.css +++ /dev/null @@ -1,7 +0,0 @@ -a { - width: 10px; - margin: 0 @width; - @mixin mobile { - height: 100px; - } -} diff --git a/test/cases/rule-at.json b/test/cases/rule-at.json deleted file mode 100644 index 434ca520e..000000000 --- a/test/cases/rule-at.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "rule-at.css", - "from": "rule-at.css" - }, - "end": { - "line": 2, - "column": 16 - } - }, - "prop": "width", - "value": "10px" - }, - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 3, - "column": 5 - }, - "input": { - "safe": false, - "file": "rule-at.css", - "from": "rule-at.css" - }, - "end": { - "line": 3, - "column": 21 - } - }, - "prop": "margin", - "value": "0 @width" - }, - { - "raw": { - "before": "\n ", - "between": " ", - "afterName": " ", - "semicolon": true, - "after": "\n " - }, - "type": "atrule", - "name": "mixin", - "source": { - "start": { - "line": 4, - "column": 5 - }, - "input": { - "safe": false, - "file": "rule-at.css", - "from": "rule-at.css" - }, - "end": { - "line": 6, - "column": 5 - } - }, - "params": "mobile", - "nodes": [ - { - "raw": { - "before": "\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 5, - "column": 9 - }, - "input": { - "safe": false, - "file": "rule-at.css", - "from": "rule-at.css" - }, - "end": { - "line": 5, - "column": 22 - } - }, - "prop": "height", - "value": "100px" - } - ] - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "rule-at.css", - "from": "rule-at.css" - }, - "end": { - "line": 7, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "rule-at.css", - "from": "rule-at.css" - } - } -} diff --git a/test/cases/rule-no-semicolon.css b/test/cases/rule-no-semicolon.css deleted file mode 100644 index 3a5f0709d..000000000 --- a/test/cases/rule-no-semicolon.css +++ /dev/null @@ -1 +0,0 @@ -a{color:black} diff --git a/test/cases/rule-no-semicolon.json b/test/cases/rule-no-semicolon.json deleted file mode 100644 index 7ac12ed8b..000000000 --- a/test/cases/rule-no-semicolon.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": "", - "semicolon": false, - "after": "" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": ":" - }, - "type": "decl", - "source": { - "start": { - "line": 1, - "column": 3 - }, - "input": { - "safe": false, - "file": "rule-no-semicolon.css", - "from": "rule-no-semicolon.css" - }, - "end": { - "line": 1, - "column": 13 - } - }, - "prop": "color", - "value": "black" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "rule-no-semicolon.css", - "from": "rule-no-semicolon.css" - }, - "end": { - "line": 1, - "column": 14 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "rule-no-semicolon.css", - "from": "rule-no-semicolon.css" - } - } -} diff --git a/test/cases/selector.css b/test/cases/selector.css deleted file mode 100644 index ad0472d61..000000000 --- a/test/cases/selector.css +++ /dev/null @@ -1,2 +0,0 @@ - -a/* { } */ b {} diff --git a/test/cases/selector.json b/test/cases/selector.json deleted file mode 100644 index ab1f1027b..000000000 --- a/test/cases/selector.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n", - "between": " ", - "selector": { - "value": "a b", - "raw": "a/* { } */ b" - }, - "after": "" - }, - "nodes": [], - "type": "rule", - "source": { - "start": { - "line": 2, - "column": 1 - }, - "input": { - "safe": false, - "file": "selector.css", - "from": "selector.css" - }, - "end": { - "line": 2, - "column": 15 - } - }, - "selector": "a b" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "selector.css", - "from": "selector.css" - } - } -} diff --git a/test/cases/semicolons.css b/test/cases/semicolons.css deleted file mode 100644 index a1952397b..000000000 --- a/test/cases/semicolons.css +++ /dev/null @@ -1,4 +0,0 @@ -a {;; - color: black; - ; ; -} diff --git a/test/cases/semicolons.json b/test/cases/semicolons.json deleted file mode 100644 index 8fc3ba341..000000000 --- a/test/cases/semicolons.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": true, - "after": "\n ; ;\n" - }, - "nodes": [ - { - "raw": { - "before": ";;\n ", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 5 - }, - "input": { - "safe": false, - "file": "semicolons.css", - "from": "semicolons.css" - }, - "end": { - "line": 2, - "column": 17 - } - }, - "prop": "color", - "value": "black" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "semicolons.css", - "from": "semicolons.css" - }, - "end": { - "line": 4, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "semicolons.css", - "from": "semicolons.css" - } - } -} diff --git a/test/cases/tab.css b/test/cases/tab.css deleted file mode 100644 index 745359d34..000000000 --- a/test/cases/tab.css +++ /dev/null @@ -1,3 +0,0 @@ -a { - color: black -} diff --git a/test/cases/tab.json b/test/cases/tab.json deleted file mode 100644 index f7caf6667..000000000 --- a/test/cases/tab.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "raw": { - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "", - "between": " ", - "semicolon": false, - "after": "\n" - }, - "nodes": [ - { - "raw": { - "before": "\n\t", - "between": ": " - }, - "type": "decl", - "source": { - "start": { - "line": 2, - "column": 2 - }, - "input": { - "safe": false, - "file": "tab.css", - "from": "tab.css" - }, - "end": { - "line": 2, - "column": 13 - } - }, - "prop": "color", - "value": "black" - } - ], - "type": "rule", - "source": { - "start": { - "line": 1, - "column": 1 - }, - "input": { - "safe": false, - "file": "tab.css", - "from": "tab.css" - }, - "end": { - "line": 3, - "column": 1 - } - }, - "selector": "a" - } - ], - "type": "root", - "source": { - "input": { - "safe": false, - "file": "tab.css", - "from": "tab.css" - } - } -} diff --git a/test/parse.js b/test/parse.js index 1b6a6b316..a54146c64 100644 --- a/test/parse.js +++ b/test/parse.js @@ -2,20 +2,16 @@ import Input from '../lib/input'; import parse from '../lib/parse'; import Root from '../lib/root'; -import jsonify from './utils/jsonify'; - import { expect } from 'chai'; +import cases from 'postcss-parser-tests'; import path from 'path'; import fs from 'fs'; -let read = name => fs.readFileSync(path.join(__dirname, 'cases', name)); - describe('postcss.parse()', () => { it('works with file reads', () => { - let file = path.join(__dirname, 'cases', 'atrule-empty.css'); - let css = fs.readFileSync(file); - expect(parse(css, { from: file })).to.be.instanceOf(Root); + let stream = fs.readFileSync(cases.path('atrule-empty.css')); + expect(parse(stream)).to.be.instanceOf(Root); }); describe('empty file', () => { @@ -49,13 +45,10 @@ describe('postcss.parse()', () => { }); - fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { - if ( !name.match(/\.css$/) ) return; - + cases.each( (name, css, json) => { it('parses ' + name, () => { - let css = jsonify(parse(read(name), { from: '/' + name })); - let json = read(name.replace(/\.css$/, '.json')).toString().trim(); - expect(JSON.stringify(css, null, 4)).to.eql(json); + let parsed = cases.jsonify(parse(css, { from: name })); + expect(parsed).to.eql(json); }); }); @@ -83,7 +76,8 @@ describe('postcss.parse()', () => { }); it('sets parent node', () => { - let css = parse(read('atrule-rules.css')); + let file = cases.path('atrule-rules.css'); + let css = parse(fs.readFileSync(file)); let support = css.first; let keyframes = support.first; diff --git a/test/stringify.js b/test/stringify.js index b2a4c45b7..4f1b73686 100644 --- a/test/stringify.js +++ b/test/stringify.js @@ -2,22 +2,17 @@ import stringify from '../lib/stringify'; import parse from '../lib/parse'; import { expect } from 'chai'; +import cases from 'postcss-parser-tests'; import path from 'path'; import fs from 'fs'; describe('stringify', () => { - fs.readdirSync(path.join(__dirname, 'cases')).forEach( name => { - if ( !name.match(/\.css$/) ) return; - + cases.each( (name, css, json) => { it('stringifies ' + name, () => { - let file = path.join(__dirname, 'cases', name); - let css = fs.readFileSync(file).toString(); - let root = parse(css, { from: file }); - + let root = parse(css, { from: name }); let result = ''; stringify(root, i => result += i ); - expect(result).to.eql(css); }); }); diff --git a/test/utils/jsonify.js b/test/utils/jsonify.js deleted file mode 100644 index 1597e20ca..000000000 --- a/test/utils/jsonify.js +++ /dev/null @@ -1,17 +0,0 @@ -import path from 'path'; - -function clean(node) { - delete node.source.input.css; - node.source.input.file = path.basename(node.source.input.file); - node.source.input.from = path.basename(node.source.input.from); - - if ( node.nodes ) { - node.nodes = node.nodes.map( i => clean(i) ); - } - - return node; -} - -export default function jsonify(node) { - return clean(node.toJSON()); -} From 332096a669af0aff1aa1e63e129f456a1305b0d6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 2 Aug 2015 23:33:07 +0300 Subject: [PATCH 0537/3047] Update parser tests API --- gulpfile.babel.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index eaf3a3f30..0708bf715 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -68,7 +68,9 @@ gulp.task('spellcheck', (done) => { gulp.task('integration', ['build:lib', 'build:package'], (done) => { let postcss = require('./build/lib/postcss'); let real = require('postcss-parser-tests/real'); - real(postcss.parse, done); + real(done, (css) => { + return postcss.parse(css).toResult({ map: { annotation: false } }); + }); }); gulp.task('test', () => { From 3919efbec8fa74de822a2288b72ac6752ad2fb3a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 02:16:38 +0300 Subject: [PATCH 0538/3047] Add appveyor.yml to npm ignore --- .npmignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.npmignore b/.npmignore index 9a1dd89c6..ff1648653 100644 --- a/.npmignore +++ b/.npmignore @@ -8,6 +8,7 @@ build/ test/ .travis.yml +appveyor.yml gulpfile.babel.js logo.svg From 382de6113dc7b25db9d6fbd0795558c2ccd8025a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 02:58:44 +0300 Subject: [PATCH 0539/3047] Move Safe Parser to separated project --- README.md | 37 ++++++++++++++++---------- docs/api.md | 5 ---- lib/input.js | 2 -- lib/parse.js | 13 ++++++++-- lib/parser.js | 67 ++++++++---------------------------------------- lib/tokenize.js | 17 +++++------- package.json | 11 ++++---- test/parse.js | 63 --------------------------------------------- test/tokenize.js | 8 ------ 9 files changed, 56 insertions(+), 167 deletions(-) diff --git a/README.md b/README.md index 042dd71d0..7e58ffdfc 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,29 @@ Read the [PostCSS API] for more details about the JS API. [Gulp]: https://github.com/postcss/gulp-postcss [ENB]: https://github.com/theprotein/enb-postcss +## Syntaxes + +PostCSS can transforms styles in any syntax, not only in CSS. +There are 3 special arguments in `process()` method to control syntax. +You can even separately set input parser and output stringifier. + +* `syntax` accepts object with parser and stringifier. +* `parser` accepts input parser function. +* `stringifier` accepts output stringifier function. + +```js +var safe = require('postcss-safe-parser'); +postcss(plugins).process(css, { parser: safe }).then(function (result) { + // result will contains fixed and processed CSS +}); +``` + +### Parsers + +* [`postcss-safe-parser`] finds and fix CSS syntax errors. + +[`postcss-safe-parser`]: https://github.com/postcss/postcss-safe-parser + ## Plugins Go to [postcss.parts] for a searchable catalog of the plugins mentioned below. @@ -633,17 +656,3 @@ option as an object with the following parameters: If you have set `inline: true`, annotation cannot be disabled. [source maps]: http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/ - -### Safe Mode - -If you pass the `safe: true` option to the `process` or `parse` methods, -PostCSS will try to correct any syntax errors that it finds in the CSS. - -```js -postcss.parse('a {'); // will throw "Unclosed block" -postcss.parse('a {', { safe: true }); // will return CSS root for a {} -``` - -This is useful for legacy code filled with hacks. Another use-case -is interactive tools with live input — for example, -the [Autoprefixer demo](http://jsfiddle.net/simevidas/udyTs/show/light/). diff --git a/docs/api.md b/docs/api.md index 7d33e2fb0..68a11ff4c 100644 --- a/docs/api.md +++ b/docs/api.md @@ -60,8 +60,6 @@ Arguments: * `opts (object) optional`: options: * `from`: the path to the source CSS file. You should always set `from`, because it is used in map generation and in syntax error messages. - * `safe`: enable [Safe Mode], in which PostCSS will try - to fix CSS syntax errors. * `map`: an object of [source map options]. Only `map.prev` is used in `parse`. @@ -295,8 +293,6 @@ Arguments: * `parse`: function to generate AST by string. * `stringify`: class to generate string by AST. * `syntax`: object with `parse` and `stringify` properties. - * `safe`: enable [Safe Mode], in which PostCSS will try - to fix CSS syntax errors. * `map`: an object of [source map options]. ### `processor.plugins` @@ -1728,7 +1724,6 @@ var comment.text //=> 'Empty file' [Promise]: http://www.html5rocks.com/en/tutorials/es6/promises/ [source map options]: https://github.com/postcss/postcss#source-map -[Safe Mode]: https://github.com/postcss/postcss#safe-mode [`Processor#process(css, opts)`]: #processorprocesscss-opts [`Root#toResult(opts)`]: #roottoresult-opts diff --git a/lib/input.js b/lib/input.js index deea735dc..4f2ed84d1 100644 --- a/lib/input.js +++ b/lib/input.js @@ -14,8 +14,6 @@ export default class Input { this.css = this.css.slice(1); } - this.safe = !!opts.safe; - if ( opts.from ) this.file = path.resolve(opts.from); let map = new PreviousMap(this.css, opts, this.id); diff --git a/lib/parse.js b/lib/parse.js index 4ffdffbbd..81b5eb418 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -1,7 +1,16 @@ -import Parser from './parser'; -import Input from './input'; +import safeParse from 'postcss-safe-parser'; + +import warnOnce from './warn-once'; +import Parser from './parser'; +import Input from './input'; export default function parse(css, opts) { + if ( opts && opts.safe ) { + warnOnce('Option safe is deprecated. ' + + 'Use parser: require("postcss-safe-parser")'); + return safeParse(css, opts); + } + let input = new Input(css, opts); let parser = new Parser(input); diff --git a/lib/parser.js b/lib/parser.js index 54cdbf54f..3972ab64b 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -421,85 +421,38 @@ export default class Parser { // Errors unknownDecl(node, token) { - if ( this.input.safe ) { - node.source.start = { line: token[2], column: token[3] }; - node.raw.before += node.prop + node.raw.between; - node.raw.between = ''; - node.prop = token[1]; - } else { - throw this.input.error('Unknown word', token[2], token[3]); - } + throw this.input.error('Unknown word', token[2], token[3]); } unclosedBracket(bracket) { - if ( !this.input.safe ) { - throw this.input.error('Unclosed bracket', bracket[2], bracket[3]); - } + throw this.input.error('Unclosed bracket', bracket[2], bracket[3]); } unknownWord(start) { - if ( this.input.safe ) { - let buffer = this.tokens.slice(start, this.pos + 1); - this.spaces += buffer.map( i => i[1] ).join(''); - } else { - let token = this.tokens[start]; - throw this.input.error('Unknown word', token[2], token[3]); - } + let token = this.tokens[start]; + throw this.input.error('Unknown word', token[2], token[3]); } unexpectedClose(token) { - if ( this.input.safe ) { - this.current.raw.after += '}'; - } else { - throw this.input.error('Unexpected }', token[2], token[3]); - } + throw this.input.error('Unexpected }', token[2], token[3]); } unclosedBlock() { - if ( !this.input.safe ) { - let pos = this.current.source.start; - throw this.input.error('Unclosed block', pos.line, pos.column); - } + let pos = this.current.source.start; + throw this.input.error('Unclosed block', pos.line, pos.column); } doubleColon(token) { - if ( !this.input.safe ) { - throw this.input.error('Double colon', token[2], token[3]); - } + throw this.input.error('Double colon', token[2], token[3]); } unnamedAtrule(node, token) { - if ( this.input.safe ) { - node.name = ''; - } else { - throw this.input.error( - 'At-rule without name', token[2], token[3]); - } + throw this.input.error('At-rule without name', token[2], token[3]); } - precheckMissedSemicolon(tokens) { - if ( !this.input.safe ) return; - - let colon = this.colon(tokens); - if ( colon === false ) return; - - let split; - for ( split = colon - 1; split >= 0; split-- ) { - if ( tokens[split][0] === 'word' ) break; - } - for ( split -= 1; split >= 0; split-- ) { - if ( tokens[split][0] !== 'space' ) { - split += 1; - break; - } - } - let other = tokens.splice(split, tokens.length - split); - this.decl(other); - } + precheckMissedSemicolon(tokens) { } checkMissedSemicolon(tokens) { - if ( this.input.safe ) return; - let colon = this.colon(tokens); if ( colon === false ) return; diff --git a/lib/tokenize.js b/lib/tokenize.js index 5b74328ec..23cd3017e 100644 --- a/lib/tokenize.js +++ b/lib/tokenize.js @@ -31,15 +31,6 @@ export default function tokenize(input) { let line = 1; let pos = 0; - let unclosed = function (what, end) { - if ( input.safe ) { - css += end; - next = css.length - 1; - } else { - throw input.error('Unclosed ' + what, line, pos - offset); - } - }; - while ( pos < length ) { code = css.charCodeAt(pos); @@ -115,7 +106,9 @@ export default function tokenize(input) { do { escaped = false; next = css.indexOf(quote, next + 1); - if ( next === -1 ) unclosed('quote', quote); + if ( next === -1 ) { + throw input.error('Unclosed quote', line, pos - offset); + } escapePos = next; while ( css.charCodeAt(escapePos - 1) === BACKSLASH ) { escapePos -= 1; @@ -171,7 +164,9 @@ export default function tokenize(input) { default: if ( code === SLASH && css.charCodeAt(pos + 1) === ASTERICK ) { next = css.indexOf('*/', pos + 2) + 1; - if ( next === 0 ) unclosed('comment', '*/'); + if ( next === 0 ) { + throw input.error('Unclosed comment', line, pos - offset); + } content = css.slice(pos, next + 1); lines = content.split('\n'); diff --git a/package.json b/package.json index 141a9dc50..08ad10524 100644 --- a/package.json +++ b/package.json @@ -20,11 +20,12 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "supports-color": "~3.1.0", - "es6-promise": "~2.3.0", - "source-map": "~0.4.4", - "babel-core": "5.8.20", - "js-base64": "~2.1.9" + "postcss-safe-parser": "postcss/postcss-safe-parser", + "supports-color": "~3.1.0", + "es6-promise": "~2.3.0", + "source-map": "~0.4.4", + "babel-core": "5.8.20", + "js-base64": "~2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", diff --git a/test/parse.js b/test/parse.js index a54146c64..575a09ce1 100644 --- a/test/parse.js +++ b/test/parse.js @@ -101,105 +101,42 @@ describe('postcss.parse()', () => { expect( () => parse('\na {\n') ).to.throw(/:2:1: Unclosed block/); }); - it('fixes unclosed blocks in safe mode', () => { - expect(parse('@media (screen) { a {\n', { safe: true }).toString()) - .to.eql('@media (screen) { a {\n}}'); - - expect(parse('a { color', { safe: true }).toString()) - .to.eql('a { color}'); - - expect(parse('a { color: black', { safe: true }).first.first.prop) - .to.eql('color'); - }); - it('throws on unnecessary block close', () => { expect( () => parse('a {\n} }') ).to.throw(/:2:3: Unexpected }/); }); - it('fixes unnecessary block close in safe mode', () => { - let root = parse('a {\n} }', { safe: true }); - expect(root.first.toString()).to.eql('a {\n}'); - expect(root.raw.after).to.eql(' }'); - }); - it('throws on unclosed comment', () => { expect( () => parse('\n/*\n ') ).to.throw(/:2:1: Unclosed comment/); }); - it('fixes unclosed comment in safe mode', () => { - let root = parse('a { /* b ', { safe: true }); - expect(root.toString()).to.eql('a { /* b */}'); - expect(root.first.first.text).to.eql('b'); - }); - it('throws on unclosed quote', () => { expect( () => parse('\n"\n\na ') ).to.throw(/:2:1: Unclosed quote/); }); - it('fixes unclosed quote in safe mode', () => { - expect(parse('a { content: "b', { safe: true }).toString()) - .to.eql('a { content: "b"}'); - }); - it('throws on unclosed bracket', () => { expect( () => parse(':not(one() { }') ) .to.throw(/:1:5: Unclosed bracket/); }); - it('fixes unclosed bracket', () => { - expect(parse(':not(one() { }', { safe: true }).raw.after) - .to.eql(':not(one() { }'); - }); - it('throws on property without value', () => { expect( () => parse('a { b;}') ).to.throw(/:1:5: Unknown word/); expect( () => parse('a { b b }') ).to.throw(/:1:5: Unknown word/); }); - it('fixes property without value in safe mode', () => { - let root = parse('a { color: white; one }', { safe: true }); - expect(root.first.nodes.length).to.eql(1); - expect(root.first.raw.semicolon).to.be.true; - expect(root.first.raw.after).to.eql(' one '); - }); - - it('fixes 2 properties in safe mode', () => { - let root = parse('a { one color: white; one }', { safe: true }); - expect(root.first.nodes.length).to.eql(1); - expect(root.first.first.prop).to.eql('color'); - expect(root.first.first.raw.before).to.eql(' one '); - }); - it('throws on nameless at-rule', () => { expect( () => parse('@') ).to.throw(/:1:1: At-rule without name/); }); - it('fixes nameless at-rule in safe mode', () => { - let root = parse('@', { safe: true }); - expect(root.first.type).to.eql('atrule'); - expect(root.first.name).to.eql(''); - }); - it('throws on property without semicolon', () => { expect( () => parse('a { one: 1 two: 2 }') ) .to.throw(/:1:10: Missed semicolon/); }); - it('fixes property without semicolon in safe mode', () => { - let root = parse('a { one: 1 two: 2 }', { safe: true }); - expect(root.first.nodes.length).to.eql(2); - expect(root.toString()).to.eql('a { one: 1; two: 2 }'); - }); - it('throws on double colon', () => { expect( () => parse('a { one:: 1 }') ) .to.throw(/:1:9: Double colon/); }); - it('fixes double colon in safe mode', () => { - let root = parse('a { one:: 1 }', { safe: true }); - expect(root.first.first.value).to.eql(': 1'); - }); }); }); diff --git a/test/tokenize.js b/test/tokenize.js index 6c4f7218c..faacc002e 100644 --- a/test/tokenize.js +++ b/test/tokenize.js @@ -172,16 +172,8 @@ describe('tokenize', () => { expect( () => test(' "') ).to.throw(/:1:2: Unclosed quote/); }); - it('fixes unclosed string in safe mode', () => { - test('"', { safe: true }, [ ['string', '""', 1, 1, 1, 2] ]); - }); - it('throws error on unclosed comment', () => { expect( () => test(' /*') ).to.throw(/:1:2: Unclosed comment/); }); - it('fixes unclosed comment in safe mode', () => { - test('/*', { safe: true }, [ ['comment', '/**/', 1, 1, 1, 4] ]); - }); - }); From 10ebfee8c47a90e46b06686f9040c446b8eda58f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 03:01:34 +0300 Subject: [PATCH 0540/3047] Fix warnings in tests --- test/container.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/container.js b/test/container.js index 65cd184b5..ba5840c4d 100644 --- a/test/container.js +++ b/test/container.js @@ -412,7 +412,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3; d: 4 }'); - expect(rule.last.before).to.eql(' '); + expect(rule.last.raw.before).to.eql(' '); }); it('has declaration shortcut', () => { @@ -488,7 +488,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }); expect(rule.toString()).to.eql('a { c: 3; d: 4; a: 1; b: 2 }'); - expect(rule.first.before).to.eql(' '); + expect(rule.first.raw.before).to.eql(' '); }); it('receive hash instead of declaration', () => { From 8a278b8757f5b0a0573013be76fdd0c392a4e290 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 03:11:46 +0300 Subject: [PATCH 0541/3047] Change custom syntax options --- docs/api.md | 9 +++++---- lib/lazy-result.js | 12 ++++++------ lib/node.js | 2 +- test/node.js | 2 +- test/processor.js | 16 ++++++++-------- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/docs/api.md b/docs/api.md index 68a11ff4c..0263426ee 100644 --- a/docs/api.md +++ b/docs/api.md @@ -290,9 +290,9 @@ Arguments: because it is used in source map generation and syntax error messages. * `to`: the path where you’ll put the output CSS file. You should always set `to` to generate correct source maps. - * `parse`: function to generate AST by string. - * `stringify`: class to generate string by AST. - * `syntax`: object with `parse` and `stringify` properties. + * `parser`: function to generate AST by string. + * `stringifier`: class to generate string by AST. + * `syntax`: object with `parser` and `stringifier` properties. * `map`: an object of [source map options]. ### `processor.plugins` @@ -1027,7 +1027,8 @@ postcss.rule({ selector: 'a' }).toString() //=> 'a {}'' Arguments: -* `stringify (functions|object) optional`: a syntax to use in string generation. +* `stringifier (functions|object) optional`: a syntax to use + in string generation. ### `node.error(message, opts)` diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 68cbf9ccc..e4cde9631 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -27,9 +27,9 @@ export default class LazyResult { } } else { let parser = parse; - if ( opts.syntax ) parser = opts.syntax.parse; - if ( opts.parse ) parser = opts.parse; - if ( parser.parse ) parser = parser.parse; + if ( opts.syntax ) parser = opts.syntax.parser; + if ( opts.parser ) parser = opts.parser; + if ( parser.parser ) parser = parser.parser; try { root = parser(css, opts); @@ -212,9 +212,9 @@ export default class LazyResult { let opts = this.result.opts; let str = stringify; - if ( opts.syntax ) str = opts.syntax.stringify; - if ( opts.stringify ) str = opts.stringify; - if ( str.stringify ) str = str.stringify; + if ( opts.syntax ) str = opts.syntax.stringifier; + if ( opts.stringifier ) str = opts.stringifier; + if ( str.stringifier ) str = str.stringifier; let map = new MapGenerator(str, this.result.root, this.result.opts); let data = map.generate(); diff --git a/lib/node.js b/lib/node.js index a963de638..536b551ef 100644 --- a/lib/node.js +++ b/lib/node.js @@ -66,7 +66,7 @@ export default class Node { } toString(stringifier = stringify) { - if ( stringifier.stringify ) stringifier = stringifier.stringify; + if ( stringifier.stringifier ) stringifier = stringifier.stringifier; let result = ''; stringifier(this, i => result += i ); return result; diff --git a/test/node.js b/test/node.js index 864b50757..987760aae 100644 --- a/test/node.js +++ b/test/node.js @@ -115,7 +115,7 @@ describe('Node', () => { }); it('accepts custom syntax', () => { - expect(rule.toString({ stringify: str })).to.eql('a'); + expect(rule.toString({ stringifier: str })).to.eql('a'); }); }); diff --git a/test/processor.js b/test/processor.js index a0c9755e3..895faf5d2 100644 --- a/test/processor.js +++ b/test/processor.js @@ -347,7 +347,7 @@ describe('Processor', () => { it('uses custom parsers', (done) => { let processor = new Processor([]); - processor.process('a{}', { parse: prs }).then( (result) => { + processor.process('a{}', { parser: prs }).then( (result) => { expect(result.css).to.equal('ok'); done(); }); @@ -355,8 +355,8 @@ describe('Processor', () => { it('uses custom parsers from object', (done) => { let processor = new Processor([]); - let syntax = { parse: prs, stringify: str }; - processor.process('a{}', { parse: syntax }).then( (result) => { + let syntax = { parser: prs, stringifier: str }; + processor.process('a{}', { parser: syntax }).then( (result) => { expect(result.css).to.equal('ok'); done(); }); @@ -364,7 +364,7 @@ describe('Processor', () => { it('uses custom stringifier', (done) => { let processor = new Processor([]); - processor.process('a{}', { stringify: str }).then( (result) => { + processor.process('a{}', { stringifier: str }).then( (result) => { expect(result.css).to.equal('!'); done(); }); @@ -372,8 +372,8 @@ describe('Processor', () => { it('uses custom stringifier from object', (done) => { let processor = new Processor([]); - let syntax = { parse: prs, stringify: str }; - processor.process('', { stringify: syntax }).then( (result) => { + let syntax = { parser: prs, stringifier: str }; + processor.process('', { stringifier: syntax }).then( (result) => { expect(result.css).to.equal('!'); done(); }); @@ -381,7 +381,7 @@ describe('Processor', () => { it('uses custom stringifier with source maps', (done) => { let processor = new Processor([]); - processor.process('a{}', { map: true, stringify: str }) + processor.process('a{}', { map: true, stringifier: str }) .then( (result) => { expect(result.css).to.match(/^\!\n\/\*# sourceMap/); done(); @@ -390,7 +390,7 @@ describe('Processor', () => { it('uses custom syntax', (done) => { let processor = new Processor([]); - let syntax = { parse: prs, stringify: str }; + let syntax = { parser: prs, stringifier: str }; processor.process('a{}', { syntax }).then( (result) => { expect(result.css).to.equal('ok!'); done(); From 7df11f5b47f8b5de075c48477bbd4016fa97c53e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 15:45:36 +0300 Subject: [PATCH 0542/3047] Add docs for CssSyntaxError index option --- docs/api.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api.md b/docs/api.md index 0263426ee..cb0a86d12 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1061,6 +1061,8 @@ Arguments: PostCSS will set it automatically. * `word (string)`: a word inside a node’s string, that should be highlighted as source of error. + * `index` (number): a index inside a node’s string, that should be highlighted + as source of error. See also [`Result#warn()`] for warnings. From 366ef95224890683669cd7acb28ad1d4a5246132 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 15:50:01 +0300 Subject: [PATCH 0543/3047] Clean up code --- lib/parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 3972ab64b..3c28134c4 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -32,7 +32,7 @@ export default class Parser { switch ( token[0] ) { case 'word': case ':': - this.word(token); + this.word(); break; case '}': From 474f58e4478a65ae7af33b7ba2753e2a86a0c2b5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 15:53:19 +0300 Subject: [PATCH 0544/3047] Clean up code --- lib/parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 3c28134c4..6a82aa05e 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -196,7 +196,7 @@ export default class Parser { node.raw.between += token[1]; break; } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { - this.unknownDecl(node, token, tokens); + this.unknownDecl(node, token); } else { node.raw.between += token[1]; } From a400602412ef6a7f6567244dbc83838a7b355a58 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 3 Aug 2015 21:45:04 +0300 Subject: [PATCH 0545/3047] Fix code from old refactoring --- lib/input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/input.js b/lib/input.js index 4f2ed84d1..69a0480df 100644 --- a/lib/input.js +++ b/lib/input.js @@ -16,7 +16,7 @@ export default class Input { if ( opts.from ) this.file = path.resolve(opts.from); - let map = new PreviousMap(this.css, opts, this.id); + let map = new PreviousMap(this.css, opts); if ( map.text ) { this.map = map; let file = map.consumer().file; From 6df2eb755f5b761e5177881c3ea3f0b210c69404 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Mon, 3 Aug 2015 17:38:48 -0500 Subject: [PATCH 0546/3047] Add AppVeyor badge to README, organize others --- README.md | 12 +++++++----- appveyor.yml | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7e58ffdfc..1b1c23eb8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PostCSS [![Build Status][ci-img]][ci] [![Gitter][chat-img]][chat] +# PostCSS [![Travis Build Status][travis-img]][travis] [![AppVeyor Build Status][appveyor-img]][appveyor] [![Gitter][chat-img]][chat] Date: Tue, 4 Aug 2015 02:08:12 +0300 Subject: [PATCH 0547/3047] Remove safe option --- lib/parse.js | 10 +++------- package.json | 11 +++++------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/parse.js b/lib/parse.js index 81b5eb418..6c78cb827 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -1,14 +1,10 @@ -import safeParse from 'postcss-safe-parser'; - -import warnOnce from './warn-once'; -import Parser from './parser'; -import Input from './input'; +import Parser from './parser'; +import Input from './input'; export default function parse(css, opts) { if ( opts && opts.safe ) { - warnOnce('Option safe is deprecated. ' + + throw new Error('Option safe was removed. ' + 'Use parser: require("postcss-safe-parser")'); - return safeParse(css, opts); } let input = new Input(css, opts); diff --git a/package.json b/package.json index 08ad10524..141a9dc50 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,11 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "postcss-safe-parser": "postcss/postcss-safe-parser", - "supports-color": "~3.1.0", - "es6-promise": "~2.3.0", - "source-map": "~0.4.4", - "babel-core": "5.8.20", - "js-base64": "~2.1.9" + "supports-color": "~3.1.0", + "es6-promise": "~2.3.0", + "source-map": "~0.4.4", + "babel-core": "5.8.20", + "js-base64": "~2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From 784d5b798ab2a44601c0b1e7ca00e1617745a40b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 02:09:14 +0300 Subject: [PATCH 0548/3047] Fix ESLint warnings --- lib/parser.js | 2 +- test/stringify.js | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 6a82aa05e..85a507339 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -450,7 +450,7 @@ export default class Parser { throw this.input.error('At-rule without name', token[2], token[3]); } - precheckMissedSemicolon(tokens) { } + precheckMissedSemicolon() { } checkMissedSemicolon(tokens) { let colon = this.colon(tokens); diff --git a/test/stringify.js b/test/stringify.js index 4f1b73686..db14e1e3e 100644 --- a/test/stringify.js +++ b/test/stringify.js @@ -3,12 +3,10 @@ import parse from '../lib/parse'; import { expect } from 'chai'; import cases from 'postcss-parser-tests'; -import path from 'path'; -import fs from 'fs'; describe('stringify', () => { - cases.each( (name, css, json) => { + cases.each( (name, css) => { it('stringifies ' + name, () => { let root = parse(css, { from: name }); let result = ''; From e22093c55395b0b735bcaec393a8d5508cf46b29 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 02:11:38 +0300 Subject: [PATCH 0549/3047] More free version dependencies --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 141a9dc50..afe7e06d1 100644 --- a/package.json +++ b/package.json @@ -20,11 +20,11 @@ "url": "https://github.com/postcss/postcss.git" }, "dependencies": { - "supports-color": "~3.1.0", - "es6-promise": "~2.3.0", - "source-map": "~0.4.4", + "supports-color": "^3.1.0", + "es6-promise": "^2.3.0", + "source-map": "^0.4.4", "babel-core": "5.8.20", - "js-base64": "~2.1.9" + "js-base64": "^2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", From 51a4822d525129421bddc31abe8ce293a494ff6b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 02:21:53 +0300 Subject: [PATCH 0550/3047] Remove Root#prevMap for more consistence API --- lib/parser.js | 1 - test/previous-map.js | 43 ++++++++++++++++++++++++------------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 85a507339..81c0e4570 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -17,7 +17,6 @@ export default class Parser { this.semicolon = false; this.root.source = { input }; - if ( input.map ) this.root.prevMap = input.map; } tokenize() { diff --git a/test/previous-map.js b/test/previous-map.js index 742aa6de6..4197c1963 100644 --- a/test/previous-map.js +++ b/test/previous-map.js @@ -20,23 +20,27 @@ describe('PreviousMap', () => { }); it('misses property if no map', () => { - expect(parse('a{}')).to.not.have.property('prevMap'); + expect(parse('a{}').source.input).to.not.have.property('map'); }); it('creates property if map present', () => { - expect(parse('a{}', { map: { prev: map } }).prevMap.text).to.eql(map); + let root = parse('a{}', { map: { prev: map } }); + expect(root.source.input.map.text).to.eql(map); }); it('returns consumer', () => { - expect(parse('a{}', { map: { prev: map } }).prevMap.consumer()) + expect(parse('a{}', { map: { prev: map } }).source.input.map.consumer()) .to.be.a.instanceOf(mozilla.SourceMapConsumer); }); it('sets annotation property', () => { - let map2 = { map: { prev: map } }; - expect(parse('a{}', map2).prevMap).to.not.have.property('annotation'); - let root = parse('a{}/*# sourceMappingURL=a.css.map */', map2); - expect(root.prevMap.annotation).to.eql('a.css.map'); + let mapOpts = { map: { prev: map } }; + + let root1 = parse('a{}', mapOpts); + expect(root1.source.input.map).to.not.have.property('annotation'); + + let root2 = parse('a{}/*# sourceMappingURL=a.css.map */', mapOpts); + expect(root2.source.input.map.annotation).to.eql('a.css.map'); }); it('checks previous sources content', () => { @@ -49,10 +53,10 @@ describe('PreviousMap', () => { }; let opts = { map: { prev: map2 } }; - expect(parse('a{}', opts).prevMap.withContent()).to.be.false; + expect(parse('a{}', opts).source.input.map.withContent()).to.be.false; map2.sourcesContent = ['a{}']; - expect(parse('a{}', opts).prevMap.withContent()).to.be.true; + expect(parse('a{}', opts).source.input.map.withContent()).to.be.true; }); it('decodes base64 maps', () => { @@ -60,7 +64,7 @@ describe('PreviousMap', () => { let css = 'a{}\n' + `/*# sourceMappingURL=data:application/json;base64,${b64} */`; - expect(parse(css).prevMap.text).to.eql(map); + expect(parse(css).source.input.map.text).to.eql(map); }); it('decodes base64 UTF-8 maps', () => { @@ -68,22 +72,22 @@ describe('PreviousMap', () => { let css = 'a{}\n/*# sourceMappingURL=data:application/json;' + 'charset=utf-8;base64,' + b64 + ' */'; - expect(parse(css).prevMap.text).to.eql(map); + expect(parse(css).source.input.map.text).to.eql(map); }); it('decodes URI maps', () => { let uri = 'data:application/json,' + decodeURI(map); let css = `a{}\n/*# sourceMappingURL=${ uri } */`; - expect(parse(css).prevMap.text).to.eql(map); + expect(parse(css).source.input.map.text).to.eql(map); }); it('removes map on request', () => { let uri = 'data:application/json,' + decodeURI(map); let css = `a{}\n/*# sourceMappingURL=${ uri } */`; - expect(parse(css, { map: { prev: false } })) - .to.not.have.property('prevMap'); + expect(parse(css, { map: { prev: false } }).source.input) + .to.not.have.property('map'); }); it('raises on unknown inline encoding', () => { @@ -104,8 +108,8 @@ describe('PreviousMap', () => { fs.outputFileSync(file, map); let root = parse('a{}\n/*# sourceMappingURL=a.map */', { from: file }); - expect(root.prevMap.text).to.eql(map); - expect(root.prevMap.root).to.eql(dir); + expect(root.source.input.map.text).to.eql(map); + expect(root.source.input.map.root).to.eql(dir); }); it('sets uniq name for inline map', () => { @@ -117,10 +121,11 @@ describe('PreviousMap', () => { }; let opts = { map: { prev: map2 } }; - let prev = parse('a{}', opts).prevMap; + let file1 = parse('a{}', opts).source.input.map.file; + let file2 = parse('a{}', opts).source.input.map.file; - expect(prev.file).to.match(/^$/); - expect(prev.file).to.not.eql( parse('a{}', opts).prevMap.file ); + expect(file1).to.match(/^$/); + expect(file1).to.not.eql(file2); }); }); From f0e198304622f3887d1d2f3249f24c2e118839a2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 02:27:41 +0300 Subject: [PATCH 0551/3047] Remove returning new Root from plugin API --- lib/lazy-result.js | 9 +-------- test/processor.js | 3 ++- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index e4cde9631..611693939 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -189,19 +189,12 @@ export default class LazyResult { run(plugin) { this.result.lastPlugin = plugin; - let returned; try { - returned = plugin(this.result.root, this.result); + return plugin(this.result.root, this.result); } catch (error) { this.handleError(error, plugin); throw error; } - - if ( returned instanceof Root ) { - this.result.root = returned; - } else { - return returned; - } } stringify() { diff --git a/test/processor.js b/test/processor.js index 895faf5d2..b1dc16a00 100644 --- a/test/processor.js +++ b/test/processor.js @@ -131,7 +131,8 @@ describe('Processor', () => { }); it('allows to replace Root', () => { - let processor = new Processor([ () => new Root() ]); + let plugin = (css, result) => result.root = new Root(); + let processor = new Processor([plugin]); expect(processor.process('a {}').css).to.eql(''); }); From a5f1fbcea675a5f2b45ad3ba5d64a2344f2567f8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 02:31:21 +0300 Subject: [PATCH 0552/3047] Fix CI --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index 6375f7fec..d3e99ec92 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -105,6 +105,7 @@ "CSS4", "SVG", "SVGO", + "TODO", "JS", "js", "vs", From 50da579ed8ff0ca57da46e10b4e78d50c2e16b49 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 02:32:51 +0300 Subject: [PATCH 0553/3047] Remove Promise polyfill --- .travis.yml | 1 - appveyor.yml | 2 -- lib/lazy-result.js | 2 -- package.json | 1 - 4 files changed, 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index ffb8b3996..e1bd77649 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,3 @@ language: node_js node_js: - iojs - "0.12" - - "0.10" diff --git a/appveyor.yml b/appveyor.yml index 61ecead79..70d1549ad 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,3 @@ -# http://www.appveyor.com/docs/appveyor-yml - environment: matrix: - nodejs_version: 2 diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 611693939..55d656d67 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -5,8 +5,6 @@ import Result from './result'; import parse from './parse'; import Root from './root'; -let Promise = global.Promise || require('es6-promise').Promise; - function isPromise(obj) { return typeof obj === 'object' && typeof obj.then === 'function'; } diff --git a/package.json b/package.json index afe7e06d1..14aa24186 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ }, "dependencies": { "supports-color": "^3.1.0", - "es6-promise": "^2.3.0", "source-map": "^0.4.4", "babel-core": "5.8.20", "js-base64": "^2.1.9" From f43a45a9075122e63688aa1f3fe97c9683c7326c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 03:05:18 +0300 Subject: [PATCH 0554/3047] Use .es6 ext for ES6 sources --- gulpfile.babel.js | 7 ++++--- index.js | 17 +---------------- lib/{at-rule.js => at-rule.es6} | 0 lib/{comment.js => comment.es6} | 0 lib/{container.js => container.es6} | 0 ...css-syntax-error.js => css-syntax-error.es6} | 0 lib/{declaration.js => declaration.es6} | 0 lib/{input.js => input.es6} | 0 lib/{lazy-result.js => lazy-result.es6} | 0 lib/{list.js => list.es6} | 0 lib/{map-generator.js => map-generator.es6} | 0 lib/{node.js => node.es6} | 0 lib/{parse.js => parse.es6} | 0 lib/{parser.js => parser.es6} | 0 lib/{postcss.js => postcss.es6} | 0 lib/{previous-map.js => previous-map.es6} | 0 lib/{processor.js => processor.es6} | 0 lib/{result.js => result.es6} | 0 lib/{root.js => root.es6} | 0 lib/{rule.js => rule.es6} | 0 lib/{stringifier.js => stringifier.es6} | 0 lib/{stringify.js => stringify.es6} | 0 lib/{tokenize.js => tokenize.es6} | 0 lib/{vendor.js => vendor.es6} | 0 lib/{warn-once.js => warn-once.es6} | 0 lib/{warning.js => warning.es6} | 0 test/{at-rule.js => at-rule.es6} | 0 test/{comment.js => comment.es6} | 0 test/{container.js => container.es6} | 0 ...css-syntax-error.js => css-syntax-error.es6} | 2 +- test/{declaration.js => declaration.es6} | 0 test/{lazy-result.js => lazy-result.es6} | 0 test/{list.js => list.es6} | 0 test/{map.js => map.es6} | 0 test/mocha.opts | 1 + test/{node.js => node.es6} | 0 test/{parse.js => parse.es6} | 0 test/{postcss.js => postcss.es6} | 0 test/{previous-map.js => previous-map.es6} | 0 test/{processor.js => processor.es6} | 0 test/{result.js => result.es6} | 0 test/{root.js => root.es6} | 0 test/{rule.js => rule.es6} | 0 test/{stringifier.js => stringifier.es6} | 0 test/{stringify.js => stringify.es6} | 0 test/{tokenize.js => tokenize.es6} | 0 test/{vendor.js => vendor.es6} | 0 test/{warning.js => warning.es6} | 0 48 files changed, 7 insertions(+), 20 deletions(-) rename lib/{at-rule.js => at-rule.es6} (100%) rename lib/{comment.js => comment.es6} (100%) rename lib/{container.js => container.es6} (100%) rename lib/{css-syntax-error.js => css-syntax-error.es6} (100%) rename lib/{declaration.js => declaration.es6} (100%) rename lib/{input.js => input.es6} (100%) rename lib/{lazy-result.js => lazy-result.es6} (100%) rename lib/{list.js => list.es6} (100%) rename lib/{map-generator.js => map-generator.es6} (100%) rename lib/{node.js => node.es6} (100%) rename lib/{parse.js => parse.es6} (100%) rename lib/{parser.js => parser.es6} (100%) rename lib/{postcss.js => postcss.es6} (100%) rename lib/{previous-map.js => previous-map.es6} (100%) rename lib/{processor.js => processor.es6} (100%) rename lib/{result.js => result.es6} (100%) rename lib/{root.js => root.es6} (100%) rename lib/{rule.js => rule.es6} (100%) rename lib/{stringifier.js => stringifier.es6} (100%) rename lib/{stringify.js => stringify.es6} (100%) rename lib/{tokenize.js => tokenize.es6} (100%) rename lib/{vendor.js => vendor.es6} (100%) rename lib/{warn-once.js => warn-once.es6} (100%) rename lib/{warning.js => warning.es6} (100%) rename test/{at-rule.js => at-rule.es6} (100%) rename test/{comment.js => comment.es6} (100%) rename test/{container.js => container.es6} (100%) rename test/{css-syntax-error.js => css-syntax-error.es6} (98%) rename test/{declaration.js => declaration.es6} (100%) rename test/{lazy-result.js => lazy-result.es6} (100%) rename test/{list.js => list.es6} (100%) rename test/{map.js => map.es6} (100%) rename test/{node.js => node.es6} (100%) rename test/{parse.js => parse.es6} (100%) rename test/{postcss.js => postcss.es6} (100%) rename test/{previous-map.js => previous-map.es6} (100%) rename test/{processor.js => processor.es6} (100%) rename test/{result.js => result.es6} (100%) rename test/{root.js => root.es6} (100%) rename test/{rule.js => rule.es6} (100%) rename test/{stringifier.js => stringifier.es6} (100%) rename test/{stringify.js => stringify.es6} (100%) rename test/{tokenize.js => tokenize.es6} (100%) rename test/{vendor.js => vendor.es6} (100%) rename test/{warning.js => warning.es6} (100%) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 0708bf715..15ff5a6f8 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -12,7 +12,7 @@ gulp.task('clean', (done) => { gulp.task('build:lib', ['clean'], () => { let babel = require('gulp-babel'); - return gulp.src('lib/*.js') + return gulp.src('lib/*.es6') .pipe(babel()) .pipe(gulp.dest('build/lib')); }); @@ -44,7 +44,7 @@ gulp.task('build', ['build:lib', 'build:docs', 'build:package']); gulp.task('lint', () => { let eslint = require('gulp-eslint'); - return gulp.src(['*.js', 'lib/*.js', 'test/*.js']) + return gulp.src(['*.js', 'lib/*.es6', 'test/*.es6']) .pipe(eslint()) .pipe(eslint.format()) .pipe(eslint.failAfterError()); @@ -74,8 +74,9 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { }); gulp.task('test', () => { + require('./'); let mocha = require('gulp-mocha'); - return gulp.src('test/*.js', { read: false }).pipe(mocha()); + return gulp.src('test/*.es6', { read: false }).pipe(mocha()); }); // Helpers diff --git a/index.js b/index.js index 2b2b85bf5..c57476ab5 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,2 @@ -/* eslint-disable no-var */ - -var path = require('path'); - -var escape = function (str) { - return str.replace(/[\[\]\/{}()*+?.\\^$|-]/g, '\\$&'); -}; - -var regexp = ['lib', 'test'].map(function (i) { - return '^' + escape(path.join(__dirname, i) + path.sep); -}).join('|'); - -require('babel-core/register')({ - only: new RegExp('(' + regexp + ')'), - ignore: false -}); +require('babel-core/register')({ extensions: ['.es6'] }); module.exports = require('./lib/postcss'); diff --git a/lib/at-rule.js b/lib/at-rule.es6 similarity index 100% rename from lib/at-rule.js rename to lib/at-rule.es6 diff --git a/lib/comment.js b/lib/comment.es6 similarity index 100% rename from lib/comment.js rename to lib/comment.es6 diff --git a/lib/container.js b/lib/container.es6 similarity index 100% rename from lib/container.js rename to lib/container.es6 diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.es6 similarity index 100% rename from lib/css-syntax-error.js rename to lib/css-syntax-error.es6 diff --git a/lib/declaration.js b/lib/declaration.es6 similarity index 100% rename from lib/declaration.js rename to lib/declaration.es6 diff --git a/lib/input.js b/lib/input.es6 similarity index 100% rename from lib/input.js rename to lib/input.es6 diff --git a/lib/lazy-result.js b/lib/lazy-result.es6 similarity index 100% rename from lib/lazy-result.js rename to lib/lazy-result.es6 diff --git a/lib/list.js b/lib/list.es6 similarity index 100% rename from lib/list.js rename to lib/list.es6 diff --git a/lib/map-generator.js b/lib/map-generator.es6 similarity index 100% rename from lib/map-generator.js rename to lib/map-generator.es6 diff --git a/lib/node.js b/lib/node.es6 similarity index 100% rename from lib/node.js rename to lib/node.es6 diff --git a/lib/parse.js b/lib/parse.es6 similarity index 100% rename from lib/parse.js rename to lib/parse.es6 diff --git a/lib/parser.js b/lib/parser.es6 similarity index 100% rename from lib/parser.js rename to lib/parser.es6 diff --git a/lib/postcss.js b/lib/postcss.es6 similarity index 100% rename from lib/postcss.js rename to lib/postcss.es6 diff --git a/lib/previous-map.js b/lib/previous-map.es6 similarity index 100% rename from lib/previous-map.js rename to lib/previous-map.es6 diff --git a/lib/processor.js b/lib/processor.es6 similarity index 100% rename from lib/processor.js rename to lib/processor.es6 diff --git a/lib/result.js b/lib/result.es6 similarity index 100% rename from lib/result.js rename to lib/result.es6 diff --git a/lib/root.js b/lib/root.es6 similarity index 100% rename from lib/root.js rename to lib/root.es6 diff --git a/lib/rule.js b/lib/rule.es6 similarity index 100% rename from lib/rule.js rename to lib/rule.es6 diff --git a/lib/stringifier.js b/lib/stringifier.es6 similarity index 100% rename from lib/stringifier.js rename to lib/stringifier.es6 diff --git a/lib/stringify.js b/lib/stringify.es6 similarity index 100% rename from lib/stringify.js rename to lib/stringify.es6 diff --git a/lib/tokenize.js b/lib/tokenize.es6 similarity index 100% rename from lib/tokenize.js rename to lib/tokenize.es6 diff --git a/lib/vendor.js b/lib/vendor.es6 similarity index 100% rename from lib/vendor.js rename to lib/vendor.es6 diff --git a/lib/warn-once.js b/lib/warn-once.es6 similarity index 100% rename from lib/warn-once.js rename to lib/warn-once.es6 diff --git a/lib/warning.js b/lib/warning.es6 similarity index 100% rename from lib/warning.js rename to lib/warning.es6 diff --git a/test/at-rule.js b/test/at-rule.es6 similarity index 100% rename from test/at-rule.js rename to test/at-rule.es6 diff --git a/test/comment.js b/test/comment.es6 similarity index 100% rename from test/comment.js rename to test/comment.es6 diff --git a/test/container.js b/test/container.es6 similarity index 100% rename from test/container.js rename to test/container.es6 diff --git a/test/css-syntax-error.js b/test/css-syntax-error.es6 similarity index 98% rename from test/css-syntax-error.js rename to test/css-syntax-error.es6 index 55656aef4..7d471235c 100644 --- a/test/css-syntax-error.js +++ b/test/css-syntax-error.es6 @@ -41,7 +41,7 @@ describe('CssSyntaxError', () => { it('has stack trace', () => { expect(parseError('a {\n content: "\n}').stack) - .to.match(/test\/css-syntax-error\.js/); + .to.match(/test\/css-syntax-error\.es6/); }); it('highlights broken line', () => { diff --git a/test/declaration.js b/test/declaration.es6 similarity index 100% rename from test/declaration.js rename to test/declaration.es6 diff --git a/test/lazy-result.js b/test/lazy-result.es6 similarity index 100% rename from test/lazy-result.js rename to test/lazy-result.es6 diff --git a/test/list.js b/test/list.es6 similarity index 100% rename from test/list.js rename to test/list.es6 diff --git a/test/map.js b/test/map.es6 similarity index 100% rename from test/map.js rename to test/map.es6 diff --git a/test/mocha.opts b/test/mocha.opts index 319595319..d7b75dd27 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,3 +1,4 @@ --inline-diffs --reporter spec --require babel-core/register +test/*.es6 diff --git a/test/node.js b/test/node.es6 similarity index 100% rename from test/node.js rename to test/node.es6 diff --git a/test/parse.js b/test/parse.es6 similarity index 100% rename from test/parse.js rename to test/parse.es6 diff --git a/test/postcss.js b/test/postcss.es6 similarity index 100% rename from test/postcss.js rename to test/postcss.es6 diff --git a/test/previous-map.js b/test/previous-map.es6 similarity index 100% rename from test/previous-map.js rename to test/previous-map.es6 diff --git a/test/processor.js b/test/processor.es6 similarity index 100% rename from test/processor.js rename to test/processor.es6 diff --git a/test/result.js b/test/result.es6 similarity index 100% rename from test/result.js rename to test/result.es6 diff --git a/test/root.js b/test/root.es6 similarity index 100% rename from test/root.js rename to test/root.es6 diff --git a/test/rule.js b/test/rule.es6 similarity index 100% rename from test/rule.js rename to test/rule.es6 diff --git a/test/stringifier.js b/test/stringifier.es6 similarity index 100% rename from test/stringifier.js rename to test/stringifier.es6 diff --git a/test/stringify.js b/test/stringify.es6 similarity index 100% rename from test/stringify.js rename to test/stringify.es6 diff --git a/test/tokenize.js b/test/tokenize.es6 similarity index 100% rename from test/tokenize.js rename to test/tokenize.es6 diff --git a/test/vendor.js b/test/vendor.es6 similarity index 100% rename from test/vendor.js rename to test/vendor.es6 diff --git a/test/warning.js b/test/warning.es6 similarity index 100% rename from test/warning.js rename to test/warning.es6 From afd577bc697685889522acc14357f6d6ceab4ccc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 03:07:08 +0300 Subject: [PATCH 0555/3047] Remove outdated cases task --- gulpfile.babel.js | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 15ff5a6f8..f9e0ec9af 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -79,22 +79,6 @@ gulp.task('test', () => { return gulp.src('test/*.es6', { read: false }).pipe(mocha()); }); -// Helpers - -gulp.task('cases', () => { - let postcss = require('./lib/postcss'); - let jsonify = require('./test/utils/jsonify'); - let cases = path.join(__dirname, 'test', 'cases'); - fs.readdirSync(cases).forEach( (name) => { - if ( !name.match(/\.css$/) ) return; - let css = fs.readFileSync(path.join(cases, name)); - let root = postcss.parse(css, { from: '/' + name }); - let json = JSON.stringify(jsonify(root), null, 4); - let file = path.join(cases, name.replace(/\.css$/, '.json')); - fs.writeFileSync(file, json + '\n'); - }); -}); - // Common gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); From 695e0f61dbe715809479fd56d55417b855addc85 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 03:10:16 +0300 Subject: [PATCH 0556/3047] Copy docs to npm release --- gulpfile.babel.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index f9e0ec9af..973e19fc7 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -20,9 +20,10 @@ gulp.task('build:lib', ['clean'], () => { gulp.task('build:docs', ['clean'], () => { let ignore = require('fs').readFileSync('.npmignore').toString() .trim().split(/\n+/) - .concat(['.npmignore', 'index.js', 'package.json']) + .concat(['.npmignore', 'index.js', 'package.json', + 'lib/*', 'test/*', 'node_modules/**/*']) .map( i => '!' + i ); - return gulp.src(['*'].concat(ignore)) + return gulp.src(['**/*'].concat(ignore)) .pipe(gulp.dest('build')); }); From 83cac43a79a9f792f11cd4ceab29842f1ed314ac Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 23:06:09 +0300 Subject: [PATCH 0557/3047] Use babel instead of babel-core --- gulpfile.babel.js | 4 ++-- index.js | 2 +- package.json | 4 ++-- test/mocha.opts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 973e19fc7..707c12368 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -32,8 +32,8 @@ gulp.task('build:package', ['clean'], () => { gulp.src('./package.json') .pipe(editor( (p) => { p.main = 'lib/postcss'; - p.devDependencies['babel-core'] = p.dependencies['babel-core']; - delete p.dependencies['babel-core']; + p.devDependencies['babel'] = p.dependencies['babel']; + delete p.dependencies['babel']; return p; })) .pipe(gulp.dest('build')); diff --git a/index.js b/index.js index c57476ab5..ee8738671 100644 --- a/index.js +++ b/index.js @@ -1,2 +1,2 @@ -require('babel-core/register')({ extensions: ['.es6'] }); +require('babel/register')({ extensions: ['.es6'] }); module.exports = require('./lib/postcss'); diff --git a/package.json b/package.json index 14aa24186..fe7019ded 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,8 @@ "dependencies": { "supports-color": "^3.1.0", "source-map": "^0.4.4", - "babel-core": "5.8.20", - "js-base64": "^2.1.9" + "js-base64": "^2.1.9", + "babel": "5.8.20" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", diff --git a/test/mocha.opts b/test/mocha.opts index d7b75dd27..5eafa0cdd 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,4 +1,4 @@ --inline-diffs --reporter spec ---require babel-core/register +--require babel/register test/*.es6 From f56f643b21a8f5c5bce40cafa8399c98b2e2567a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 23:08:47 +0300 Subject: [PATCH 0558/3047] Add Babel compile to prepublish --- gulpfile.babel.js | 1 + package.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 707c12368..e6981e357 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -34,6 +34,7 @@ gulp.task('build:package', ['clean'], () => { p.main = 'lib/postcss'; p.devDependencies['babel'] = p.dependencies['babel']; delete p.dependencies['babel']; + delete p.scripts.prepublish; return p; })) .pipe(gulp.dest('build')); diff --git a/package.json b/package.json index fe7019ded..fa1a03f20 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "chai": "3.2.0" }, "scripts": { - "test": "gulp" + "prepublish": "babel lib/*.es6 --out-dir .", + "test": "gulp" } } From b4ddf7dce20178e1f48deb1819ecf7ebccecc8a0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 23:12:23 +0300 Subject: [PATCH 0559/3047] Clean up code --- gulpfile.babel.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index e6981e357..17492e119 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -32,8 +32,8 @@ gulp.task('build:package', ['clean'], () => { gulp.src('./package.json') .pipe(editor( (p) => { p.main = 'lib/postcss'; - p.devDependencies['babel'] = p.dependencies['babel']; - delete p.dependencies['babel']; + p.devDependencies.babel = p.dependencies.babel; + delete p.dependencies.babel; delete p.scripts.prepublish; return p; })) From ff30d308ab557458bd82d343fc24c63ea7343a21 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 4 Aug 2015 23:21:49 +0300 Subject: [PATCH 0560/3047] More clear precheckMissedSemicolon --- lib/parser.es6 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index 81c0e4570..f0b996c9d 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -449,7 +449,10 @@ export default class Parser { throw this.input.error('At-rule without name', token[2], token[3]); } - precheckMissedSemicolon() { } + precheckMissedSemicolon(tokens) { + // Hook for Safe Parser + tokens; + } checkMissedSemicolon(tokens) { let colon = this.colon(tokens); From f9c8c290a07de87911ee0db05792e7eeb97e5781 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 6 Aug 2015 04:45:15 +0300 Subject: [PATCH 0561/3047] Clean js files from lib --- .gitignore | 1 + gulpfile.babel.js | 6 ++---- package.json | 3 ++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index f85108659..4681038fe 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,6 @@ node_modules/ npm-debug.log build/ +lib/*.js /postcss.js diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 17492e119..5e27c3d7a 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -1,11 +1,9 @@ import gulp from 'gulp'; import path from 'path'; -import fs from 'fs-extra'; gulp.task('clean', (done) => { - fs.remove(path.join(__dirname, 'postcss.js'), () => { - fs.remove(path.join(__dirname, 'build'), done); - }); + let del = require('del'); + del(['postcss.js', 'build/', 'lib/*.js'], done); }); // Build diff --git a/package.json b/package.json index fa1a03f20..5e543c190 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,8 @@ "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", - "chai": "3.2.0" + "chai": "3.2.0", + "del": "1.2.0" }, "scripts": { "prepublish": "babel lib/*.es6 --out-dir .", From f6a9cd40b7ed0d793b45f37539f159f6f6d85b1b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 6 Aug 2015 04:47:38 +0300 Subject: [PATCH 0562/3047] Clean up --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4681038fe..656328df2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,4 @@ npm-debug.log build/ lib/*.js - /postcss.js From dbb56c1e23137d1ed54589aca6385cd6e9287300 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 6 Aug 2015 04:54:26 +0300 Subject: [PATCH 0563/3047] Clean up imported modules --- gulpfile.babel.js | 1 - 1 file changed, 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 5e27c3d7a..9164ca749 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -1,5 +1,4 @@ import gulp from 'gulp'; -import path from 'path'; gulp.task('clean', (done) => { let del = require('del'); From cd8e47a7265c77ebbc3cca026703848fe281f8cd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 6 Aug 2015 21:33:51 +0300 Subject: [PATCH 0564/3047] Remove unnecessary instance creation --- lib/input.es6 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/input.es6 b/lib/input.es6 index 69a0480df..951e709c4 100644 --- a/lib/input.es6 +++ b/lib/input.es6 @@ -34,8 +34,7 @@ export default class Input { } error(message, line, column, opts = { }) { - let error = new CssSyntaxError(message); - + let error; let origin = this.origin(line, column); if ( origin ) { error = new CssSyntaxError(message, origin.line, origin.column, From 363469c6276d19b7a094853aefd953093a7576ee Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 7 Aug 2015 14:18:25 +0300 Subject: [PATCH 0565/3047] Remove prepublish hack --- gulpfile.babel.js | 5 ++--- index.js | 2 +- package.json | 9 ++++----- test/mocha.opts | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 9164ca749..7c8a44192 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -29,9 +29,8 @@ gulp.task('build:package', ['clean'], () => { gulp.src('./package.json') .pipe(editor( (p) => { p.main = 'lib/postcss'; - p.devDependencies.babel = p.dependencies.babel; - delete p.dependencies.babel; - delete p.scripts.prepublish; + p.devDependencies['babel-core'] = p.dependencies['babel-core']; + delete p.dependencies['babel-core']; return p; })) .pipe(gulp.dest('build')); diff --git a/index.js b/index.js index ee8738671..c57476ab5 100644 --- a/index.js +++ b/index.js @@ -1,2 +1,2 @@ -require('babel/register')({ extensions: ['.es6'] }); +require('babel-core/register')({ extensions: ['.es6'] }); module.exports = require('./lib/postcss'); diff --git a/package.json b/package.json index 5e543c190..25102f6be 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,8 @@ "dependencies": { "supports-color": "^3.1.0", "source-map": "^0.4.4", - "js-base64": "^2.1.9", - "babel": "5.8.20" + "babel-core": "5.8.21", + "js-base64": "^2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", @@ -36,7 +36,7 @@ "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", - "fs-extra": "0.22.1", + "fs-extra": "0.23.0", "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", @@ -44,7 +44,6 @@ "del": "1.2.0" }, "scripts": { - "prepublish": "babel lib/*.es6 --out-dir .", - "test": "gulp" + "test": "gulp" } } diff --git a/test/mocha.opts b/test/mocha.opts index 5eafa0cdd..d7b75dd27 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,4 +1,4 @@ --inline-diffs --reporter spec ---require babel/register +--require babel-core/register test/*.es6 From 41140340a48eb0e51a3d6930be228dfa15cd224c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 7 Aug 2015 14:30:32 +0300 Subject: [PATCH 0566/3047] Add Promise polyfill docs --- .yaspellerrc | 1 + README.md | 28 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index d3e99ec92..b7a76b960 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -20,6 +20,7 @@ "postcss", "Shopify", "Travis", + "poststylus", "Gofmt", "CI", "W3C", diff --git a/README.md b/README.md index 1b1c23eb8..4a32bcd4f 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,8 @@ gulp.task('css', function () { }); ``` +You can also use PostCSS plugins with Stylus by using [poststylus]. + For other environments, you can use the [CLI tool] or the JS API: ```js @@ -137,19 +139,25 @@ postcss([ require('cssnext')(), require('cssnano')() ]) }); ``` -You can also use PostCSS plugins with Stylus by using [`poststylus`]. +If you want to run PostCSS on node.js 0.10, add [Promise polyfill]: + +```js +require('es6-promise').polyfill(); +var postcss = require('postcss'); +``` Read the [PostCSS API] for more details about the JS API. -[`poststylus`]: https://github.com/seaneking/poststylus -[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md -[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss -[CLI tool]: https://github.com/code42day/postcss-cli -[webpack]: https://github.com/postcss/postcss-loader -[Brunch]: https://github.com/iamvdo/postcss-brunch -[Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/postcss/gulp-postcss -[ENB]: https://github.com/theprotein/enb-postcss +[Promise polyfill]: https://github.com/jakearchibald/es6-promise +[`poststylus`]: https://github.com/seaneking/poststylus +[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md +[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss +[CLI tool]: https://github.com/code42day/postcss-cli +[webpack]: https://github.com/postcss/postcss-loader +[Brunch]: https://github.com/iamvdo/postcss-brunch +[Grunt]: https://github.com/nDmitry/grunt-postcss +[Gulp]: https://github.com/postcss/gulp-postcss +[ENB]: https://github.com/theprotein/enb-postcss ## Syntaxes From e653dd4b9fcad2b7010a1b9caf4ef16394b76978 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 7 Aug 2015 14:34:13 +0300 Subject: [PATCH 0567/3047] Try to fix using PostCSS from GitHub --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index c57476ab5..fc22f73d7 100644 --- a/index.js +++ b/index.js @@ -1,2 +1,2 @@ -require('babel-core/register')({ extensions: ['.es6'] }); +require('babel-core/register')({ extensions: ['.es6'], ignore: false }); module.exports = require('./lib/postcss'); From 914c08372d9f90d64e7518a2a63ad2189e9867f8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 7 Aug 2015 14:40:56 +0300 Subject: [PATCH 0568/3047] Better check for Root --- lib/lazy-result.es6 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/lazy-result.es6 b/lib/lazy-result.es6 index 55d656d67..375d50736 100644 --- a/lib/lazy-result.es6 +++ b/lib/lazy-result.es6 @@ -3,7 +3,6 @@ import stringify from './stringify'; import warnOnce from './warn-once'; import Result from './result'; import parse from './parse'; -import Root from './root'; function isPromise(obj) { return typeof obj === 'object' && typeof obj.then === 'function'; @@ -16,7 +15,7 @@ export default class LazyResult { this.processed = false; let root; - if ( css instanceof Root ) { + if ( typeof css === 'object' && css.type === 'root' ) { root = css; } else if ( css instanceof LazyResult || css instanceof Result ) { root = css.root; From e77505e1a6e38a8cd0fa07dd1f01c7bf1bc27bf4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 8 Aug 2015 15:05:33 +0300 Subject: [PATCH 0569/3047] Throw on wrong plugin format --- lib/processor.es6 | 4 +++- test/processor.es6 | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/processor.es6 b/lib/processor.es6 index 70f55097b..bd78512ff 100644 --- a/lib/processor.es6 +++ b/lib/processor.es6 @@ -28,8 +28,10 @@ export default class Processor { if ( typeof i === 'object' && Array.isArray(i.plugins) ) { normalized = normalized.concat(i.plugins); - } else { + } else if ( typeof i === 'function' ) { normalized.push(i); + } else { + throw new Error(i + ' is not a PostCSS plugin'); } } return normalized; diff --git a/test/processor.es6 b/test/processor.es6 index b1dc16a00..4d683c725 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -64,6 +64,11 @@ describe('Processor', () => { expect(processor.use(a).use(b).plugins).to.eql([a, b]); }); + it('throws on wrong format', () => { + let pr = new Processor(); + expect( () => pr.use(1) ).to.throw(/1 is not a PostCSS plugin/); + }); + }); describe('process()', () => { From 32154e4c5a6d9078aba56f05b430dd127790f957 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 8 Aug 2015 15:06:54 +0300 Subject: [PATCH 0570/3047] Clean up code --- lib/processor.es6 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/processor.es6 b/lib/processor.es6 index bd78512ff..9b481f930 100644 --- a/lib/processor.es6 +++ b/lib/processor.es6 @@ -21,10 +21,7 @@ export default class Processor { normalize(plugins) { let normalized = []; for ( let i of plugins ) { - let type = typeof i; - if ( (type === 'object' || type === 'function') && i.postcss ) { - i = i.postcss; - } + if ( i.postcss ) i = i.postcss; if ( typeof i === 'object' && Array.isArray(i.plugins) ) { normalized = normalized.concat(i.plugins); From a95ab3674f458b71d6185330ab76cd1c3b23e9ad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 8 Aug 2015 15:15:11 +0300 Subject: [PATCH 0571/3047] Fix broken ESLint rule --- .eslintrc | 1 - 1 file changed, 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 05a2de90f..2255ee03d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -48,7 +48,6 @@ "no-octal-escape": [2], "no-new-wrappers": [2], "no-process-exit": [2], - "no-catch-shadow": [2], "linebreak-style": [2], "space-infix-ops": [2], "space-unary-ops": [2], From eb055dce3c4109d4f3628d7c4e5ff8c05aff79eb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 8 Aug 2015 20:25:03 +0300 Subject: [PATCH 0572/3047] Move container code to Container --- lib/container.es6 | 7 +++++++ lib/node.es6 | 4 ---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/container.es6 b/lib/container.es6 index ab7ac7aac..fd5803ee3 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -295,6 +295,13 @@ export default class Container extends Node { return processed; } + cleanStyles(keepBetween) { + super(keepBetween); + if ( this.nodes ) { + for ( let node of this.nodes ) node.cleanStyles(keepBetween); + } + } + get semicolon() { warnOnce('Node#semicolon was deprecated. Use Node#raw.semicolon'); return this.raw.semicolon; diff --git a/lib/node.es6 b/lib/node.es6 index 536b551ef..d6c1e1bb4 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -176,10 +176,6 @@ export default class Node { delete this.raw.before; delete this.raw.after; if ( !keepBetween ) delete this.raw.between; - - if ( this.nodes ) { - for ( let node of this.nodes ) node.cleanStyles(keepBetween); - } } positionInside(index) { From ed8639d6fdb377f1d46d37ab3b15480ce91acdd5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 02:18:20 +0300 Subject: [PATCH 0573/3047] Do not dirty Container by index variables --- lib/container.es6 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/container.es6 b/lib/container.es6 index fd5803ee3..c124c89b4 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -3,6 +3,8 @@ import warnOnce from './warn-once'; import Comment from './comment'; import Node from './node'; +let lastEach = 0; + export default class Container extends Node { push(child) { @@ -12,11 +14,10 @@ export default class Container extends Node { } each(callback) { - if ( !this.lastEach ) this.lastEach = 0; - if ( !this.indexes ) this.indexes = { }; + if ( !this.indexes ) this.indexes = { }; - this.lastEach += 1; - let id = this.lastEach; + lastEach += 1; + let id = lastEach; this.indexes[id] = 0; if ( !this.nodes ) return undefined; @@ -31,6 +32,7 @@ export default class Container extends Node { } delete this.indexes[id]; + if ( Object.keys(this.indexes).length === 0 ) delete this.indexes; if ( result === false ) return false; } From de41d322fc442b64138607cb5694dcfb57cdbbe8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 02:31:10 +0300 Subject: [PATCH 0574/3047] Update npm dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 25102f6be..8dddd3a5d 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", - "fs-extra": "0.23.0", + "fs-extra": "0.23.1", "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", From 7ef005021a5a59e4495d2060d45be0958db3e014 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 02:57:30 +0300 Subject: [PATCH 0575/3047] Clean Input from generated from property --- lib/input.es6 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/input.es6 b/lib/input.es6 index 951e709c4..f29c5eb54 100644 --- a/lib/input.es6 +++ b/lib/input.es6 @@ -23,12 +23,9 @@ export default class Input { if ( !this.file && file ) this.file = this.mapResolve(file); } - if ( this.file ) { - this.from = this.file; - } else { + if ( !this.file ) { sequence += 1; this.id = ''; - this.from = this.id; } if ( this.map ) this.map.file = this.from; } @@ -73,4 +70,8 @@ export default class Input { return path.resolve(this.map.consumer().sourceRoot || '.', file); } + get from() { + return this.file || this.id; + } + } From 3da17cb1bca13b80f75e7f5f208c7e9582d8faed Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 03:16:20 +0300 Subject: [PATCH 0576/3047] Add Warning line and column --- docs/api.md | 20 ++++++++++++++++++++ lib/node.es6 | 19 ++++++++++++------- lib/warning.es6 | 7 +++++++ test/warning.es6 | 31 +++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 7 deletions(-) diff --git a/docs/api.md b/docs/api.md index cb0a86d12..2683d7f62 100644 --- a/docs/api.md +++ b/docs/api.md @@ -515,6 +515,10 @@ Arguments: message object. * `opts (object) optional`: properties to message object. * `node`: CSS node, that was a source of warning. + * `word (string)`: a word inside a node’s string, that should be highlighted + as source of warning. + * `index` (number): a index inside a node’s string, that should be highlighted + as source of warning. * `plugin`: name of plugin that created this warning. `Result#warn()` will fill it automatically with `plugin.postcssPlugin` value. @@ -663,6 +667,22 @@ Contains CSS node that caused warning. warning.node.toString() //=> 'color: white !important' ``` +### `warning.line` + +Line in input file with this warning source. + +```js +warning.line //=> 5 +``` + +### `warning.column` + +Column in input file with this warning source. + +```js +warning.column //=> 4 +``` + ## `CssSyntaxError` class CSS parser throws this error for broken CSS. diff --git a/lib/node.es6 b/lib/node.es6 index d6c1e1bb4..7b43810ae 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -38,13 +38,7 @@ export default class Node { error(message, opts = { }) { if ( this.source ) { - let pos = this.source.start; - if ( opts.index ) { - pos = this.positionInside(opts.index); - } else if ( opts.word ) { - let index = this.toString().indexOf(opts.word); - if ( index !== -1 ) pos = this.positionInside(index); - } + let pos = this.positionBy(opts); return this.source.input.error(message, pos.line, pos.column, opts); } else { return new CssSyntaxError(message); @@ -195,6 +189,17 @@ export default class Node { return { line, column }; } + positionBy(opts) { + let pos = this.source.start; + if ( opts.index ) { + pos = this.positionInside(opts.index); + } else if ( opts.word ) { + let index = this.toString().indexOf(opts.word); + if ( index !== -1 ) pos = this.positionInside(index); + } + return pos; + } + get before() { warnOnce('Node#before was deprecated. Use Node#raw.before'); return this.raw.before; diff --git a/lib/warning.es6 b/lib/warning.es6 index de6c3314e..bf3f964da 100644 --- a/lib/warning.es6 +++ b/lib/warning.es6 @@ -3,6 +3,13 @@ export default class Warning { constructor(text, opts = { }) { this.type = 'warning'; this.text = text; + + if ( opts.node ) { + let pos = opts.node.positionBy(opts); + this.line = pos.line; + this.column = pos.column; + } + for ( let opt in opts ) this[opt] = opts[opt]; } diff --git a/test/warning.es6 b/test/warning.es6 index 6fa55128f..ec77967a3 100644 --- a/test/warning.es6 +++ b/test/warning.es6 @@ -36,4 +36,35 @@ describe('Warning', () => { }); + describe('line, column', () => { + + it('is undefined by default', () => { + let warning = new Warning('text'); + expect(warning.line).to.not.exist; + expect(warning.column).to.not.exist; + }); + + it('gets position from node', () => { + let root = parse('a{}'); + let warning = new Warning('text', { node: root.first }); + expect(warning.line).to.eql(1); + expect(warning.column).to.eql(1); + }); + + it('gets position from word', () => { + let root = parse('a b{}'); + let warning = new Warning('text', { node: root.first, word: 'b' }); + expect(warning.line).to.eql(1); + expect(warning.column).to.eql(3); + }); + + it('gets position from index', () => { + let root = parse('a b{}'); + let warning = new Warning('text', { node: root.first, index: 2 }); + expect(warning.line).to.eql(1); + expect(warning.column).to.eql(3); + }); + + }); + }); From a0c99a06cd3abf82f19af1052ab536914c807bcd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 16:15:02 +0300 Subject: [PATCH 0577/3047] Remove old build system ignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 656328df2..21b706aad 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,4 @@ node_modules/ npm-debug.log build/ -lib/*.js /postcss.js From 76e992720ff657a21758a754cc79c650fd77efbc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 16:15:45 +0300 Subject: [PATCH 0578/3047] Remove old build system cleaning --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 7c8a44192..06d2afe9a 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -2,7 +2,7 @@ import gulp from 'gulp'; gulp.task('clean', (done) => { let del = require('del'); - del(['postcss.js', 'build/', 'lib/*.js'], done); + del(['postcss.js', 'build/'], done); }); // Build From 8d73cdd732f5dba95ec43c2b9fce6363b4a54b53 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 17:36:26 +0300 Subject: [PATCH 0579/3047] Speed up comment parsing --- lib/parser.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index f0b996c9d..43867fc84 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -66,7 +66,7 @@ export default class Parser { node.source.end = { line: token[4], column: token[5] }; let text = token[1].slice(2, -2); - if ( text.match(/^\s*$/) ) { + if ( /^\s*$/.test(text) ) { node.text = ''; node.raw.left = text; node.raw.right = ''; From 4e3c45d09dccb521594be5a2a70b2329159000e0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 17:57:57 +0300 Subject: [PATCH 0580/3047] Change syntax API --- README.md | 2 +- docs/api.md | 2 +- lib/lazy-result.es6 | 10 +++++----- lib/node.es6 | 2 +- test/node.es6 | 2 +- test/processor.es6 | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 4a32bcd4f..91f14fed9 100644 --- a/README.md +++ b/README.md @@ -165,7 +165,7 @@ PostCSS can transforms styles in any syntax, not only in CSS. There are 3 special arguments in `process()` method to control syntax. You can even separately set input parser and output stringifier. -* `syntax` accepts object with parser and stringifier. +* `syntax` accepts object with `parse` and `stringify` functions. * `parser` accepts input parser function. * `stringifier` accepts output stringifier function. diff --git a/docs/api.md b/docs/api.md index 2683d7f62..b5f07499a 100644 --- a/docs/api.md +++ b/docs/api.md @@ -292,7 +292,7 @@ Arguments: `to` to generate correct source maps. * `parser`: function to generate AST by string. * `stringifier`: class to generate string by AST. - * `syntax`: object with `parser` and `stringifier` properties. + * `syntax`: object with `parse` and `stringify` functions. * `map`: an object of [source map options]. ### `processor.plugins` diff --git a/lib/lazy-result.es6 b/lib/lazy-result.es6 index 375d50736..25124358e 100644 --- a/lib/lazy-result.es6 +++ b/lib/lazy-result.es6 @@ -24,9 +24,9 @@ export default class LazyResult { } } else { let parser = parse; - if ( opts.syntax ) parser = opts.syntax.parser; - if ( opts.parser ) parser = opts.parser; - if ( parser.parser ) parser = parser.parser; + if ( opts.syntax ) parser = opts.syntax.parse; + if ( opts.parser ) parser = opts.parser; + if ( parser.parse ) parser = parser.parse; try { root = parser(css, opts); @@ -202,9 +202,9 @@ export default class LazyResult { let opts = this.result.opts; let str = stringify; - if ( opts.syntax ) str = opts.syntax.stringifier; + if ( opts.syntax ) str = opts.syntax.stringify; if ( opts.stringifier ) str = opts.stringifier; - if ( str.stringifier ) str = str.stringifier; + if ( str.stringify ) str = str.stringify; let map = new MapGenerator(str, this.result.root, this.result.opts); let data = map.generate(); diff --git a/lib/node.es6 b/lib/node.es6 index 7b43810ae..4eb024d42 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -60,7 +60,7 @@ export default class Node { } toString(stringifier = stringify) { - if ( stringifier.stringifier ) stringifier = stringifier.stringifier; + if ( stringifier.stringify ) stringifier = stringifier.stringify; let result = ''; stringifier(this, i => result += i ); return result; diff --git a/test/node.es6 b/test/node.es6 index 987760aae..864b50757 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -115,7 +115,7 @@ describe('Node', () => { }); it('accepts custom syntax', () => { - expect(rule.toString({ stringifier: str })).to.eql('a'); + expect(rule.toString({ stringify: str })).to.eql('a'); }); }); diff --git a/test/processor.es6 b/test/processor.es6 index 4d683c725..df870c7dd 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -361,7 +361,7 @@ describe('Processor', () => { it('uses custom parsers from object', (done) => { let processor = new Processor([]); - let syntax = { parser: prs, stringifier: str }; + let syntax = { parse: prs, stringify: str }; processor.process('a{}', { parser: syntax }).then( (result) => { expect(result.css).to.equal('ok'); done(); @@ -378,7 +378,7 @@ describe('Processor', () => { it('uses custom stringifier from object', (done) => { let processor = new Processor([]); - let syntax = { parser: prs, stringifier: str }; + let syntax = { parse: prs, stringify: str }; processor.process('', { stringifier: syntax }).then( (result) => { expect(result.css).to.equal('!'); done(); @@ -396,7 +396,7 @@ describe('Processor', () => { it('uses custom syntax', (done) => { let processor = new Processor([]); - let syntax = { parser: prs, stringifier: str }; + let syntax = { parse: prs, stringify: str }; processor.process('a{}', { syntax }).then( (result) => { expect(result.css).to.equal('ok!'); done(); From 4da857c7ad99b2e0ee680e71b36f70dd624b27ce Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 9 Aug 2015 18:00:50 +0300 Subject: [PATCH 0581/3047] Fix code style --- lib/lazy-result.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/lazy-result.es6 b/lib/lazy-result.es6 index 25124358e..63c0c9850 100644 --- a/lib/lazy-result.es6 +++ b/lib/lazy-result.es6 @@ -107,7 +107,7 @@ export default class LazyResult { } asyncTick(resolve, reject) { - if (this.plugin >= this.processor.plugins.length) { + if ( this.plugin >= this.processor.plugins.length ) { this.processed = true; return resolve(); } From b2371aa5004a6d47db2a47da942ac71c0d5cdd6b Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 10 Aug 2015 17:14:13 +0100 Subject: [PATCH 0582/3047] Deprecate Node#replace. Fixes #188. --- lib/node.es6 | 5 ++--- test/node.es6 | 30 +++++++++++++----------------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/lib/node.es6 b/lib/node.es6 index 4eb024d42..8cef4a340 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -54,9 +54,8 @@ export default class Node { } replace(nodes) { - this.parent.insertBefore(this, nodes); - this.parent.remove(this); - return this; + warnOnce('Node#replace was deprecated. Use Node#replaceWith'); + return this.replaceWith(nodes); } toString(stringifier = stringify) { diff --git a/test/node.es6 b/test/node.es6 index 864b50757..fccfb9495 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -67,7 +67,7 @@ describe('Node', () => { }); - describe('replace()', () => { + describe('replaceWith()', () => { it('inserts new node', () => { let rule = new Rule({ selector: 'a' }); @@ -77,7 +77,7 @@ describe('Node', () => { let node = new Declaration({ prop: 'min-width', value: '1px' }); let width = rule.nodes[1]; - let result = width.replace(node); + let result = width.replaceWith(node); expect(result).to.eql(width); @@ -96,10 +96,20 @@ describe('Node', () => { a.append( new Rule({ selector: 'a' }) ); a.append( new Rule({ selector: 'b' }) ); - root.first.replace(a); + root.first.replaceWith(a); expect(root.toString()).to.eql('a {}\nb {}'); }); + it('replaces node', () => { + let css = parse('a{one:1;two:2}'); + let decl = { prop: 'fix', value: 'fixed' }; + let result = css.first.first.replaceWith(decl); + + expect(result.prop).to.eql('one'); + expect(result.parent).to.not.exist; + expect(css.toString()).to.eql('a{fix:fixed;two:2}'); + }); + }); describe('toString', () => { @@ -202,20 +212,6 @@ describe('Node', () => { }); - describe('replaceWith()', () => { - - it('replaces node', () => { - let css = parse('a{one:1;two:2}'); - let decl = { prop: 'fix', value: 'fixed' }; - let result = css.first.first.replaceWith(decl); - - expect(result.prop).to.eql('one'); - expect(result.parent).to.not.exist; - expect(css.toString()).to.eql('a{fix:fixed;two:2}'); - }); - - }); - describe('moveTo()', () => { it('moves node between roots', () => { From a3614ce922b6c0326dec8340e4ce3ccae18f5bb2 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 10 Aug 2015 18:51:39 +0100 Subject: [PATCH 0583/3047] Deprecate container#remove and node#removeSelf. Fixes #191. --- docs/api.md | 20 ++++++++++---------- lib/container.es6 | 19 +++++++++++++++---- lib/map-generator.es6 | 2 +- lib/node.es6 | 25 +++++++++++++++---------- lib/root.es6 | 8 +++++++- lib/rule.es6 | 4 ++-- test/container.es6 | 16 ++++++++-------- test/node.es6 | 4 ++-- test/postcss.es6 | 2 +- test/root.es6 | 2 +- 10 files changed, 62 insertions(+), 40 deletions(-) diff --git a/docs/api.md b/docs/api.md index b5f07499a..5d3b487a1 100644 --- a/docs/api.md +++ b/docs/api.md @@ -72,7 +72,7 @@ var remove = postcss.plugin('postcss-remove', function (opts) { var filter = opts.prop || 'z-index'; return function (css, result) { css.eachDecl(filter, function (decl) { - decl.removeSelf(); + decl.remove(); }); }; }); @@ -1106,14 +1106,14 @@ Returns the `Root` instance of the node’s tree. root.nodes[0].nodes[0].root() == root ``` -### `node.removeSelf()` +### `node.remove()` Removes the node from its parent, and cleans the `parent` property in the node and its children. ```js if ( decl.prop.match(/^-webkit-/) ) { - decl.removeSelf(); + decl.remove(); } ``` @@ -1356,7 +1356,7 @@ calling `callback` for each. ```js root.eachDecl(function (decl) { if ( decl.prop.match(/^-webkit-/) ) { - decl.removeSelf(); + decl.remove(); } }); ``` @@ -1373,7 +1373,7 @@ If you pass a `propFilter`, only those declarations whose property matches ```js // Make flat design root.eachDecl('border-radius', function (decl) { - decl.removeSelf(); + decl.remove(); }); root.eachDecl(/^background/, function (decl) { decl.value = takeFirstColorFromGradient(decl.value); @@ -1391,7 +1391,7 @@ calling `callback` for each. ```js root.eachAtRule(function (rule) { - if ( rule.name.match(/^-webkit-/) ) rule.removeSelf(); + if ( rule.name.match(/^-webkit-/) ) rule.remove(); }); ``` @@ -1410,7 +1410,7 @@ root.eachAtRule('charset', function (rule) { if ( !first ) { first = true; } else { - rule.removeSelf(); + rule.remove(); } }); ``` @@ -1450,7 +1450,7 @@ Recursively iterates through all comment nodes within the container, calling ```js root.eachComment(function (comment) { - comment.removeSelf(); + comment.remove(); }); ``` @@ -1544,14 +1544,14 @@ Arguments: * `oldNode (Node|number)`: child or child’s index. * `node (Node|object|string)`: new node. -### `container.remove(node)` +### `container.removeChild(node)` Removes `node` from the container, and the `parent` properties of `node` and its children. ```js rule.nodes.length //=> 5 -rule.remove(decl); +rule.removeChild(decl); rule.nodes.length //=> 4 decl.parent //=> undefined ``` diff --git a/lib/container.es6 b/lib/container.es6 index c124c89b4..f119118b8 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -193,6 +193,17 @@ export default class Container extends Node { } remove(child) { + if (child) { + warnOnce('Container#remove is deprecated. ' + + 'Use Container#removeChild'); + this.removeChild(child); + } else { + super.remove(); + } + return this; + } + + removeChild(child) { child = this.index(child); this.nodes[child].parent = undefined; this.nodes.splice(child, 1); @@ -305,22 +316,22 @@ export default class Container extends Node { } get semicolon() { - warnOnce('Node#semicolon was deprecated. Use Node#raw.semicolon'); + warnOnce('Node#semicolon is deprecated. Use Node#raw.semicolon'); return this.raw.semicolon; } set semicolon(val) { - warnOnce('Node#semicolon was deprecated. Use Node#raw.semicolon'); + warnOnce('Node#semicolon is deprecated. Use Node#raw.semicolon'); this.raw.semicolon = val; } get after() { - warnOnce('Node#after was deprecated. Use Node#raw.after'); + warnOnce('Node#after is deprecated. Use Node#raw.after'); return this.raw.after; } set after(val) { - warnOnce('Node#after was deprecated. Use Node#raw.after'); + warnOnce('Node#after is deprecated. Use Node#raw.after'); this.raw.after = val; } diff --git a/lib/map-generator.es6 b/lib/map-generator.es6 index 8600613ae..03b0efff7 100644 --- a/lib/map-generator.es6 +++ b/lib/map-generator.es6 @@ -71,7 +71,7 @@ export default class { node = this.root.nodes[i]; if ( node.type !== 'comment' ) continue; if ( node.text.indexOf('# sourceMappingURL=') === 0 ) { - this.root.remove(i); + this.root.removeChild(i); } } } diff --git a/lib/node.es6 b/lib/node.es6 index 8cef4a340..6d3684087 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -46,15 +46,20 @@ export default class Node { } removeSelf() { + warnOnce('Node#removeSelf is deprecated. Use Node#remove.'); + this.remove(); + } + + remove() { if ( this.parent ) { - this.parent.remove(this); + this.parent.removeChild(this); } this.parent = undefined; return this; } replace(nodes) { - warnOnce('Node#replace was deprecated. Use Node#replaceWith'); + warnOnce('Node#replace is deprecated. Use Node#replaceWith'); return this.replaceWith(nodes); } @@ -91,7 +96,7 @@ export default class Node { this.parent.insertBefore(this, node); } - this.removeSelf(); + this.remove(); } return this; @@ -99,21 +104,21 @@ export default class Node { moveTo(container) { this.cleanStyles(this.root() === container.root()); - this.removeSelf(); + this.remove(); container.append(this); return this; } moveBefore(node) { this.cleanStyles(this.root() === node.root()); - this.removeSelf(); + this.remove(); node.parent.insertBefore(node, this); return this; } moveAfter(node) { this.cleanStyles(this.root() === node.root()); - this.removeSelf(); + this.remove(); node.parent.insertAfter(node, this); return this; } @@ -200,22 +205,22 @@ export default class Node { } get before() { - warnOnce('Node#before was deprecated. Use Node#raw.before'); + warnOnce('Node#before is deprecated. Use Node#raw.before'); return this.raw.before; } set before(val) { - warnOnce('Node#before was deprecated. Use Node#raw.before'); + warnOnce('Node#before is deprecated. Use Node#raw.before'); this.raw.before = val; } get between() { - warnOnce('Node#between was deprecated. Use Node#raw.between'); + warnOnce('Node#between is deprecated. Use Node#raw.between'); return this.raw.between; } set between(val) { - warnOnce('Node#between was deprecated. Use Node#raw.between'); + warnOnce('Node#between is deprecated. Use Node#raw.between'); this.raw.between = val; } diff --git a/lib/root.es6 b/lib/root.es6 index fa5af4881..bc4d170c8 100644 --- a/lib/root.es6 +++ b/lib/root.es6 @@ -1,4 +1,5 @@ import Container from './container'; +import warnOnce from './warn-once'; export default class Root extends Container { @@ -9,13 +10,18 @@ export default class Root extends Container { } remove(child) { + warnOnce('Root#remove is deprecated. Use Root#removeChild'); + this.removeChild(child); + } + + removeChild(child) { child = this.index(child); if ( child === 0 && this.nodes.length > 1 ) { this.nodes[1].raw.before = this.nodes[child].raw.before; } - return super.remove(child); + return super.removeChild(child); } normalize(child, sample, type) { diff --git a/lib/rule.es6 b/lib/rule.es6 index 127355cc6..f00ef2f22 100644 --- a/lib/rule.es6 +++ b/lib/rule.es6 @@ -21,12 +21,12 @@ export default class Rule extends Container { } get _selector() { - warnOnce('Rule#_selector was deprecated. Use Rule#raw.selector'); + warnOnce('Rule#_selector is deprecated. Use Rule#raw.selector'); return this.raw.selector; } set _selector(val) { - warnOnce('Rule#_selector was deprecated. Use Rule#raw.selector'); + warnOnce('Rule#_selector is deprecated. Use Rule#raw.selector'); this.raw.selector = val; } diff --git a/test/container.es6 b/test/container.es6 index ba5840c4d..cd63d84a3 100644 --- a/test/container.es6 +++ b/test/container.es6 @@ -220,7 +220,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; parse(example).eachDecl( (decl, i) => { - decl.parent.remove(i); + decl.parent.removeChild(i); size += 1; }); expect(size).to.eql(5); @@ -280,7 +280,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; parse(example).eachComment( (comment, i) => { - comment.parent.remove(i); + comment.parent.removeChild(i); size += 1; }); expect(size).to.eql(3); @@ -319,7 +319,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; parse(example).eachRule( (rule, i) => { - rule.parent.remove(i); + rule.parent.removeChild(i); size += 1; }); expect(size).to.eql(3); @@ -358,7 +358,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; parse(example).eachAtRule( (atrule, i) => { - atrule.parent.remove(i); + atrule.parent.removeChild(i); size += 1; }); expect(size).to.eql(3); @@ -590,24 +590,24 @@ describe('Container', () => { }); - describe('remove()', () => { + describe('removeChild()', () => { it('removes by index', () => { let rule = parse('a { a: 1; b: 2 }').first; - rule.remove(1); + rule.removeChild(1); expect(rule.toString()).to.eql('a { a: 1 }'); }); it('removes by node', () => { let rule = parse('a { a: 1; b: 2 }').first; - rule.remove(rule.last); + rule.removeChild(rule.last); expect(rule.toString()).to.eql('a { a: 1 }'); }); it('cleans parent in removed node', () => { let rule = parse('a { a: 1; b: 2 }').first; let decl = rule.first; - rule.remove(decl); + rule.removeChild(decl); expect(decl.parent).to.not.exist; }); diff --git a/test/node.es6 b/test/node.es6 index fccfb9495..b23c32b50 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -53,14 +53,14 @@ describe('Node', () => { }); - describe('removeSelf()', () => { + describe('remove()', () => { it('removes node from parent', () => { let rule = new Rule({ selector: 'a' }); let decl = new Declaration({ prop: 'color', value: 'black' }); rule.append(decl); - decl.removeSelf(); + decl.remove(); expect(rule.nodes).to.be.empty; expect(decl.parent).to.not.exist; }); diff --git a/test/postcss.es6 b/test/postcss.es6 index 0c8b8e277..dfd1b2dad 100644 --- a/test/postcss.es6 +++ b/test/postcss.es6 @@ -57,7 +57,7 @@ describe('postcss()', () => { let plugin = postcss.plugin('test', (filter) => { return function (css) { css.eachDecl(filter || 'two', function (decl) { - decl.removeSelf(); + decl.remove(); }); }; }); diff --git a/test/root.es6 b/test/root.es6 index 4550b2283..e0ea253db 100644 --- a/test/root.es6 +++ b/test/root.es6 @@ -76,7 +76,7 @@ describe('Root', () => { it('fixes spaces on removing first rule', () => { let css = parse('a{}\nb{}\n'); - css.first.removeSelf(); + css.first.remove(); expect(css.toString()).to.eql('b{}\n'); }); From 3ebae08cd2b02c66f333a26d81590d993935af0e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 00:35:22 +0300 Subject: [PATCH 0584/3047] Lock ESLint version --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 8dddd3a5d..0ced2aa73 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "gulp-util": "3.0.6", "gulp-run": "1.6.10", "fs-extra": "0.23.1", + "eslint": "1.1.0", "sinon": "1.15.4", "mocha": "2.2.5", "gulp": "3.9.0", From c108d120ace57d5c5774aeec6d7c426314f1cab7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 00:53:44 +0300 Subject: [PATCH 0585/3047] Add special case for url() token --- lib/tokenize.es6 | 51 ++++++++++++++++++++++++++++++++++------------- test/tokenize.es6 | 16 +++++++++++++++ 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/lib/tokenize.es6 b/lib/tokenize.es6 index 23cd3017e..b59939ec6 100644 --- a/lib/tokenize.es6 +++ b/lib/tokenize.es6 @@ -24,13 +24,17 @@ export default function tokenize(input) { let css = input.css.valueOf(); let code, next, quote, lines, last, content, escape, - nextLine, nextOffset, escaped, escapePos; + nextLine, nextOffset, escaped, escapePos, prev, n; let length = css.length; let offset = -1; let line = 1; let pos = 0; + function unclosed(what) { + throw input.error('Unclosed ' + what, line, pos - offset); + } + while ( pos < length ) { code = css.charCodeAt(pos); @@ -80,17 +84,40 @@ export default function tokenize(input) { break; case OPEN_PARENTHESES: - next = css.indexOf(')', pos + 1); - content = css.slice(pos, next + 1); - - if ( next === -1 || RE_BAD_BRACKET.test(content) ) { - tokens.push(['(', '(', line, pos - offset]); - } else { - tokens.push(['brackets', content, + prev = tokens.length ? tokens[tokens.length - 1][1] : ''; + n = css.charCodeAt(pos + 1); + if ( prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE ) { + next = pos; + do { + escaped = false; + next = css.indexOf(')', next + 1); + if ( next === -1 ) unclosed('bracket'); + escapePos = next; + while ( css.charCodeAt(escapePos - 1) === BACKSLASH ) { + escapePos -= 1; + escaped = !escaped; + } + } while ( escaped ); + + tokens.push(['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset ]); pos = next; + + } else { + next = css.indexOf(')', pos + 1); + content = css.slice(pos, next + 1); + + if ( next === -1 || RE_BAD_BRACKET.test(content) ) { + tokens.push(['(', '(', line, pos - offset]); + } else { + tokens.push(['brackets', content, + line, pos - offset, + line, next - offset + ]); + pos = next; + } } break; @@ -106,9 +133,7 @@ export default function tokenize(input) { do { escaped = false; next = css.indexOf(quote, next + 1); - if ( next === -1 ) { - throw input.error('Unclosed quote', line, pos - offset); - } + if ( next === -1 ) unclosed('quote'); escapePos = next; while ( css.charCodeAt(escapePos - 1) === BACKSLASH ) { escapePos -= 1; @@ -164,9 +189,7 @@ export default function tokenize(input) { default: if ( code === SLASH && css.charCodeAt(pos + 1) === ASTERICK ) { next = css.indexOf('*/', pos + 2) + 1; - if ( next === 0 ) { - throw input.error('Unclosed comment', line, pos - offset); - } + if ( next === 0 ) unclosed('comment'); content = css.slice(pos, next + 1); lines = content.split('\n'); diff --git a/test/tokenize.es6 b/test/tokenize.es6 index faacc002e..475cda2b0 100644 --- a/test/tokenize.es6 +++ b/test/tokenize.es6 @@ -115,6 +115,18 @@ describe('tokenize', () => { ]); }); + it('tokenizes urls', () => { + test('url(/*\\))', [ ['word', 'url', 1, 1, 1, 3], + ['brackets', '(/*\\))', 1, 4, 1, 9] ]); + }); + + it('tokenizes quoted urls', () => { + test('url(")")', [ ['word', 'url', 1, 1, 1, 3], + ['(', '(', 1, 4], + ['string', '")"', 1, 5, 1, 7], + [')', ')', 1, 8] ]); + }); + it('tokenizes at-symbol', () => { test('@', [ ['at-word', '@', 1, 1, 1, 1] ]); }); @@ -176,4 +188,8 @@ describe('tokenize', () => { expect( () => test(' /*') ).to.throw(/:1:2: Unclosed comment/); }); + it('throws error on unclosed url', () => { + expect( () => test('url(') ).to.throw(/:1:4: Unclosed bracket/); + }); + }); From 8a16a70ae9f0043433d6ad9ccec10f3a3fc983d1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:14:47 +0300 Subject: [PATCH 0586/3047] Clean up stringify test --- test/stringify.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/stringify.es6 b/test/stringify.es6 index db14e1e3e..77b95780b 100644 --- a/test/stringify.es6 +++ b/test/stringify.es6 @@ -8,7 +8,7 @@ describe('stringify', () => { cases.each( (name, css) => { it('stringifies ' + name, () => { - let root = parse(css, { from: name }); + let root = parse(css); let result = ''; stringify(root, i => result += i ); expect(result).to.eql(css); From 778999849c40ba3c3f66cf473a2d3ed1a2b574f1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:15:22 +0300 Subject: [PATCH 0587/3047] Clean code style in stringify test --- test/stringify.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/stringify.es6 b/test/stringify.es6 index 77b95780b..1011a4c79 100644 --- a/test/stringify.es6 +++ b/test/stringify.es6 @@ -8,8 +8,8 @@ describe('stringify', () => { cases.each( (name, css) => { it('stringifies ' + name, () => { - let root = parse(css); let result = ''; + let root = parse(css); stringify(root, i => result += i ); expect(result).to.eql(css); }); From 0af97b6c8921e81b464114112df1b1b73a5dbf74 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:15:55 +0300 Subject: [PATCH 0588/3047] More clear stringify test --- test/stringify.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/stringify.es6 b/test/stringify.es6 index 1011a4c79..2c2722bc2 100644 --- a/test/stringify.es6 +++ b/test/stringify.es6 @@ -8,8 +8,8 @@ describe('stringify', () => { cases.each( (name, css) => { it('stringifies ' + name, () => { - let result = ''; let root = parse(css); + let result = ''; stringify(root, i => result += i ); expect(result).to.eql(css); }); From 0fdd6d8009aa031d293618d224201092d6cd0411 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:21:21 +0300 Subject: [PATCH 0589/3047] Add postcss-scss to syntaxes list --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 91f14fed9..47ab3f6c5 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ Read the [PostCSS API] for more details about the JS API. [Gulp]: https://github.com/postcss/gulp-postcss [ENB]: https://github.com/theprotein/enb-postcss -## Syntaxes +## Custom Syntaxes PostCSS can transforms styles in any syntax, not only in CSS. There are 3 special arguments in `process()` method to control syntax. @@ -171,11 +171,17 @@ You can even separately set input parser and output stringifier. ```js var safe = require('postcss-safe-parser'); -postcss(plugins).process(css, { parser: safe }).then(function (result) { - // result will contains fixed and processed CSS +postcss(plugins).process('a {', { parser: safe }).then(function (result) { + result.css //=> 'a {}' }); ``` +### Syntaxes + +* [`postcss-scss`] to works with SCSS *(it do not compile SCSS to CSS)*. + +[`postcss-safe-parser`]: https://github.com/postcss/postcss-scss + ### Parsers * [`postcss-safe-parser`] finds and fix CSS syntax errors. From 08556080560a84ceefa178ea4dcfe96892d69cc0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:23:06 +0300 Subject: [PATCH 0590/3047] Fix main menu --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 47ab3f6c5..702ce06ea 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ VK.com page: [postcss](https://vk.com/postcss). [travis]: https://travis-ci.org/postcss/postcss [chat]: https://gitter.im/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#plugins) | [Write Your Own Plugin](#how-to-develop-a-postcss-plugin) | [Options](#options) +[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#custom-syntaxes) | [Plugins](#plugins) | [Development](#how-to-develop-a-postcss-plugin) | [Options](#options) --- | --- | --- | --- | --- | --- @@ -180,7 +180,7 @@ postcss(plugins).process('a {', { parser: safe }).then(function (result) { * [`postcss-scss`] to works with SCSS *(it do not compile SCSS to CSS)*. -[`postcss-safe-parser`]: https://github.com/postcss/postcss-scss +[`postcss-scss`]: https://github.com/postcss/postcss-scss ### Parsers From ffad5ce725b740bf37131f1542ab06d5c1a610ee Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:23:31 +0300 Subject: [PATCH 0591/3047] Fix Markdown table syntax --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 702ce06ea..b38a3fc7a 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ VK.com page: [postcss](https://vk.com/postcss). [chat]: https://gitter.im/postcss/postcss [Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#custom-syntaxes) | [Plugins](#plugins) | [Development](#how-to-develop-a-postcss-plugin) | [Options](#options) ---- | --- | --- | --- | --- | --- +--- | --- | --- | --- | --- | --- | --- Sponsored by Evil Martians From b8a16c1d880de43760323bbb9a6b5cf40f323f97 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:23:51 +0300 Subject: [PATCH 0592/3047] Fix menu titles --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b38a3fc7a..989901003 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ VK.com page: [postcss](https://vk.com/postcss). [travis]: https://travis-ci.org/postcss/postcss [chat]: https://gitter.im/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Plugins](#custom-syntaxes) | [Plugins](#plugins) | [Development](#how-to-develop-a-postcss-plugin) | [Options](#options) +[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Syntaxes](#custom-syntaxes) | [Plugins](#plugins) | [Development](#how-to-develop-a-postcss-plugin) | [Options](#options) --- | --- | --- | --- | --- | --- | --- From 17a9ac26ed65cd405c8410c414627d4b34d75e4c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:25:46 +0300 Subject: [PATCH 0593/3047] Add syntax docs to README --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 989901003..19253d0aa 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ VK.com page: [postcss](https://vk.com/postcss). [travis]: https://travis-ci.org/postcss/postcss [chat]: https://gitter.im/postcss/postcss -[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Syntaxes](#custom-syntaxes) | [Plugins](#plugins) | [Development](#how-to-develop-a-postcss-plugin) | [Options](#options) +[Examples](#what-is-postcss) | [Features](#features) | [Usage](#usage) | [Syntaxes](#custom-syntaxes) | [Plugins](#plugins) | [Development](#how-to-develop-for-postcss) | [Options](#options) --- | --- | --- | --- | --- | --- | --- @@ -597,7 +597,13 @@ See also plugins in modular minifier [`cssnano`]. [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -## How to Develop a PostCSS Plugin +## How to Develop for PostCSS + +### Syntax + +* [How to Write Custom Syntax](https://github.com/postcss/postcss/blob/master/docs/syntax.md) + +### Plugin * [Plugin Guidelines](https://github.com/postcss/postcss/blob/master/docs/guidelines/plugin.md) * [Plugin Boilerplate](https://github.com/postcss/postcss-plugin-boilerplate) From 9f30b06d098bad63c6c90db8a9e4b4a6cc39a686 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 01:27:32 +0300 Subject: [PATCH 0594/3047] Add links for example parsers to doc --- docs/syntax.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index f2bf32ce9..b001a6c3e 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -14,7 +14,7 @@ You can provide 3 types of package: ## Syntax -Good example of syntax is SCSS. Some users may want to change properties order +Good example of syntax is [SCSS]. Some users may want to change properties order or add prefixes directly to SCSS sources. So we need SCSS input and output. Syntax API is very simple. It is just a object with `parse` and `stringify` @@ -27,9 +27,11 @@ module.exports = { }; ``` +[SCSS]: https://github.com/postcss/postcss-scss + ## Parser -Main example of parse is Safe Parser, to parse broken CSS. There is not sense +Main example of parse is [Safe Parser], to parse broken CSS. There is not sense to generate string with broken CSS, so package should provide only parser. Parser API is a function, that receives string and returns `Root` node. @@ -45,6 +47,8 @@ module.exports = function (css, opts) { }; ``` +[Safe Parser]: https://github.com/postcss/postcss-safe-parser + TODO: parser theory look and current one (copy paste is OK) TODO: reuse Parser and tests From 52f71411dccb501c16dc10217c7f11d3d56bc4ce Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Tue, 11 Aug 2015 01:03:24 +0100 Subject: [PATCH 0595/3047] Add node#warn. Fixes #289. --- docs/api.md | 38 ++++++++++++++++++++++++++++++-------- lib/node.es6 | 4 ++++ test/node.es6 | 17 +++++++++++++++++ 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/docs/api.md b/docs/api.md index 5d3b487a1..07293a408 100644 --- a/docs/api.md +++ b/docs/api.md @@ -132,16 +132,16 @@ postcss.plugin('postcss-import', function () { }); ``` -Add warnings using the [`Result#warn()`] method. +Add warnings using the [`Node#warn()`] method. ```js postcss.plugin('postcss-caniuse-test', function () { return function (css, result) { css.eachDecl(function (decl) { if ( !caniuse.support(decl.prop) ) { - result.warn( - 'Some of browsers does not support ' + decl.prop, - { node: decl }); + decl.warn( + result, + 'Some browsers do not support ' + decl.prop); } }); }; @@ -626,11 +626,11 @@ root.toResult(opts).opts == opts; ## `Warning` class -Warning from plugins. It can be created using [`Result#warn()`]. +Warning from plugins. It can be created using [`Node#warn()`]. ```js if ( decl.important ) { - result.warn('Try to avoid !important', { node: decl }); + decl.warn(result, 'Try to avoid !important'); } ``` @@ -653,7 +653,7 @@ warning.text //=> 'Try to avoid !important' ### `warning.plugin` Contains name of plugin that created this warning. When you call -[`Result#warn()`], it will fill this property automatically. +[`Node#warn()`], it will fill this property automatically. ```js warning.plugin //=> 'postcss-important' @@ -1084,7 +1084,28 @@ Arguments: * `index` (number): a index inside a node’s string, that should be highlighted as source of error. -See also [`Result#warn()`] for warnings. +### `node.warn(result, message)` + +This method is provided as a convenience wrapper for [`Result#warn()`]. + +```js +var plugin = postcss.plugin('postcss-deprecated', function () { + return function (css, result) { + css.eachDecl('color', function (decl) { + if (~decl.raw.before.indexOf('_')) { + // Both of these lines will have the same effect + result.warn('Deprecated property _color', {node: decl}); + decl.warn(result, 'Deprecated property _color'); + } + }); + }; +}); +``` + +Arguments: + +* `result`: The [`Result`] instance which will receive the warning. +* `message (string)`: error description. ### `node.next()` and `node.prev()` @@ -1758,6 +1779,7 @@ var comment.text //=> 'Empty file' [`CssSyntaxError`]: #csssyntaxerror-class [`Processor#use`]: #processoruseplugin [`Result#warn()`]: #resultwarn +[`Node#warn()`]: #nodewarnmessage-result [`Comment` node]: #comment-node [`AtRule` node]: #atrule-node [`from` option]: #processorprocesscss-opts diff --git a/lib/node.es6 b/lib/node.es6 index 6d3684087..d048c7921 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -45,6 +45,10 @@ export default class Node { } } + warn(result, message) { + return result.warn(message, { node: this }); + } + removeSelf() { warnOnce('Node#removeSelf is deprecated. Use Node#remove.'); this.remove(); diff --git a/test/node.es6 b/test/node.es6 index b23c32b50..5465c8ad7 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -1,5 +1,6 @@ import CssSyntaxError from '../lib/css-syntax-error'; import Declaration from '../lib/declaration'; +import postcss from '../lib/postcss'; import AtRule from '../lib/at-rule'; import parse from '../lib/parse'; import Root from '../lib/root'; @@ -53,6 +54,22 @@ describe('Node', () => { }); + describe('warn()', () => { + + it('attaches a warning to the result object', () => { + let warner = postcss.plugin('warner', () => { + return (css, result) => { + css.first.warn(result, 'FIRST!'); + }; + }); + + let result = postcss([ warner() ]).process('a{}'); + expect(result.warnings().length).to.eql(1); + expect(result.warnings()[0].text).to.eql('FIRST!'); + expect(result.warnings()[0].plugin).to.eql('warner'); + }); + }); + describe('remove()', () => { it('removes node from parent', () => { From a60a88c24036bc285c3255239f95fe3b1b016998 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 11 Aug 2015 18:14:11 +0300 Subject: [PATCH 0596/3047] Clean up example --- docs/api.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/api.md b/docs/api.md index 07293a408..b0d743378 100644 --- a/docs/api.md +++ b/docs/api.md @@ -139,9 +139,8 @@ postcss.plugin('postcss-caniuse-test', function () { return function (css, result) { css.eachDecl(function (decl) { if ( !caniuse.support(decl.prop) ) { - decl.warn( - result, - 'Some browsers do not support ' + decl.prop); + decl.warn(result, + 'Some browsers do not support ' + decl.prop); } }); }; From 82e8af79c97ba61d0517f2302db9b00bdfcce479 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Wed, 12 Aug 2015 09:34:08 +0100 Subject: [PATCH 0597/3047] Return this.remove(). --- lib/node.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node.es6 b/lib/node.es6 index d048c7921..4a171b748 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -51,7 +51,7 @@ export default class Node { removeSelf() { warnOnce('Node#removeSelf is deprecated. Use Node#remove.'); - this.remove(); + return this.remove(); } remove() { From abd479079e916ef76ee28732ca4d0ec3409b1f47 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 12 Aug 2015 16:20:04 +0300 Subject: [PATCH 0598/3047] Rename CssSyntaxError#generated to CssSyntaxError#input --- docs/api.md | 24 ++++++++++++------------ lib/input.es6 | 4 ++-- test/css-syntax-error.es6 | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/api.md b/docs/api.md index b0d743378..77400fe00 100644 --- a/docs/api.md +++ b/docs/api.md @@ -767,11 +767,11 @@ If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), -use `error.generated.file`. +use `error.input.file`. ```js -error.file //=> 'a.sass' -error.generated.file //=> 'a.css' +error.file //=> 'a.sass' +error.input.file //=> 'a.css' ``` ### `error.line` @@ -787,11 +787,11 @@ you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), -use `error.generated.line`. +use `error.input.line`. ```js -error.line //=> 2 -error.generated.line //=> 4 +error.line //=> 2 +error.input.line //=> 4 ``` ### `error.column` @@ -807,11 +807,11 @@ you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), -use `error.generated.column`. +use `error.input.column`. ```js -error.column //=> 1 -error.generated.column //=> 4 +error.column //=> 1 +error.input.column //=> 4 ``` ### `error.source` @@ -827,11 +827,11 @@ If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, PostCSS will show the original position in the Sass file. If you need position in PostCSS input (for example, to debug previous compiler), -use `error.generated.source`. +use `error.input.source`. ```js -error.source //=> 'a { b {} }' -error.generated.column //=> 'a b { }' +error.source //=> 'a { b {} }' +error.input.column //=> 'a b { }' ``` ## Vendor module diff --git a/lib/input.es6 b/lib/input.es6 index f29c5eb54..77a0fa3d2 100644 --- a/lib/input.es6 +++ b/lib/input.es6 @@ -41,8 +41,8 @@ export default class Input { this.css, this.file, opts.plugin); } - error.generated = { line, column, source: this.css }; - if ( this.file ) error.generated.file = this.file; + error.input = { line, column, source: this.css }; + if ( this.file ) error.input.file = this.file; return error; } diff --git a/test/css-syntax-error.es6 b/test/css-syntax-error.es6 index 7d471235c..af793c837 100644 --- a/test/css-syntax-error.es6 +++ b/test/css-syntax-error.es6 @@ -32,7 +32,7 @@ describe('CssSyntaxError', () => { expect(error.column).to.eql(12); expect(error.source).to.eql('a {\n content: "\n}'); - expect(error.generated).to.eql({ + expect(error.input).to.eql({ line: error.line, column: error.column, source: error.source @@ -88,7 +88,7 @@ describe('CssSyntaxError', () => { expect(error.line).to.eql(2); expect(error.source).to.not.exist; - expect(error.generated).to.eql({ + expect(error.input).to.eql({ file: path.resolve('build/all.css'), line: 3, column: 1, From 19bcda90d517cec6e0f739164d6a67849be5cc31 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 13 Aug 2015 19:47:00 +0300 Subject: [PATCH 0599/3047] Update dependencies --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0ced2aa73..dfcd1f6bd 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "supports-color": "^3.1.0", "source-map": "^0.4.4", - "babel-core": "5.8.21", + "babel-core": "5.8.22", "js-base64": "^2.1.9" }, "devDependencies": { @@ -42,7 +42,7 @@ "mocha": "2.2.5", "gulp": "3.9.0", "chai": "3.2.0", - "del": "1.2.0" + "del": "1.2.1" }, "scripts": { "test": "gulp" From 192e79a6207b516ba8c8f4d50bf9ae7572bafd8c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 13 Aug 2015 20:15:11 +0300 Subject: [PATCH 0600/3047] Rename raw to raws --- docs/api.md | 16 +++++-------- lib/at-rule.es6 | 16 ++++++------- lib/comment.es6 | 16 ++++++------- lib/container.es6 | 30 ++++++++++++------------ lib/declaration.es6 | 16 ++++++------- lib/node.es6 | 24 +++++++++---------- lib/parser.es6 | 56 ++++++++++++++++++++++---------------------- lib/root.es6 | 8 +++---- lib/rule.es6 | 8 +++---- lib/stringifier.es6 | 46 ++++++++++++++++++------------------ test/container.es6 | 16 ++++++------- test/node.es6 | 32 ++++++++++++------------- test/parse.es6 | 6 ++--- test/processor.es6 | 2 +- test/root.es6 | 4 ++-- test/rule.es6 | 2 +- test/stringifier.es6 | 8 +++---- 17 files changed, 151 insertions(+), 155 deletions(-) diff --git a/docs/api.md b/docs/api.md index 77400fe00..2dddd15bd 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1012,7 +1012,7 @@ if ( atrule.name == 'add-link' ) { } ``` -### `node.raw` +### `node.raws` Contains information to generate byte-to-byte equal node string as it was in origin input. @@ -1033,7 +1033,7 @@ Every parser saves its own properties, but default CSS parser use: PostCSS cleans selectors, declaration’s values and at-rule’s parameters from comments and extra spaces. But PostCSS stores origin content -in `raw` properties. So, if you will not change declaration value, +in `raws` properties. So, if you will not change declaration value, PostCSS will use raw value with comments. ### `node.toString()` @@ -1090,12 +1090,8 @@ This method is provided as a convenience wrapper for [`Result#warn()`]. ```js var plugin = postcss.plugin('postcss-deprecated', function () { return function (css, result) { - css.eachDecl('color', function (decl) { - if (~decl.raw.before.indexOf('_')) { - // Both of these lines will have the same effect - result.warn('Deprecated property _color', {node: decl}); - decl.warn(result, 'Deprecated property _color'); - } + css.eachDecl('bad', function (decl) { + decl.warn(result, 'Deprecated property bad'); }); }; }); @@ -1742,7 +1738,7 @@ root.first.last.important //=> undefined Represents a comment between declarations or statements (rule and at-rules). Comments inside selectors, at-rules parameters, or declaration values -will be stored in the [`Node#raw`] properties explained above. +will be stored in the [`Node#raws`] properties explained above. ```js var root = postcss.parse('a { color: /* inner */ black; /* outer */ }'); @@ -1788,7 +1784,7 @@ var comment.text //=> 'Empty file' [`Root` node]: #root-node [`Rule` node]: #rule-node [`Processor`]: #processor-class -[`Node#raw`]: #node-raw +[`Node#raws`]: #node-raws [`Warning`]: #warning-class [`Result`]: #result-class [`Input`]: #inputclass diff --git a/lib/at-rule.es6 b/lib/at-rule.es6 index e86113bee..e174a90bd 100644 --- a/lib/at-rule.es6 +++ b/lib/at-rule.es6 @@ -29,23 +29,23 @@ export default class AtRule extends Container { } get afterName() { - warnOnce('AtRule#afterName was deprecated. Use AtRule#raw.afterName'); - return this.raw.afterName; + warnOnce('AtRule#afterName was deprecated. Use AtRule#raws.afterName'); + return this.raws.afterName; } set afterName(val) { - warnOnce('AtRule#afterName was deprecated. Use AtRule#raw.afterName'); - this.raw.afterName = val; + warnOnce('AtRule#afterName was deprecated. Use AtRule#raws.afterName'); + this.raws.afterName = val; } get _params() { - warnOnce('AtRule#_params was deprecated. Use AtRule#raw.params'); - return this.raw.params; + warnOnce('AtRule#_params was deprecated. Use AtRule#raws.params'); + return this.raws.params; } set _params(val) { - warnOnce('AtRule#_params was deprecated. Use AtRule#raw.params'); - this.raw.params = val; + warnOnce('AtRule#_params was deprecated. Use AtRule#raws.params'); + this.raws.params = val; } } diff --git a/lib/comment.es6 b/lib/comment.es6 index 9ac78bae5..1f141a098 100644 --- a/lib/comment.es6 +++ b/lib/comment.es6 @@ -9,23 +9,23 @@ export default class Comment extends Node { } get left() { - warnOnce('Comment#left was deprecated. Use Comment#raw.left'); - return this.raw.left; + warnOnce('Comment#left was deprecated. Use Comment#raws.left'); + return this.raws.left; } set left(val) { - warnOnce('Comment#left was deprecated. Use Comment#raw.left'); - this.raw.left = val; + warnOnce('Comment#left was deprecated. Use Comment#raws.left'); + this.raws.left = val; } get right() { - warnOnce('Comment#right was deprecated. Use Comment#raw.right'); - return this.raw.right; + warnOnce('Comment#right was deprecated. Use Comment#raws.right'); + return this.raws.right; } set right(val) { - warnOnce('Comment#right was deprecated. Use Comment#raw.right'); - this.raw.right = val; + warnOnce('Comment#right was deprecated. Use Comment#raws.right'); + this.raws.right = val; } } diff --git a/lib/container.es6 b/lib/container.es6 index f119118b8..eeb6d4c22 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -294,15 +294,15 @@ export default class Container extends Node { } } - let processed = nodes.map( (child) => { - if ( child.parent ) child = child.clone(); - if ( typeof child.raw.before === 'undefined' ) { - if ( sample && typeof sample.raw.before !== 'undefined' ) { - child.raw.before = sample.raw.before.replace(/[^\s]/g, ''); + let processed = nodes.map( (i) => { + if ( i.parent ) i = i.clone(); + if ( typeof i.raws.before === 'undefined' ) { + if ( sample && typeof sample.raws.before !== 'undefined' ) { + i.raws.before = sample.raws.before.replace(/[^\s]/g, ''); } } - child.parent = this; - return child; + i.parent = this; + return i; }); return processed; @@ -316,23 +316,23 @@ export default class Container extends Node { } get semicolon() { - warnOnce('Node#semicolon is deprecated. Use Node#raw.semicolon'); - return this.raw.semicolon; + warnOnce('Node#semicolon is deprecated. Use Node#raws.semicolon'); + return this.raws.semicolon; } set semicolon(val) { - warnOnce('Node#semicolon is deprecated. Use Node#raw.semicolon'); - this.raw.semicolon = val; + warnOnce('Node#semicolon is deprecated. Use Node#raws.semicolon'); + this.raws.semicolon = val; } get after() { - warnOnce('Node#after is deprecated. Use Node#raw.after'); - return this.raw.after; + warnOnce('Node#after is deprecated. Use Node#raws.after'); + return this.raws.after; } set after(val) { - warnOnce('Node#after is deprecated. Use Node#raw.after'); - this.raw.after = val; + warnOnce('Node#after is deprecated. Use Node#raws.after'); + this.raws.after = val; } } diff --git a/lib/declaration.es6 b/lib/declaration.es6 index c4faf66b7..d9486b5d0 100644 --- a/lib/declaration.es6 +++ b/lib/declaration.es6 @@ -9,23 +9,23 @@ export default class Declaration extends Node { } get _value() { - warnOnce('Node#_value was deprecated. Use Node#raw.value'); - return this.raw.value; + warnOnce('Node#_value was deprecated. Use Node#raws.value'); + return this.raws.value; } set _value(val) { - warnOnce('Node#_value was deprecated. Use Node#raw.value'); - this.raw.value = val; + warnOnce('Node#_value was deprecated. Use Node#raws.value'); + this.raws.value = val; } get _important() { - warnOnce('Node#_important was deprecated. Use Node#raw.important'); - return this.raw.important; + warnOnce('Node#_important was deprecated. Use Node#raws.important'); + return this.raws.important; } set _important(val) { - warnOnce('Node#_important was deprecated. Use Node#raw.important'); - this.raw.important = val; + warnOnce('Node#_important was deprecated. Use Node#raws.important'); + this.raws.important = val; } } diff --git a/lib/node.es6 b/lib/node.es6 index 4a171b748..5ee2290df 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -30,7 +30,7 @@ let cloneNode = function (obj, parent) { export default class Node { constructor(defaults = { }) { - this.raw = { }; + this.raws = { }; for ( let name in defaults ) { this[name] = defaults[name]; } @@ -175,9 +175,9 @@ export default class Node { } cleanStyles(keepBetween) { - delete this.raw.before; - delete this.raw.after; - if ( !keepBetween ) delete this.raw.between; + delete this.raws.before; + delete this.raws.after; + if ( !keepBetween ) delete this.raws.between; } positionInside(index) { @@ -209,23 +209,23 @@ export default class Node { } get before() { - warnOnce('Node#before is deprecated. Use Node#raw.before'); - return this.raw.before; + warnOnce('Node#before is deprecated. Use Node#raws.before'); + return this.raws.before; } set before(val) { - warnOnce('Node#before is deprecated. Use Node#raw.before'); - this.raw.before = val; + warnOnce('Node#before is deprecated. Use Node#raws.before'); + this.raws.before = val; } get between() { - warnOnce('Node#between is deprecated. Use Node#raw.between'); - return this.raw.between; + warnOnce('Node#between is deprecated. Use Node#raws.between'); + return this.raws.between; } set between(val) { - warnOnce('Node#between is deprecated. Use Node#raw.between'); - this.raw.between = val; + warnOnce('Node#between is deprecated. Use Node#raws.between'); + this.raws.between = val; } } diff --git a/lib/parser.es6 b/lib/parser.es6 index 43867fc84..ac53545c9 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -68,13 +68,13 @@ export default class Parser { let text = token[1].slice(2, -2); if ( /^\s*$/.test(text) ) { node.text = ''; - node.raw.left = text; - node.raw.right = ''; + node.raws.left = text; + node.raws.right = ''; } else { let match = text.match(/^(\s*)([^]*[^\s])(\s*)$/); node.text = match[2]; - node.raw.left = match[1]; - node.raw.right = match[3]; + node.raws.left = match[1]; + node.raws.right = match[3]; } } @@ -82,7 +82,7 @@ export default class Parser { let node = new Rule(); this.init(node, token[2], token[3]); node.selector = ''; - node.raw.between = ''; + node.raws.between = ''; this.current = node; } @@ -159,7 +159,7 @@ export default class Parser { let node = new Rule(); this.init(node, tokens[0][2], tokens[0][3]); - node.raw.between = this.spacesFromEnd(tokens); + node.raws.between = this.spacesFromEnd(tokens); this.raw(node, 'selector', tokens); this.current = node; } @@ -180,32 +180,32 @@ export default class Parser { } while ( tokens[0][0] !== 'word' ) { - node.raw.before += tokens.shift()[1]; + node.raws.before += tokens.shift()[1]; } node.source.start = { line: tokens[0][2], column: tokens[0][3] }; node.prop = tokens.shift()[1]; - node.raw.between = ''; + node.raws.between = ''; let token; while ( tokens.length ) { token = tokens.shift(); if ( token[0] === ':' ) { - node.raw.between += token[1]; + node.raws.between += token[1]; break; } else if ( token[0] !== 'space' && token[0] !== 'comment' ) { this.unknownDecl(node, token); } else { - node.raw.between += token[1]; + node.raws.between += token[1]; } } if ( node.prop[0] === '_' || node.prop[0] === '*' ) { - node.raw.before += node.prop[0]; + node.raws.before += node.prop[0]; node.prop = node.prop.slice(1); } - node.raw.between += this.spacesFromStart(tokens); + node.raws.between += this.spacesFromStart(tokens); this.precheckMissedSemicolon(tokens); for ( let i = tokens.length - 1; i > 0; i-- ) { @@ -214,7 +214,7 @@ export default class Parser { node.important = true; let string = this.stringFrom(tokens, i); string = this.spacesFromEnd(tokens) + string; - if ( string !== ' !important' ) node.raw.important = string; + if ( string !== ' !important' ) node.raws.important = string; break; } else if (token[1] === 'important') { @@ -229,7 +229,7 @@ export default class Parser { } if ( str.trim().indexOf('!') === 0 ) { node.important = true; - node.raw.important = str; + node.raws.important = str; tokens = cache; } } @@ -277,18 +277,18 @@ export default class Parser { last = true; } - node.raw.between = this.spacesFromEnd(params); + node.raws.between = this.spacesFromEnd(params); if ( params.length ) { - node.raw.afterName = this.spacesFromStart(params); + node.raws.afterName = this.spacesFromStart(params); this.raw(node, 'params', params); if ( last ) { token = params[params.length - 1]; node.source.end = { line: token[4], column: token[5] }; - this.spaces = node.raw.between; - node.raw.between = ''; + this.spaces = node.raws.between; + node.raws.between = ''; } } else { - node.raw.afterName = ''; + node.raws.afterName = ''; node.params = ''; } @@ -300,11 +300,11 @@ export default class Parser { end(token) { if ( this.current.nodes && this.current.nodes.length ) { - this.current.raw.semicolon = this.semicolon; + this.current.raws.semicolon = this.semicolon; } this.semicolon = false; - this.current.raw.after = (this.current.raw.after || '') + this.spaces; + this.current.raws.after = (this.current.raws.after || '') + this.spaces; this.spaces = ''; if ( this.current.parent ) { @@ -319,13 +319,13 @@ export default class Parser { if ( this.current.parent ) this.unclosedBlock(); if ( this.current.nodes && this.current.nodes.length ) { - this.current.raw.semicolon = this.semicolon; + this.current.raws.semicolon = this.semicolon; } - this.current.raw.after = (this.current.raw.after || '') + this.spaces; + this.current.raws.after = (this.current.raws.after || '') + this.spaces; while ( this.current.parent ) { this.current = this.current.parent; - this.current.raw.after = ''; + this.current.raws.after = ''; } } @@ -335,7 +335,7 @@ export default class Parser { this.current.push(node); node.source = { start: { line, column }, input: this.input }; - node.raw.before = this.spaces; + node.raws.before = this.spaces; this.spaces = ''; if ( node.type !== 'comment' ) this.semicolon = false; } @@ -352,9 +352,9 @@ export default class Parser { } } if ( !clean ) { - let origin = ''; - for ( token of tokens ) origin += token[1]; - node.raw[prop] = { value, raw: origin }; + let raw = ''; + for ( token of tokens ) raw += token[1]; + node.raws[prop] = { value, raw }; } node[prop] = value; } diff --git a/lib/root.es6 b/lib/root.es6 index bc4d170c8..76a23e6fc 100644 --- a/lib/root.es6 +++ b/lib/root.es6 @@ -18,7 +18,7 @@ export default class Root extends Container { child = this.index(child); if ( child === 0 && this.nodes.length > 1 ) { - this.nodes[1].raw.before = this.nodes[child].raw.before; + this.nodes[1].raws.before = this.nodes[child].raws.before; } return super.removeChild(child); @@ -30,14 +30,14 @@ export default class Root extends Container { if ( sample ) { if ( type === 'prepend' ) { if ( this.nodes.length > 1 ) { - sample.raw.before = this.nodes[1].raw.before; + sample.raws.before = this.nodes[1].raws.before; } else { - delete sample.raw.before; + delete sample.raws.before; } } else { for ( let node of nodes ) { if ( this.first !== sample ) { - node.raw.before = sample.raw.before; + node.raws.before = sample.raws.before; } } } diff --git a/lib/rule.es6 b/lib/rule.es6 index f00ef2f22..1bf7abd34 100644 --- a/lib/rule.es6 +++ b/lib/rule.es6 @@ -21,13 +21,13 @@ export default class Rule extends Container { } get _selector() { - warnOnce('Rule#_selector is deprecated. Use Rule#raw.selector'); - return this.raw.selector; + warnOnce('Rule#_selector is deprecated. Use Rule#raws.selector'); + return this.raws.selector; } set _selector(val) { - warnOnce('Rule#_selector is deprecated. Use Rule#raw.selector'); - this.raw.selector = val; + warnOnce('Rule#_selector is deprecated. Use Rule#raws.selector'); + this.raws.selector = val; } } diff --git a/lib/stringifier.es6 b/lib/stringifier.es6 index 3e2532ec5..eb71109c8 100644 --- a/lib/stringifier.es6 +++ b/lib/stringifier.es6 @@ -28,7 +28,7 @@ export default class Stringifier { root(node) { this.body(node); - if ( node.raw.after ) this.builder(node.raw.after); + if ( node.raws.after ) this.builder(node.raws.after); } comment(node) { @@ -42,7 +42,7 @@ export default class Stringifier { let string = node.prop + between + this.raw(node, 'value'); if ( node.important ) { - string += node.raw.important || ' !important'; + string += node.raws.important || ' !important'; } if ( semicolon ) string += ';'; @@ -57,8 +57,8 @@ export default class Stringifier { let name = '@' + node.name; let params = node.params ? this.raw(node, 'params') : ''; - if ( typeof node.raw.afterName !== 'undefined' ) { - name += node.raw.afterName; + if ( typeof node.raws.afterName !== 'undefined' ) { + name += node.raws.afterName; } else if ( params ) { name += ' '; } @@ -66,7 +66,7 @@ export default class Stringifier { if ( node.nodes ) { this.block(node, name + params); } else { - let end = (node.raw.between || '') + (semicolon ? ';' : ''); + let end = (node.raws.between || '') + (semicolon ? ';' : ''); this.builder(name + params + end, node); } } @@ -111,7 +111,7 @@ export default class Stringifier { // Already had if ( own ) { - value = node.raw[own]; + value = node.raws[own]; if ( typeof value !== 'undefined' ) return value; } @@ -142,7 +142,7 @@ export default class Stringifier { value = this[method](root, node); } else { root.eachInside( (i) => { - value = i.raw[own]; + value = i.raws[own]; if ( typeof value !== 'undefined' ) return false; }); } @@ -158,7 +158,7 @@ export default class Stringifier { let value; root.eachInside( (i) => { if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { - value = i.raw.semicolon; + value = i.raws.semicolon; if ( typeof value !== 'undefined' ) return false; } }); @@ -169,7 +169,7 @@ export default class Stringifier { let value; root.eachInside( (i) => { if ( i.nodes && i.nodes.length === 0 ) { - value = i.raw.after; + value = i.raws.after; if ( typeof value !== 'undefined' ) return false; } }); @@ -181,8 +181,8 @@ export default class Stringifier { root.eachInside( (i) => { let p = i.parent; if ( p && p !== root && p.parent && p.parent === root ) { - if ( typeof i.raw.before !== 'undefined' ) { - let parts = i.raw.before.split('\n'); + if ( typeof i.raws.before !== 'undefined' ) { + let parts = i.raws.before.split('\n'); value = parts[parts.length - 1]; value = value.replace(/[^\s]/g, ''); return false; @@ -195,8 +195,8 @@ export default class Stringifier { styleBeforeComment(root, node) { let value; root.eachComment( (i) => { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; + if ( typeof i.raws.before !== 'undefined' ) { + value = i.raws.before; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -212,8 +212,8 @@ export default class Stringifier { styleBeforeDecl(root, node) { let value; root.eachDecl( (i) => { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; + if ( typeof i.raws.before !== 'undefined' ) { + value = i.raws.before; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -230,8 +230,8 @@ export default class Stringifier { let value; root.eachInside( (i) => { if ( i.nodes && (i.parent !== root || root.first !== i) ) { - if ( typeof i.raw.before !== 'undefined' ) { - value = i.raw.before; + if ( typeof i.raws.before !== 'undefined' ) { + value = i.raws.before; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -246,8 +246,8 @@ export default class Stringifier { let value; root.eachInside( (i) => { if ( i.nodes && i.nodes.length > 0 ) { - if ( typeof i.raw.after !== 'undefined' ) { - value = i.raw.after; + if ( typeof i.raws.after !== 'undefined' ) { + value = i.raws.after; if ( value.indexOf('\n') !== -1 ) { value = value.replace(/[^\n]+$/, ''); } @@ -262,7 +262,7 @@ export default class Stringifier { let value; root.eachInside( (i) => { if ( i.type !== 'decl' ) { - value = i.raw.between; + value = i.raws.between; if ( typeof value !== 'undefined' ) return false; } }); @@ -272,8 +272,8 @@ export default class Stringifier { styleColon(root) { let value; root.eachDecl( (i) => { - if ( typeof i.raw.between !== 'undefined' ) { - value = i.raw.between.replace(/[^\s:]/g, ''); + if ( typeof i.raws.between !== 'undefined' ) { + value = i.raws.between.replace(/[^\s:]/g, ''); return false; } }); @@ -311,7 +311,7 @@ export default class Stringifier { raw(node, prop) { let value = node[prop]; - let raw = node.raw[prop]; + let raw = node.raws[prop]; if ( raw && raw.value === value ) { return raw.raw; } else { diff --git a/test/container.es6 b/test/container.es6 index cd63d84a3..4ad3e381e 100644 --- a/test/container.es6 +++ b/test/container.es6 @@ -44,7 +44,7 @@ describe('Container', () => { rule.push(new Declaration({ prop: 'c', value: '3' })); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); expect(rule.nodes.length).to.eql(3); - expect(rule.last.raw).to.not.have.property('before'); + expect(rule.last.raws).to.not.have.property('before'); }); }); @@ -405,14 +405,14 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3 }'); - expect(rule.last.raw.before).to.eql(' '); + expect(rule.last.raws.before).to.eql(' '); }); it('appends multiple children', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.append({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }); expect(rule.toString()).to.eql('a { a: 1; b: 2; c: 3; d: 4 }'); - expect(rule.last.raw.before).to.eql(' '); + expect(rule.last.raws.before).to.eql(' '); }); it('has declaration shortcut', () => { @@ -481,14 +481,14 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { c: 3; a: 1; b: 2 }'); - expect(rule.first.raw.before).to.eql(' '); + expect(rule.first.raws.before).to.eql(' '); }); it('prepends multiple children', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.prepend({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }); expect(rule.toString()).to.eql('a { c: 3; d: 4; a: 1; b: 2 }'); - expect(rule.first.raw.before).to.eql(' '); + expect(rule.first.raws.before).to.eql(' '); }); it('receive hash instead of declaration', () => { @@ -532,7 +532,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.insertBefore(1, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); - expect(rule.nodes[1].raw.before).to.eql(' '); + expect(rule.nodes[1].raws.before).to.eql(' '); }); it('works with nodes too', () => { @@ -564,7 +564,7 @@ describe('Container', () => { let rule = parse('a { a: 1; b: 2 }').first; rule.insertAfter(0, { prop: 'c', value: '3' }); expect(rule.toString()).to.eql('a { a: 1; c: 3; b: 2 }'); - expect(rule.nodes[1].raw.before).to.eql(' '); + expect(rule.nodes[1].raws.before).to.eql(' '); }); it('works with nodes too', () => { @@ -712,7 +712,7 @@ describe('Container', () => { it('does not normalize new children with exists before', () => { let rule = parse('a { a: 1; b: 2 }').first; - rule.append({ prop: 'c', value: '3', raw: { before: '\n ' } }); + rule.append({ prop: 'c', value: '3', raws: { before: '\n ' } }); expect(rule.toString()).to.eql('a { a: 1; b: 2;\n c: 3 }'); }); diff --git a/test/node.es6 b/test/node.es6 index 5465c8ad7..67810d1b0 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -184,8 +184,8 @@ describe('Node', () => { describe('cloneBefore()', () => { it('clones and insert before current node', () => { - let rule = new Rule({ selector: 'a', raw: { after: '' } }); - rule.append({ prop: 'z-index', value: '1', raw: { before: '' } }); + let rule = new Rule({ selector: 'a', raws: { after: '' } }); + rule.append({ prop: 'z-index', value: '1', raws: { before: '' } }); let result = rule.first.cloneBefore({ value: '2' }); @@ -198,8 +198,8 @@ describe('Node', () => { describe('cloneAfter()', () => { it('clones and insert after current node', () => { - let rule = new Rule({ selector: 'a', raw: { after: '' } }); - rule.append({ prop: 'z-index', value: '1', raw: { before: '' } }); + let rule = new Rule({ selector: 'a', raws: { after: '' } }); + rule.append({ prop: 'z-index', value: '1', raws: { before: '' } }); let result = rule.first.cloneAfter({ value: '2' }); @@ -303,8 +303,8 @@ describe('Node', () => { expect(json.nodes[0].parent).to.not.exist; expect(JSON.stringify(rule)).to.eql( - '{"raw":{},"selector":"a","nodes":[' + - '{"raw":{},"prop":"color","value":"b","type":"decl"}' + + '{"raws":{},"selector":"a","nodes":[' + + '{"raws":{},"prop":"color","value":"b","type":"decl"}' + '],"type":"rule"}'); }); @@ -347,11 +347,11 @@ describe('Node', () => { expect(css.toString()) .to.eql('@page {\n a {\n color: black\n }\n}'); - expect(css.first.raw.before).to.not.exist; - expect(css.first.first.first.raw.before).to.not.exist; - expect(css.first.raw.between).to.not.exist; - expect(css.first.first.first.raw.between).to.not.exist; - expect(css.first.raw.after).to.not.exist; + expect(css.first.raws.before).to.not.exist; + expect(css.first.first.first.raws.before).to.not.exist; + expect(css.first.raws.between).to.not.exist; + expect(css.first.first.first.raws.between).to.not.exist; + expect(css.first.raws.after).to.not.exist; }); it('keeps between on request', () => { @@ -360,11 +360,11 @@ describe('Node', () => { expect(css.toString()) .to.eql('@page{\n a{\n color:black\n }\n}'); - expect(css.first.raw.before).to.not.exist; - expect(css.first.first.first.raw.before).to.not.exist; - expect(css.first.raw.between).to.exist; - expect(css.first.first.first.raw.between).to.exist; - expect(css.first.raw.after).to.not.exist; + expect(css.first.raws.before).to.not.exist; + expect(css.first.first.first.raws.before).to.not.exist; + expect(css.first.raws.between).to.exist; + expect(css.first.first.first.raws.between).to.exist; + expect(css.first.raws.after).to.not.exist; }); }); diff --git a/test/parse.es6 b/test/parse.es6 index 575a09ce1..7e690eaa5 100644 --- a/test/parse.es6 +++ b/test/parse.es6 @@ -18,12 +18,12 @@ describe('postcss.parse()', () => { it('parses UTF-8 BOM', () => { let css = parse('\uFEFF@host { a {\f} }'); - expect(css.first.raw.before).to.eql(''); + expect(css.first.raws.before).to.eql(''); }); it('parses empty file', () => { expect(parse('', { from: 'a.css' })).to.eql(new Root({ - raw: { + raws: { after: '' }, source: { @@ -34,7 +34,7 @@ describe('postcss.parse()', () => { it('parses spaces', () => { expect(parse(' \n', { from: 'a.css' })).to.eql(new Root({ - raw: { + raws: { after: ' \n' }, source: { diff --git a/test/processor.es6 b/test/processor.es6 index df870c7dd..49870995a 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -9,7 +9,7 @@ import { expect } from 'chai'; import sinon from 'sinon'; import path from 'path'; -let prs = () => new Root({ raw: { after: 'ok' } }); +let prs = () => new Root({ raws: { after: 'ok' } }); let str = (node, builder) => { builder(node.after + '!'); }; diff --git a/test/root.es6 b/test/root.es6 index e0ea253db..2c87e8b0a 100644 --- a/test/root.es6 +++ b/test/root.es6 @@ -65,8 +65,8 @@ describe('Root', () => { css.insertAfter(0, { selector: '.a' }); css.insertAfter(2, { selector: '.b' }); - expect(css.nodes[1].raw.before).to.not.exist; - expect(css.nodes[3].raw.before).to.eql(' '); + expect(css.nodes[1].raws.before).to.not.exist; + expect(css.nodes[3].raws.before).to.eql(' '); expect(css.toString()).to.eql('a{} .a{} b{} .b{}'); }); diff --git a/test/rule.es6 b/test/rule.es6 index 243730772..31973739a 100644 --- a/test/rule.es6 +++ b/test/rule.es6 @@ -46,7 +46,7 @@ describe('Rule', () => { }); it('uses between to detect separator', () => { - let rule = new Rule({ selector: 'b', raw: { between: '' } }); + let rule = new Rule({ selector: 'b', raws: { between: '' } }); rule.selectors = ['b', 'strong']; expect(rule.selector).to.eql('b,strong'); }); diff --git a/test/stringifier.es6 b/test/stringifier.es6 index 1255319fc..13230e2fb 100644 --- a/test/stringifier.es6 +++ b/test/stringifier.es6 @@ -19,7 +19,7 @@ describe('stringifier', () => { it('creates trimmed/raw property', () => { let b = new Node({ one: 'trim' }); - b.raw.one = { value: 'trim', raw: 'raw' }; + b.raws.one = { value: 'trim', raw: 'raw' }; expect(str.raw(b, 'one')).to.eql('raw'); b.one = 'trim1'; @@ -37,7 +37,7 @@ describe('stringifier', () => { describe('style()', () => { it('uses node style', () => { - let rule = new Rule({ selector: 'a', raw: { between: '\n' } }); + let rule = new Rule({ selector: 'a', raws: { between: '\n' } }); expect(str.style(rule, 'between', 'beforeOpen')).to.eql('\n'); }); @@ -63,7 +63,7 @@ describe('stringifier', () => { it('detects after style', () => { let root = new Root(); - root.append({ selector: 'a', raw: { after: ' ' } }); + root.append({ selector: 'a', raws: { after: ' ' } }); root.first.append({ prop: 'color', value: 'black' }); root.append({ selector: 'a' }); expect(str.style(root.last, 'after')).to.eql(' '); @@ -82,7 +82,7 @@ describe('stringifier', () => { it('clones style from first node', () => { let root = new Root(); - root.append( new Rule({ selector: 'a', raw: { between: '' } }) ); + root.append( new Rule({ selector: 'a', raws: { between: '' } }) ); root.append( new Rule({ selector: 'b' }) ); expect(str.style(root.last, 'between', 'beforeOpen')).to.eql(''); From 6e69bf9a84ff4bc25f2f183cdc1ff996b92df904 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 13 Aug 2015 20:36:35 +0300 Subject: [PATCH 0601/3047] Rename raw() to rawValue() --- lib/stringifier.es6 | 8 ++++---- test/stringifier.es6 | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/stringifier.es6 b/lib/stringifier.es6 index eb71109c8..f3d335dd5 100644 --- a/lib/stringifier.es6 +++ b/lib/stringifier.es6 @@ -39,7 +39,7 @@ export default class Stringifier { decl(node, semicolon) { let between = this.style(node, 'between', 'colon'); - let string = node.prop + between + this.raw(node, 'value'); + let string = node.prop + between + this.rawValue(node, 'value'); if ( node.important ) { string += node.raws.important || ' !important'; @@ -50,12 +50,12 @@ export default class Stringifier { } rule(node) { - this.block(node, this.raw(node, 'selector')); + this.block(node, this.rawValue(node, 'selector')); } atrule(node, semicolon) { let name = '@' + node.name; - let params = node.params ? this.raw(node, 'params') : ''; + let params = node.params ? this.rawValue(node, 'params') : ''; if ( typeof node.raws.afterName !== 'undefined' ) { name += node.raws.afterName; @@ -309,7 +309,7 @@ export default class Stringifier { return value; } - raw(node, prop) { + rawValue(node, prop) { let value = node[prop]; let raw = node.raws[prop]; if ( raw && raw.value === value ) { diff --git a/test/stringifier.es6 b/test/stringifier.es6 index 13230e2fb..9ed85f456 100644 --- a/test/stringifier.es6 +++ b/test/stringifier.es6 @@ -15,22 +15,22 @@ describe('stringifier', () => { str = new Stringifier(); }); - describe('raw()', () => { + describe('rawValue()', () => { it('creates trimmed/raw property', () => { let b = new Node({ one: 'trim' }); b.raws.one = { value: 'trim', raw: 'raw' }; - expect(str.raw(b, 'one')).to.eql('raw'); + expect(str.rawValue(b, 'one')).to.eql('raw'); b.one = 'trim1'; - expect(str.raw(b, 'one')).to.eql('trim1'); + expect(str.rawValue(b, 'one')).to.eql('trim1'); }); it('works without magic', () => { let b = new Node(); b.one = '1'; expect(b.one).to.eql('1'); - expect(str.raw(b, 'one')).to.eql('1'); + expect(str.rawValue(b, 'one')).to.eql('1'); }); }); From 8b615e23ea7ba75fd6c9d6602f0238b3d70b13ba Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 13 Aug 2015 20:47:43 +0300 Subject: [PATCH 0602/3047] Rename style() to raw() --- lib/container.es6 | 4 +-- lib/node.es6 | 22 +++++++++++---- lib/rule.es6 | 2 +- lib/stringifier.es6 | 66 ++++++++++++++++++++++---------------------- test/node.es6 | 10 +++---- test/stringifier.es6 | 36 ++++++++++++------------ 6 files changed, 75 insertions(+), 65 deletions(-) diff --git a/lib/container.es6 b/lib/container.es6 index eeb6d4c22..91bb3a06c 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -308,10 +308,10 @@ export default class Container extends Node { return processed; } - cleanStyles(keepBetween) { + cleanRaws(keepBetween) { super(keepBetween); if ( this.nodes ) { - for ( let node of this.nodes ) node.cleanStyles(keepBetween); + for ( let node of this.nodes ) node.cleanRaws(keepBetween); } } diff --git a/lib/node.es6 b/lib/node.es6 index 5ee2290df..232f38c1c 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -107,21 +107,21 @@ export default class Node { } moveTo(container) { - this.cleanStyles(this.root() === container.root()); + this.cleanRaws(this.root() === container.root()); this.remove(); container.append(this); return this; } moveBefore(node) { - this.cleanStyles(this.root() === node.root()); + this.cleanRaws(this.root() === node.root()); this.remove(); node.parent.insertBefore(node, this); return this; } moveAfter(node) { - this.cleanStyles(this.root() === node.root()); + this.cleanRaws(this.root() === node.root()); this.remove(); node.parent.insertAfter(node, this); return this; @@ -163,9 +163,9 @@ export default class Node { return fixed; } - style(own, detect) { + raw(own, detect) { let str = new Stringifier(); - return str.style(this, own, detect); + return str.raw(this, own, detect); } root() { @@ -174,7 +174,7 @@ export default class Node { return result; } - cleanStyles(keepBetween) { + cleanRaws(keepBetween) { delete this.raws.before; delete this.raws.after; if ( !keepBetween ) delete this.raws.between; @@ -208,6 +208,16 @@ export default class Node { return pos; } + style(own, detect) { + warnOnce('Node#style() is deprecated. Use Node#raw()'); + return this.raw(own, detect); + } + + cleanStyles(keepBetween) { + warnOnce('Node#cleanStyles() is deprecated. Use Node#cleanRaws()'); + return this.cleanRaws(keepBetween); + } + get before() { warnOnce('Node#before is deprecated. Use Node#raws.before'); return this.raws.before; diff --git a/lib/rule.es6 b/lib/rule.es6 index 1bf7abd34..885a147cc 100644 --- a/lib/rule.es6 +++ b/lib/rule.es6 @@ -16,7 +16,7 @@ export default class Rule extends Container { set selectors(values) { let match = this.selector.match(/,\s*/); - let sep = match ? match[0] : ',' + this.style('between', 'beforeOpen'); + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen'); this.selector = values.join(sep); } diff --git a/lib/stringifier.es6 b/lib/stringifier.es6 index f3d335dd5..e511c78ea 100644 --- a/lib/stringifier.es6 +++ b/lib/stringifier.es6 @@ -1,4 +1,4 @@ -const defaultStyle = { +const defaultRaw = { colon: ': ', indent: ' ', beforeDecl: '\n', @@ -32,13 +32,13 @@ export default class Stringifier { } comment(node) { - let left = this.style(node, 'left', 'commentLeft'); - let right = this.style(node, 'right', 'commentRight'); + let left = this.raw(node, 'left', 'commentLeft'); + let right = this.raw(node, 'right', 'commentRight'); this.builder('/*' + left + node.text + right + '*/', node); } decl(node, semicolon) { - let between = this.style(node, 'between', 'colon'); + let between = this.raw(node, 'between', 'colon'); let string = node.prop + between + this.rawValue(node, 'value'); if ( node.important ) { @@ -80,32 +80,32 @@ export default class Stringifier { last -= 1; } - let semicolon = this.style(node, 'semicolon'); + let semicolon = this.raw(node, 'semicolon'); for ( let i = 0; i < node.nodes.length; i++ ) { let child = node.nodes[i]; - let before = this.style(child, 'before'); + let before = this.raw(child, 'before'); if ( before ) this.builder(before); this.stringify(child, last !== i || semicolon); } } block(node, start) { - let between = this.style(node, 'between', 'beforeOpen'); + let between = this.raw(node, 'between', 'beforeOpen'); this.builder(start + between + '{', node, 'start'); let after; if ( node.nodes && node.nodes.length ) { this.body(node); - after = this.style(node, 'after'); + after = this.raw(node, 'after'); } else { - after = this.style(node, 'after', 'emptyBody'); + after = this.raw(node, 'after', 'emptyBody'); } if ( after ) this.builder(after); this.builder('}', node, 'end'); } - style(node, own, detect) { + raw(node, own, detect) { let value; if ( !detect ) detect = own; @@ -125,19 +125,19 @@ export default class Stringifier { } // Floating child without parent - if ( !parent ) return defaultStyle[detect]; + if ( !parent ) return defaultRaw[detect]; // Detect style by other nodes let root = node.root(); - if ( !root.styleCache ) root.styleCache = { }; - if ( typeof root.styleCache[detect] !== 'undefined' ) { - return root.styleCache[detect]; + if ( !root.rawCache ) root.rawCache = { }; + if ( typeof root.rawCache[detect] !== 'undefined' ) { + return root.rawCache[detect]; } if ( detect === 'before' || detect === 'after' ) { return this.beforeAfter(node, detect); } else { - let method = 'style' + capitalize(detect); + let method = 'raw' + capitalize(detect); if ( this[method] ) { value = this[method](root, node); } else { @@ -148,13 +148,13 @@ export default class Stringifier { } } - if ( typeof value === 'undefined' ) value = defaultStyle[detect]; + if ( typeof value === 'undefined' ) value = defaultRaw[detect]; - root.styleCache[detect] = value; + root.rawCache[detect] = value; return value; } - styleSemicolon(root) { + rawSemicolon(root) { let value; root.eachInside( (i) => { if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { @@ -165,7 +165,7 @@ export default class Stringifier { return value; } - styleEmptyBody(root) { + rawEmptyBody(root) { let value; root.eachInside( (i) => { if ( i.nodes && i.nodes.length === 0 ) { @@ -176,7 +176,7 @@ export default class Stringifier { return value; } - styleIndent(root) { + rawIndent(root) { let value; root.eachInside( (i) => { let p = i.parent; @@ -192,7 +192,7 @@ export default class Stringifier { return value; } - styleBeforeComment(root, node) { + rawBeforeComment(root, node) { let value; root.eachComment( (i) => { if ( typeof i.raws.before !== 'undefined' ) { @@ -204,12 +204,12 @@ export default class Stringifier { } }); if ( typeof value === 'undefined' ) { - value = this.style(node, null, 'beforeDecl'); + value = this.raw(node, null, 'beforeDecl'); } return value; } - styleBeforeDecl(root, node) { + rawBeforeDecl(root, node) { let value; root.eachDecl( (i) => { if ( typeof i.raws.before !== 'undefined' ) { @@ -221,12 +221,12 @@ export default class Stringifier { } }); if ( typeof value === 'undefined' ) { - value = this.style(node, null, 'beforeRule'); + value = this.raw(node, null, 'beforeRule'); } return value; } - styleBeforeRule(root) { + rawBeforeRule(root) { let value; root.eachInside( (i) => { if ( i.nodes && (i.parent !== root || root.first !== i) ) { @@ -242,7 +242,7 @@ export default class Stringifier { return value; } - styleBeforeClose(root) { + rawBeforeClose(root) { let value; root.eachInside( (i) => { if ( i.nodes && i.nodes.length > 0 ) { @@ -258,7 +258,7 @@ export default class Stringifier { return value; } - styleBeforeOpen(root) { + rawBeforeOpen(root) { let value; root.eachInside( (i) => { if ( i.type !== 'decl' ) { @@ -269,7 +269,7 @@ export default class Stringifier { return value; } - styleColon(root) { + rawColon(root) { let value; root.eachDecl( (i) => { if ( typeof i.raws.between !== 'undefined' ) { @@ -283,13 +283,13 @@ export default class Stringifier { beforeAfter(node, detect) { let value; if ( node.type === 'decl' ) { - value = this.style(node, null, 'beforeDecl'); + value = this.raw(node, null, 'beforeDecl'); } else if ( node.type === 'comment' ) { - value = this.style(node, null, 'beforeComment'); + value = this.raw(node, null, 'beforeComment'); } else if ( detect === 'before' ) { - value = this.style(node, null, 'beforeRule'); + value = this.raw(node, null, 'beforeRule'); } else { - value = this.style(node, null, 'beforeClose'); + value = this.raw(node, null, 'beforeClose'); } let buf = node.parent; @@ -300,7 +300,7 @@ export default class Stringifier { } if ( value.indexOf('\n') !== -1 ) { - let indent = this.style(node, null, 'indent'); + let indent = this.raw(node, null, 'indent'); if ( indent.length ) { for ( let step = 0; step < depth; step++ ) value += indent; } diff --git a/test/node.es6 b/test/node.es6 index 67810d1b0..5b1284534 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -310,11 +310,11 @@ describe('Node', () => { }); - describe('style()', () => { + describe('raw()', () => { it('has shortcut to stringifier', () => { let rule = new Rule({ selector: 'a' }); - expect(rule.style('before')).to.eql(''); + expect(rule.raw('before')).to.eql(''); }); }); @@ -339,11 +339,11 @@ describe('Node', () => { }); - describe('cleanStyles()', () => { + describe('cleanRaws()', () => { it('cleans style recursivelly', () => { let css = parse('@page{a{color:black}}'); - css.cleanStyles(); + css.cleanRaws(); expect(css.toString()) .to.eql('@page {\n a {\n color: black\n }\n}'); @@ -356,7 +356,7 @@ describe('Node', () => { it('keeps between on request', () => { let css = parse('@page{a{color:black}}'); - css.cleanStyles(true); + css.cleanRaws(true); expect(css.toString()) .to.eql('@page{\n a{\n color:black\n }\n}'); diff --git a/test/stringifier.es6 b/test/stringifier.es6 index 9ed85f456..7ced8d3d8 100644 --- a/test/stringifier.es6 +++ b/test/stringifier.es6 @@ -34,58 +34,58 @@ describe('stringifier', () => { }); }); - describe('style()', () => { + describe('raw()', () => { - it('uses node style', () => { + it('uses node raw', () => { let rule = new Rule({ selector: 'a', raws: { between: '\n' } }); - expect(str.style(rule, 'between', 'beforeOpen')).to.eql('\n'); + expect(str.raw(rule, 'between', 'beforeOpen')).to.eql('\n'); }); it('hacks before for nodes without parent', () => { let rule = new Rule({ selector: 'a' }); - expect(str.style(rule, 'before')).to.eql(''); + expect(str.raw(rule, 'before')).to.eql(''); }); it('hacks before for first node', () => { let root = new Root(); root.append(new Rule({ selector: 'a' })); - expect(str.style(root.first, 'before')).to.eql(''); + expect(str.raw(root.first, 'before')).to.eql(''); }); it('hacks before for first decl', () => { let decl = new Declaration({ prop: 'color', value: 'black' }); - expect(str.style(decl, 'before')).to.eql(''); + expect(str.raw(decl, 'before')).to.eql(''); let rule = new Rule({ selector: 'a' }); rule.append(decl); - expect(str.style(decl, 'before')).to.eql('\n '); + expect(str.raw(decl, 'before')).to.eql('\n '); }); - it('detects after style', () => { + it('detects after raw', () => { let root = new Root(); root.append({ selector: 'a', raws: { after: ' ' } }); root.first.append({ prop: 'color', value: 'black' }); root.append({ selector: 'a' }); - expect(str.style(root.last, 'after')).to.eql(' '); + expect(str.raw(root.last, 'after')).to.eql(' '); }); it('uses defaults without parent', () => { let rule = new Rule({ selector: 'a' }); - expect(str.style(rule, 'between', 'beforeOpen')).to.eql(' '); + expect(str.raw(rule, 'between', 'beforeOpen')).to.eql(' '); }); it('uses defaults for unique node', () => { let root = new Root(); root.append(new Rule({ selector: 'a' })); - expect(str.style(root.first, 'between', 'beforeOpen')).to.eql(' '); + expect(str.raw(root.first, 'between', 'beforeOpen')).to.eql(' '); }); - it('clones style from first node', () => { + it('clones raw from first node', () => { let root = new Root(); root.append( new Rule({ selector: 'a', raws: { between: '' } }) ); root.append( new Rule({ selector: 'b' }) ); - expect(str.style(root.last, 'between', 'beforeOpen')).to.eql(''); + expect(str.raw(root.last, 'between', 'beforeOpen')).to.eql(''); }); it('indents by default', () => { @@ -118,8 +118,8 @@ describe('stringifier', () => { css.append(new Rule({ selector: 'em' })); css.last.append({ prop: 'z-index', value: '1' }); - expect(css.last.style('before')).to.eql('\n\n'); - expect(css.last.first.style('before')).to.eql('\n '); + expect(css.last.raw('before')).to.eql('\n\n'); + expect(css.last.first.raw('before')).to.eql('\n '); }); it('clones indent by before and after', () => { @@ -127,13 +127,13 @@ describe('stringifier', () => { css.first.append(new Rule({ selector: 'b' })); css.first.last.append({ prop: 'z-index', value: '1' }); - expect(css.first.last.style('before')).to.eql('\n\n '); - expect(css.first.last.style('after')).to.eql(''); + expect(css.first.last.raw('before')).to.eql('\n\n '); + expect(css.first.last.raw('after')).to.eql(''); }); it('clones semicolon only from rules with children', () => { let css = parse('a{}b{one:1;}'); - expect(str.style(css.first, 'semicolon')).to.be.true; + expect(str.raw(css.first, 'semicolon')).to.be.true; }); it('clones only spaces in before', () => { From 9453a7b5da28cf9c3d558ef60d21f4d916380b17 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 14 Aug 2015 23:20:27 +0300 Subject: [PATCH 0603/3047] Write docs about parser --- docs/syntax.md | 104 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 97 insertions(+), 7 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index b001a6c3e..62995b390 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -49,19 +49,103 @@ module.exports = function (css, opts) { [Safe Parser]: https://github.com/postcss/postcss-safe-parser -TODO: parser theory look and current one (copy paste is OK) +### Main Theory -TODO: reuse Parser and tests +There are many books about parses. But do not scary, CSS syntax is very easy, +so parser will be much simplier, than usual. -TODO: Node#source.input +The default PostCSS parser contains two steps: -TODO: Node#raws +* [Tokenizer] to read input string char by char and build tokens array. + For example, it join spaces symbols to `['space', '\n ']` token, + or detect strings to `['string', '"\"{"']`. +* [Parser] to read tokens array, create node instances and build tree. -TODO: tokenizer and parser +Look at this parts for a parser example. -TODO: performance: why, tokenizer is important, plain functions and jumps +[Tokenizer]: https://github.com/postcss/postcss/blob/master/lib/tokenize.es6 +[Parser]: https://github.com/postcss/postcss/blob/master/lib/parser.es6 -TODO: tests, cases, jsonify +### Perfomance + +Parsing input is a longest task in CSS usual processor. So it is very important +to have fast parser. + +The main rule of optimization: there is no perfomance without benchmark. +You can look at [PostCSS benchmakrs] as example. + +If we will look deeper, tokenize step will be a longest part of parsing. +So you should focus only on tokenizer perfomance. Other parts could be +well written maiintable code. + +Unfortunately, classes, functions and high level structures can slow down +your tokenizer. Be ready to write dirty code with code repeating. +This is why it is difficult to extend default tokenizer. +Copy paste will be a necessary evil. + +Second optimization is using char codes instead of string. + +```js +// Slow +string[i] === '{'; + +// Fast +const OPEN_CURLY = 123; // `{' +string.charCodeAt(i) === OPEN_CURLY; +``` + +Third optimization is “fast jumps”. If you find open quote, you can find +closed quote much faster by `indexOf`: + +```js +// Simple jump +next = string.indexOf('"', currentPosition + 1); + +// Complicated jump +regexp.lastIndex = currentPosion + 1; +regexp.text(string); +next = regexp.lastIndex; +``` + +Parser can be well written class. So there is no need in copy-paste and +hardcore optimization there. You can safely extend default class. + +[PostCSS benchmakrs]: https://github.com/postcss/benchmark + +### Node Source + +To generate source map, every node instance should have `source` property. +It should have `{ line, column }` object in `start` and `end` properties +and `input` property with [`Input`] instance. + +So your tokenizer should provide token type, content and positions. + +[`Input`]: https://github.com/postcss/postcss/blob/master/lib/input.es6 + +### Raw Valus + +Good PostCSS parser should provide all information (including spaces symbols) +to generate byte-to-byte equal output. It is not so difficult, but respectful +for user input and allow integration smoke tests. + +Parser should save all addition symbols to [`node.raws`] object. +It is a open structure to you, you can add addition keys. +For example, [SCSS parser] saves comment types there (`/* */` or `//` comment). + +Also, default parser clean some CSS values from comments and spaces. +It save origin value with comments to `node.raws.value.raw` and use it, +if node values were not changed. + +[`Input`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws + +### Tests + +Of course, all parsers must have a tests. + +If your parser just extend CSS syntax (like [SCSS] or [Safe Parser]), +you should use [PostCSS Parser Tests]. It contains unit and integration tests. + +[PostCSS Parser Tests]: https://github.com/postcss/postcss-parser-tests ## Stringifier @@ -84,8 +168,14 @@ module.export = function (root, builder) { }; ``` +### Main Theory + TODO: look and extend current one +### Builder Function + TODO: start|end tokens in builder +### Raw Values + TODO: be ready for nodes without raw or from other parser From d97662a2f38a1df8a31474b24bb7c647c68392da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 14 Aug 2015 23:39:49 +0300 Subject: [PATCH 0604/3047] Add stringifier docs --- docs/syntax.md | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index 62995b390..e373b6c99 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -136,7 +136,7 @@ Also, default parser clean some CSS values from comments and spaces. It save origin value with comments to `node.raws.value.raw` and use it, if node values were not changed. -[`Input`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws +[`node.raws`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws ### Tests @@ -170,12 +170,52 @@ module.export = function (root, builder) { ### Main Theory -TODO: look and extend current one +PostCSS [default stringifier] is just a class with method for each node type +and many methods to detect raw properties (if node was built manually) +by other nodes. + +In most cases it will be enouch just to extent this class, +like in [SCSS stringifier]. + +[default stringifier]: https://github.com/postcss/postcss/blob/master/lib/stringifier.es6 +[SCSS stringifier]: https://github.com/postcss/postcss-scss/blob/master/lib/scss-stringifier.es6 ### Builder Function -TODO: start|end tokens in builder +Builder function will be pass to `stringify` function as second argument. +Stringifier class saves it to `this.builder` property. + +It receive output substring and source node and accept this substring +to final output. + +Some nodes string can contains other nodes in the middle. +For example, rule has `a {` beginning, many declarations inside +and `}` at the end. + +For this cases, you should pass a third argument to builder function: +`'start'` or `'end'` string. ### Raw Values -TODO: be ready for nodes without raw or from other parser +Good PostCSS syntax saves all symbols and provide byte-to-byte equal output +if there were not AST changes. + +This is why every node has [`node.raws`] object to store space symbol, etc. + +But be ready, that any of this `raws` properties can be missed. Some nodes +can be built manually. Some nodes can loose indent on moving between parents. + +This is why default stringifier has `raw()` method to autodetect raw property +by other nodes. For example, it will look at other nodes to detect indent size +and them multiply it with current node depth. + +[`node.raws`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws + +### Tests + +Stringifier must have a tests too. + +You can use unit and integration cases from [PostCSS Parser Tests] +in smoke test. Just compare input CSS with CSS after you parser and stringifier. + +[PostCSS Parser Tests]: https://github.com/postcss/postcss-parser-tests From 7e85d7074120ae000c57d90530d8f31b37d06633 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Fri, 14 Aug 2015 23:46:04 -0500 Subject: [PATCH 0605/3047] Fix typos --- .yaspellerrc | 1 + docs/syntax.md | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.yaspellerrc b/.yaspellerrc index b7a76b960..a9d4b5500 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -84,6 +84,7 @@ "transpile", "transpiles", "transpiling", + "tokenize", "tokenizer", "linters", "rebases", diff --git a/docs/syntax.md b/docs/syntax.md index e373b6c99..62a7d18a6 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -52,7 +52,7 @@ module.exports = function (css, opts) { ### Main Theory There are many books about parses. But do not scary, CSS syntax is very easy, -so parser will be much simplier, than usual. +so parser will be much simpler than usual. The default PostCSS parser contains two steps: @@ -66,17 +66,17 @@ Look at this parts for a parser example. [Tokenizer]: https://github.com/postcss/postcss/blob/master/lib/tokenize.es6 [Parser]: https://github.com/postcss/postcss/blob/master/lib/parser.es6 -### Perfomance +### Performance Parsing input is a longest task in CSS usual processor. So it is very important to have fast parser. -The main rule of optimization: there is no perfomance without benchmark. -You can look at [PostCSS benchmakrs] as example. +The main rule of optimization: there is no performance without benchmark. +You can look at [PostCSS benchmarks] as example. -If we will look deeper, tokenize step will be a longest part of parsing. -So you should focus only on tokenizer perfomance. Other parts could be -well written maiintable code. +If we will look deeper, the tokenize step will be a longest part of parsing. +So you should focus only on tokenizer performance. Other parts could be +well written maintainable code. Unfortunately, classes, functions and high level structures can slow down your tokenizer. Be ready to write dirty code with code repeating. @@ -110,7 +110,7 @@ next = regexp.lastIndex; Parser can be well written class. So there is no need in copy-paste and hardcore optimization there. You can safely extend default class. -[PostCSS benchmakrs]: https://github.com/postcss/benchmark +[PostCSS benchmarks]: https://github.com/postcss/benchmark ### Node Source @@ -122,7 +122,7 @@ So your tokenizer should provide token type, content and positions. [`Input`]: https://github.com/postcss/postcss/blob/master/lib/input.es6 -### Raw Valus +### Raw Values Good PostCSS parser should provide all information (including spaces symbols) to generate byte-to-byte equal output. It is not so difficult, but respectful @@ -174,7 +174,7 @@ PostCSS [default stringifier] is just a class with method for each node type and many methods to detect raw properties (if node was built manually) by other nodes. -In most cases it will be enouch just to extent this class, +In most cases it will be enough just to extent this class, like in [SCSS stringifier]. [default stringifier]: https://github.com/postcss/postcss/blob/master/lib/stringifier.es6 From 23f2014deaac51baac2bfd6a92a42c95d16dad30 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Fri, 24 Jul 2015 15:55:15 -0500 Subject: [PATCH 0606/3047] Introduce TypeScript definitions --- d.ts/at-rule.d.ts | 41 ++ d.ts/comment.d.ts | 28 + d.ts/container.d.ts | 217 +++++++ d.ts/css-syntax-error.d.ts | 120 ++++ d.ts/declaration.d.ts | 42 ++ d.ts/input.d.ts | 46 ++ d.ts/lazy-result.d.ts | 90 +++ d.ts/list.d.ts | 17 + d.ts/map-generator.d.ts | 26 + d.ts/node.d.ts | 154 +++++ d.ts/parse.d.ts | 20 + d.ts/parser.d.ts | 38 ++ d.ts/postcss.d.ts | 1227 ++++++++++++++++++++++++++++++++++++ d.ts/previous-map.d.ts | 15 + d.ts/processor.d.ts | 31 + d.ts/result.d.ts | 83 +++ d.ts/root.d.ts | 46 ++ d.ts/rule.d.ts | 31 + d.ts/stringifier.d.ts | 31 + d.ts/stringify.d.ts | 11 + d.ts/tokenize.d.ts | 1 + d.ts/vendor.d.ts | 14 + d.ts/warn-once.d.ts | 2 + d.ts/warning.d.ts | 38 ++ docs/api.md | 9 + postcss.d.ts | 4 + 26 files changed, 2382 insertions(+) create mode 100644 d.ts/at-rule.d.ts create mode 100644 d.ts/comment.d.ts create mode 100644 d.ts/container.d.ts create mode 100644 d.ts/css-syntax-error.d.ts create mode 100644 d.ts/declaration.d.ts create mode 100644 d.ts/input.d.ts create mode 100644 d.ts/lazy-result.d.ts create mode 100644 d.ts/list.d.ts create mode 100644 d.ts/map-generator.d.ts create mode 100644 d.ts/node.d.ts create mode 100644 d.ts/parse.d.ts create mode 100644 d.ts/parser.d.ts create mode 100644 d.ts/postcss.d.ts create mode 100644 d.ts/previous-map.d.ts create mode 100644 d.ts/processor.d.ts create mode 100644 d.ts/result.d.ts create mode 100644 d.ts/root.d.ts create mode 100644 d.ts/rule.d.ts create mode 100644 d.ts/stringifier.d.ts create mode 100644 d.ts/stringify.d.ts create mode 100644 d.ts/tokenize.d.ts create mode 100644 d.ts/vendor.d.ts create mode 100644 d.ts/warn-once.d.ts create mode 100644 d.ts/warning.d.ts create mode 100644 postcss.d.ts diff --git a/d.ts/at-rule.d.ts b/d.ts/at-rule.d.ts new file mode 100644 index 000000000..3eb993431 --- /dev/null +++ b/d.ts/at-rule.d.ts @@ -0,0 +1,41 @@ +import Container from './container'; +import postcss from './postcss'; +export default class AtRule extends Container implements postcss.AtRule { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; + /** + * Contains information to generate byte-to-byte equal node string as it + * was in origin input. + */ + raws: postcss.AtRuleRaws; + /** + * The identifier that immediately follows the @. + */ + name: string; + /** + * These are the values that follow the at-rule's name, but precede any {} + * block. The spec refers to this area as the at-rule's "prelude". + */ + params: string; + /** + * Represents an at-rule. This node will have a nodes property, + * representing its children, if it is followed in the CSS by a {} block. + */ + constructor(defaults?: postcss.AtRuleNewProps); + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): AtRule; + toJSON(): postcss.JsonAtRule; + append(...children: any[]): Container; + prepend(...children: any[]): Container; + insertBefore(oldNode: any, newNode: any): Container; + insertAfter(oldNode: any, newNode: any): Container; + afterName: string; + _params: string; +} diff --git a/d.ts/comment.d.ts b/d.ts/comment.d.ts new file mode 100644 index 000000000..5e341835c --- /dev/null +++ b/d.ts/comment.d.ts @@ -0,0 +1,28 @@ +import postcss from './postcss'; +import Node from './node'; +export default class Comment extends Node implements postcss.Comment { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; + /** + * The comment's text. + */ + text: string; + /** + * Represents a comment between declarations or statements (rule and at-rules). + * Comments inside selectors, at-rules parameters, or declaration values will + * be stored in the Node#raws properties. + */ + constructor(defaults?: postcss.CommentNewProps); + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): any; + toJSON(): postcss.JsonComment; + left: string; + right: string; +} diff --git a/d.ts/container.d.ts b/d.ts/container.d.ts new file mode 100644 index 000000000..0c0d60143 --- /dev/null +++ b/d.ts/container.d.ts @@ -0,0 +1,217 @@ +import Comment from './comment'; +import postcss from './postcss'; +import AtRule from './at-rule'; +import Node from './node'; +import Rule from './rule'; +/** + * Containers can store any content. If you write a rule inside a rule, + * PostCSS will parse it. + */ +export default class Container extends Node implements postcss.Container { + private indexes; + /** + * Contains the container's children. + */ + nodes: Node[]; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): any; + toJSON(): postcss.JsonContainer; + cleanRaws(keepBetween?: boolean): void; + push(child: any): Container; + /** + * Iterates through the container's immediate children, calling the + * callback function for each child. If you need to recursively iterate + * through all the container's nodes, use container.eachInside(). Unlike + * the for {} -cycle or Array#forEach() this iterator is safe if you are + * mutating the array of child nodes during iteration. + * @param callback Iterator. Returning false will break iteration. Safe + * if you are mutating the array of child nodes during iteration. PostCSS + * will adjust the current index to match the mutations. + */ + each(callback: (node: Node, index: number) => any): boolean | void; + /** + * Recursively iterates through the container's children, those children's + * children, etc., calling callback for each. Like container.each(), this + * method is safe to use if you are mutating arrays during iteration. If + * you only need to iterate through the container's immediate children, use + * container.each(). + * @param callback Iterator. + */ + eachInside(callback: (node: Node, index: number) => any): boolean | void; + /** + * Recursively iterates through all declaration nodes within the container. + * Like container.each(), this method is safe to use if you are mutating + * arrays during iteration. + * @param propFilter Filters declarations by property name. Only those + * declarations whose property matches propFilter will be iterated over. + * @param callback Called for each declaration node within the container. + */ + eachDecl(propFilter: string | RegExp, callback?: (decl: postcss.Declaration, index: number) => any): boolean | void; + eachDecl(callback: (decl: postcss.Declaration, index: number) => any): boolean | void; + /** + * Recursively iterates through all rule nodes within the container. + * Like container.each(), this method is safe to use if you are mutating + * arrays during iteration. + * @param selectorFilter Filters rules by selector. Only those rules whose + * name matches the filter will be iterated over. + * @param callback Iterator called for each rule node within the + * container. + */ + eachRule(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; + eachRule(callback: (atRule: Rule, index: number) => any): boolean | void; + /** + * Recursively iterates through all at-rule nodes. Like container.each(), + * this method is safe to use if you are mutating arrays during iteration. + * @param nameFilter Filters at-rules by name. Only those at-rules whose + * name matches filter will be iterated over. + * @param callback Iterator called for each at-rule node within the + * container. + */ + eachAtRule(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; + eachAtRule(callback: (atRule: AtRule, index: number) => any): boolean | void; + /** + * Recursively iterates through all comment nodes within the container. + * Like container.each(), this method is safe to use if you are mutating + * arrays during iteration. + * @param callback Iterator called for each comment node within the container. + */ + eachComment(callback: (comment: Comment, indexed: number) => any): void | boolean; + /** + * Inserts new nodes to the end of the container. + * Because each node class is identifiable by unique properties, use the + * following shortcuts to create nodes in insert methods: + * root.append({ name: '@charset', params: '"UTF-8"' }); // at-rule + * root.append({ selector: 'a' }); // rule + * rule.append({ prop: 'color', value: 'black' }); // declaration + * rule.append({ text: 'Comment' }) // comment + * A string containing the CSS of the new element can also be used. This + * approach is slower than the above shortcuts. + * root.append('a {}'); + * root.first.append('color: black; z-index: 1'); + * @param nodes New nodes. + * @returns This container for chaining. + */ + append(...nodes: (Node | Object | string)[]): Container; + /** + * Inserts new nodes to the beginning of the container. + * Because each node class is identifiable by unique properties, use the + * following shortcuts to create nodes in insert methods: + * root.prepend({ name: '@charset', params: '"UTF-8"' }); // at-rule + * root.prepend({ selector: 'a' }); // rule + * rule.prepend({ prop: 'color', value: 'black' }); // declaration + * rule.prepend({ text: 'Comment' }) // comment + * A string containing the CSS of the new element can also be used. This + * approach is slower than the above shortcuts. + * root.prepend('a {}'); + * root.first.prepend('color: black; z-index: 1'); + * @param nodes New nodes. + * @returns This container for chaining. + */ + prepend(...nodes: (Node | Object | string)[]): Container; + /** + * Insert newNode before oldNode within the container. + * @param oldNode Child or child's index. + * @returns This container for chaining. + */ + insertBefore(oldNode: Node | number, newNode: Node | Object | string): Container; + /** + * Insert newNode after oldNode within the container. + * @param oldNode Child or child's index. + * @returns This container for chaining. + */ + insertAfter(oldNode: Node | number, newNode: Node | Object | string): Container; + /** + * Removes the container from its parent and cleans the parent property in the + * container and its children. + * @returns This container for chaining. + */ + remove(): any; + /** + * Removes child from the container, and the parent properties of node and + * its children. + * @param child Child or child's index. + * @returns This container for chaining. + */ + removeChild(child: Node | number): Container; + /** + * Removes all children from the container and cleans their parent + * properties. + * @returns This container for chaining. + */ + removeAll(): Container; + /** + * Passes all declaration values within the container that match pattern + * through the callback, replacing those values with the returned result of + * callback. This method is useful if you are using a custom unit or + * function and need to iterate through all values. + * @param pattern Pattern that we need to replace. + * @param options Options to speed up the search. + * @param callbackOrReplaceValue String to replace pattern or callback + * that will return a new value. The callback will receive the same + * arguments as those passed to a function parameter of String#replace. + */ + replaceValues(pattern: string | RegExp, options: { + /** + * Property names. The method will only search for values that match + * regexp within declarations of listed properties. + */ + props?: string[]; + /** + * Used to narrow down values and speed up the regexp search. Searching + * every single value with a regexp can be slow. If you pass a fast + * string, PostCSS will first check whether the value contains the fast + * string; and only if it does will PostCSS check that value against + * regexp. For example, instead of just checking for /\d+rem/ on all + * values, set fast: 'rem' to first check whether a value has the rem + * unit, and only if it does perform the regexp check. + */ + fast?: string; + }, callbackOrReplaceValue: string | { + (substring: string, ...args: any[]): string; + }): Container; + replaceValues(pattern: string | RegExp, callbackOrReplaceValue: string | { + (substring: string, ...args: any[]): string; + }): Container; + /** + * Determines whether all child nodes satisfy the specified test. + * @param callback A function that accepts up to three arguments. The + * every method calls the callback function for each node until the + * callback returns false, or until the end of the array. + * @returns True if the callback returns true for all of the container's + * children. + */ + every(callback: (node: Node, index: number, nodes: Node[]) => any, thisArg?: any): boolean; + /** + * Determines whether the specified callback returns true for any child node. + * @param callback A function that accepts up to three arguments. The some + * method calls the callback for each node until the callback returns true, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the + * callback function. If thisArg is omitted, undefined is used as the + * this value. + * @returns True if callback returns a true value for (at least) one of the + * container's children. + */ + some(callback: (node: Node, index: number, nodes: Node[]) => boolean, thisArg?: any): boolean; + /** + * @param child Child of current container. + * @returns The child's index within the container's "nodes" array. + */ + index(child: Node | number): number; + /** + * @returns The container's first child. + */ + first: Node; + /** + * @returns The container's last child. + */ + last: Node; + protected normalize(node: Node | string, sample?: Node, type?: string | boolean): Node[]; + protected normalize(props: postcss.AtRuleNewProps | postcss.RuleNewProps | postcss.DeclarationNewProps | postcss.CommentNewProps, sample?: Node, type?: string | boolean): Node[]; + semicolon: boolean; + after: string; +} diff --git a/d.ts/css-syntax-error.d.ts b/d.ts/css-syntax-error.d.ts new file mode 100644 index 000000000..34f7f8b5e --- /dev/null +++ b/d.ts/css-syntax-error.d.ts @@ -0,0 +1,120 @@ +import postcss from './postcss'; +export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxError { + /** + * Contains full error text by GNU error format. + */ + message: string; + /** + * Contains source line of error. PostCSS will use the input source map + * to detect the original error location. If you wrote a Sass file, then + * compiled it to CSS and parsed it with PostCSS, PostCSS will show the + * original position in the Sass file. If you need position in PostCSS + * input (e.g., to debug previous compiler), use error.generated.line. + */ + line: number; + /** + * Contains the source column of the error. PostCSS will use input + * source map to detect the original error location. If you wrote a Sass + * file, then compiled it to CSS and parsed it with PostCSS, PostCSS + * will show the original position in the Sass file. If you need + * position in PostCSS input (e.g., to debug previous compiler), use + * error.generated.column. + */ + column: number; + /** + * Contains source code of broken file. PostCSS will use input source + * map to detect the original error location. If you wrote a Sass file, + * then compiled it to CSS and parsed it with PostCSS, PostCSS will show + * the original position in the Sass file. If you need position in + * PostCSS input (e.g., to debug previous compiler), use + * error.generated.source. + */ + source: string; + /** + * If parser's from option is set, contains absolute path to broken file. + * PostCSS will use the input source map to detect the original error + * location. If you wrote a Sass file, then compiled it to CSS and + * parsed it with PostCSS, PostCSS will show the original position in + * the Sass file. If you need the position in PostCSS input + * (e.g., to debug previous compiler), use error.generated.file. + */ + file: string; + /** + * Contains PostCSS plugin name if error did not come from CSS parser. + */ + plugin: string; + name: string; + /** + * Contains only the error description. + */ + reason: string; + private columnNumber; + private description; + private lineNumber; + private fileName; + input: postcss.InputOrigin; + /** + * The CSS parser throws this error for broken CSS. + */ + constructor( + /** + * Contains full error text by GNU error format. + */ + message: string, + /** + * Contains source line of error. PostCSS will use the input source map + * to detect the original error location. If you wrote a Sass file, then + * compiled it to CSS and parsed it with PostCSS, PostCSS will show the + * original position in the Sass file. If you need position in PostCSS + * input (e.g., to debug previous compiler), use error.generated.line. + */ + line?: number, + /** + * Contains the source column of the error. PostCSS will use input + * source map to detect the original error location. If you wrote a Sass + * file, then compiled it to CSS and parsed it with PostCSS, PostCSS + * will show the original position in the Sass file. If you need + * position in PostCSS input (e.g., to debug previous compiler), use + * error.generated.column. + */ + column?: number, + /** + * Contains source code of broken file. PostCSS will use input source + * map to detect the original error location. If you wrote a Sass file, + * then compiled it to CSS and parsed it with PostCSS, PostCSS will show + * the original position in the Sass file. If you need position in + * PostCSS input (e.g., to debug previous compiler), use + * error.generated.source. + */ + source?: string, + /** + * If parser's from option is set, contains absolute path to broken file. + * PostCSS will use the input source map to detect the original error + * location. If you wrote a Sass file, then compiled it to CSS and + * parsed it with PostCSS, PostCSS will show the original position in + * the Sass file. If you need the position in PostCSS input + * (e.g., to debug previous compiler), use error.generated.file. + */ + file?: string, + /** + * Contains PostCSS plugin name if error did not come from CSS parser. + */ + plugin?: string); + private setMessage(); + /** + * @param color Whether arrow should be colored red by terminal color codes. + * By default, PostCSS will use process.stdout.isTTY and + * process.env.NODE_DISABLE_COLORS. + * @returns A few lines of CSS source that caused the error. If CSS has + * input source map without sourceContent this method will return an empty + * string. + */ + showSourceCode(color?: boolean): string; + private highlight(color); + private setMozillaProps(); + /** + * + * @returns Error position, message and source code of broken part. + */ + toString(): string; +} diff --git a/d.ts/declaration.d.ts b/d.ts/declaration.d.ts new file mode 100644 index 000000000..ee2fdca2c --- /dev/null +++ b/d.ts/declaration.d.ts @@ -0,0 +1,42 @@ +import postcss from './postcss'; +import Node from './node'; +export default class Declaration extends Node implements postcss.Declaration { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; + /** + * Contains information to generate byte-to-byte equal node string as it + * was in origin input. + */ + raws: postcss.DeclarationRaws; + /** + * The declaration's property name. + */ + prop: string; + /** + * The declaration's value. This value will be cleaned of comments. If the + * source value contained comments, those comments will be available in the + * _value.raws property. If you have not changed the value, the result of + * decl.toString() will include the original raws value (comments and all). + */ + value: string; + /** + * True if the declaration has an !important annotation. + */ + important: boolean; + /** + * Represents a CSS declaration. + */ + constructor(defaults?: postcss.DeclarationNewProps); + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): any; + toJSON(): postcss.JsonDeclaration; + _value: string; + _important: string; +} diff --git a/d.ts/input.d.ts b/d.ts/input.d.ts new file mode 100644 index 000000000..ea49ef7b9 --- /dev/null +++ b/d.ts/input.d.ts @@ -0,0 +1,46 @@ +import CssSyntaxError from './css-syntax-error'; +import PreviousMap from './previous-map'; +import LazyResult from './lazy-result'; +import postcss from './postcss'; +import Result from './result'; +export default class Input implements postcss.Input { + /** + * The absolute path to the CSS source file defined with the "from" option. + */ + file: string; + /** + * The unique ID of the CSS source. Used if "from" option is not provided + * (because PostCSS does not know the file path). + */ + id: string; + /** + * Represents the input source map passed from a compilation step before + * PostCSS (for example, from the Sass compiler). + */ + map: PreviousMap; + css: string; + /** + * Represents the source CSS. + */ + constructor(css: string | { + toString(): string; + } | LazyResult | Result, opts?: { + safe?: boolean | any; + from?: string; + }); + /** + * The CSS source identifier. Contains input.file if the user set the "from" + * option, or input.id if he/she did not. + */ + from: string; + error(message: string, line: number, column: number, opts?: { + plugin?: string; + }): CssSyntaxError; + /** + * Reads the input source map. + * @returns A symbol position in the input source (e.g., in a Sass file + * that was compiled to CSS before being passed to PostCSS): + */ + origin(line: number, column: number): postcss.InputOrigin; + private mapResolve(file); +} diff --git a/d.ts/lazy-result.d.ts b/d.ts/lazy-result.d.ts new file mode 100644 index 000000000..f984b2e58 --- /dev/null +++ b/d.ts/lazy-result.d.ts @@ -0,0 +1,90 @@ +import Processor from './processor'; +import postcss from './postcss'; +import Result from './result'; +import Root from './root'; +export default class LazyResult implements postcss.LazyResult { + private stringified; + private processed; + private result; + private error; + private plugin; + private processing; + /** + * Promise proxy for result of PostCSS transformations. + */ + constructor(processor: Processor, + /** + * String with input CSS or any object with toString() method, like file stream. + * Optionally, send Result instance and the processor will take the existing + * [Root] parser from it. + */ + css: string | { + toString(): string; + } | LazyResult | Result, opts?: postcss.ProcessOptions); + /** + * @returns A processor used for CSS transformations. + */ + processor: Processor; + /** + * @returns Options from the Processor#process(css, opts) call that produced + * this Result instance. + */ + opts: postcss.ResultOptions; + /** + * Processes input CSS through synchronous plugins and converts Root to + * CSS string. This property will work only with synchronous plugins. If + * processor contains any asynchronous plugins it will throw a error. You + * should use LazyResult#then() instead. + */ + css: string; + /** + * Alias for css property to use when syntaxes generate non-CSS output. + */ + content: string; + /** + * Processes input CSS through synchronous plugins. This property will + * work only with synchronous plugins. If processor contains any + * asynchronous plugins it will throw an error. You should use + * LazyResult#then() instead. + */ + map: postcss.ResultMap; + /** + * Processes input CSS through synchronous plugins. This property will work + * only with synchronous plugins. If processor contains any asynchronous + * plugins it will throw an error. You should use LazyResult#then() instead. + */ + root: Root; + /** + * Processes input CSS through synchronous plugins. This property will work + * only with synchronous plugins. If processor contains any asynchronous + * plugins it will throw an error. You should use LazyResult#then() instead. + */ + messages: postcss.ResultMessage[]; + /** + * Processes input CSS through synchronous plugins and calls Result#warnings(). + * This property will work only with synchronous plugins. If processor + * contains any asynchronous plugins it will throw a error. You should use + * LazyResult#then() instead. + */ + warnings(): postcss.ResultMessage[]; + /** + * Alias for css property. + */ + toString(): string; + /** + * Processes input CSS through synchronous and asynchronous plugins. + * @param onRejected Called if any plugin throws an error. + */ + then(onFulfilled: (result: Result) => void, onRejected?: (error: Error) => void): Function | any; + /** + * Processes input CSS through synchronous and asynchronous plugins. + * @param onRejected Called if any plugin throws an error. + */ + catch(onRejected: (error: Error) => void): Function | any; + private handleError(error, plugin); + private asyncTick(resolve, reject); + private async(); + sync(): Result; + private run(plugin); + stringify(): Result; +} diff --git a/d.ts/list.d.ts b/d.ts/list.d.ts new file mode 100644 index 000000000..a7c68c68f --- /dev/null +++ b/d.ts/list.d.ts @@ -0,0 +1,17 @@ +/** + * Contains helpers for safely splitting lists of CSS values, preserving + * parentheses and quotes. + */ +declare module List { + /** + * Safely splits space-separated values (such as those for background, + * border-radius and other shorthand properties). + */ + function space(str: string): string[]; + /** + * Safely splits comma-separated values (such as those for transition-* and + * background properties). + */ + function comma(str: string): string[]; +} +export default List; diff --git a/d.ts/map-generator.d.ts b/d.ts/map-generator.d.ts new file mode 100644 index 000000000..d09f579fd --- /dev/null +++ b/d.ts/map-generator.d.ts @@ -0,0 +1,26 @@ +import Root from './root'; +export default class MapGenerator { + private stringify; + private root; + private opts; + private mapOpts; + private previousMaps; + private map; + private css; + constructor(stringify: any, root: Root, opts: any); + isMap(): boolean; + previous(): any; + isInline(): any; + isSourcesContent(): any; + clearAnnotation(): void; + setSourcesContent(): void; + applyPrevMaps(): void; + isAnnotation(): any; + addAnnotation(): void; + outputFile(): any; + generateMap(): any[]; + relative(file: any): any; + sourcePath(node: any): any; + generateString(): void; + generate(): any[]; +} diff --git a/d.ts/node.d.ts b/d.ts/node.d.ts new file mode 100644 index 000000000..e13797f84 --- /dev/null +++ b/d.ts/node.d.ts @@ -0,0 +1,154 @@ +import Container from './container'; +import CssSyntaxError from './css-syntax-error'; +import postcss from './postcss'; +import Result from './result'; +import Root from './root'; +export default class Node implements postcss.Node { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; + /** + * Contains information to generate byte-to-byte equal node string as it + * was in origin input. + */ + raws: postcss.NodeRaws; + /** + * Returns the node's parent node. + */ + parent: Container; + /** + * Returns the input source of the node. The property is used in source map + * generation. If you create a node manually (for example, with + * postcss.decl() ), that node will not have a source property and will + * be absent from the source map. For this reason, the plugin developer + * should consider cloning nodes to create new ones (in which case the new + * node's source will reference the original, cloned node) or setting the + * source property manually. + */ + source: postcss.NodeSource; + constructor(defaults?: Object); + /** + * This method produces very useful error messages. If present, an input + * source map will be used to get the original position of the source, even + * from a previous compilation step (e.g., from Sass compilation). + * @returns The original position of the node in the source, showing line + * and column numbers and also a small excerpt to facilitate debugging. + */ + error( + /** + * Error description. + */ + message: string, options?: postcss.NodeErrorOptions): CssSyntaxError; + /** + * Creates a Warning and adds it to messages. This method is provided as + * a convenience wrapper for Result#warn. + * @param result The result that will receive the warning. + * @param message Error description. + */ + warn(result: Result, message: string): void; + /** + * Deprecated. Use Node#remove. + */ + removeSelf(): void; + /** + * Removes the node from its parent and cleans the parent property in the + * node and its children. + * @returns This node for chaining. + */ + remove(): Node; + replace(nodes: any): Node; + /** + * @returns A CSS string representing the node. + */ + toString(stringifier?: any): string; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Node; + /** + * Shortcut to clone the node and insert the resulting cloned node before + * the current node. + * @param overrides New Properties to override in the clone. + * @returns The cloned node. + */ + cloneBefore(overrides?: Object): Node; + /** + * Shortcut to clone the node and insert the resulting cloned node after + * the current node. + * @param overrides New Properties to override in the clone. + * @returns The cloned node. + */ + cloneAfter(overrides?: Object): Node; + /** + * Inserts nodes before the current node and removes the current node. + * @returns This node for chaining. + */ + replaceWith(...nodes: (Node | Object)[]): Node; + /** + * Removes the node from its current parent and inserts it at the end of + * newParent. This will clean the before and after code style properties + * from the node, and replace them with the indentation style of newParent. + * It will also clean the between property if newParent is in another Root. + * @param newParent Where the current node will be moved. + * @returns This node for chaining. + */ + moveTo(newParent: Container): Node; + /** + * Removes the node from its current parent and inserts it into a new + * parent before otherNode. This will also clean the node's code style + * properties just as node.moveTo(newParent) does. + * @param otherNode Will be after the current node after moving. + * @returns This node for chaining. + */ + moveBefore(otherNode: Node): Node; + /** + * Removes the node from its current parent and inserts it into a new + * parent after otherNode. This will also clean the node's code style + * properties just as node.moveTo(newParent) does. + * @param otherNode Will be before the current node after moving. + * @returns This node for chaining. + */ + moveAfter(otherNode: Node): Node; + /** + * @returns The next child of the node's parent; or, returns undefined if + * the current node is the last child. + */ + next(): Node; + /** + * @returns The previous child of the node's parent; or, returns undefined + * if the current node is the first child. + */ + prev(): Node; + toJSON(): postcss.JsonNode; + /** + * @param prop Name or code style property. + * @param defaultType Name of default value. It can be easily missed if the + * value is the same as prop. + * @returns A code style property value. If the node is missing the code + * style property (because the node was manually built or cloned), PostCSS + * will try to autodetect the code style property by looking at other nodes + * in the tree. + */ + raw(prop: string, defaultType?: string): any; + /** + * @returns The Root instance of the node's tree. + */ + root(): Root; + cleanRaws(keepBetween?: boolean): void; + positionInside(index: number): { + line: number; + column: number; + }; + positionBy(options: any): { + column: number; + line: number; + }; + style(prop: string, defaultType?: string): any; + cleanStyles(keepBetween?: boolean): void; + before: string; + between: string; +} diff --git a/d.ts/parse.d.ts b/d.ts/parse.d.ts new file mode 100644 index 000000000..5afc20d72 --- /dev/null +++ b/d.ts/parse.d.ts @@ -0,0 +1,20 @@ +import LazyResult from './lazy-result'; +import postcss from './postcss'; +import Result from './result'; +import Root from './root'; +/** + * Parses source CSS. + * @param css The CSS to parse. + * @param options + * @returns {} A new Root node, which contains the source CSS nodes. + */ +declare function parse(css: string | { + toString(): string; +} | LazyResult | Result, options?: { + from?: string; + map?: postcss.SourceMapOptions; +}): Root; +declare module parse { + var parse: postcss.Syntax | postcss.Parse; +} +export default parse; diff --git a/d.ts/parser.d.ts b/d.ts/parser.d.ts new file mode 100644 index 000000000..719518017 --- /dev/null +++ b/d.ts/parser.d.ts @@ -0,0 +1,38 @@ +import Input from './input'; +import Node from './node'; +import Root from './root'; +export default class Parser { + input: Input; + pos: number; + root: Root; + spaces: string; + semicolon: boolean; + private current; + private tokens; + constructor(input: Input); + tokenize(): void; + loop(): void; + comment(token: any): void; + emptyRule(token: any): void; + word(): void; + rule(tokens: any): void; + decl(tokens: any): void; + atrule(token: any): void; + end(token: any): void; + endFile(): void; + init(node: Node, line?: number, column?: number): void; + raw(node: any, prop: any, tokens: any): void; + spacesFromEnd(tokens: any): string; + spacesFromStart(tokens: any): string; + stringFrom(tokens: any, from: any): string; + colon(tokens: any): number | boolean; + unknownDecl(node: any, token: any): void; + unclosedBracket(bracket: any): void; + unknownWord(start: any): void; + unexpectedClose(token: any): void; + unclosedBlock(): void; + doubleColon(token: any): void; + unnamedAtrule(node: any, token: any): void; + precheckMissedSemicolon(tokens: any): void; + checkMissedSemicolon(tokens: any): void; +} diff --git a/d.ts/postcss.d.ts b/d.ts/postcss.d.ts new file mode 100644 index 000000000..7d84ab028 --- /dev/null +++ b/d.ts/postcss.d.ts @@ -0,0 +1,1227 @@ +import PreviousMap from './previous-map'; +import Stringifier from './stringifier'; +import _vendor from './vendor'; +import _list from './list'; +/** + * @param plugins Can also be included with the Processor#use method. + * @returns A processor that will apply plugins as CSS processors. + */ +declare function postcss(plugins?: (typeof postcss.acceptedPlugin)[]): postcss.Processor; +declare function postcss(...plugins: (typeof postcss.acceptedPlugin)[]): postcss.Processor; +declare module postcss { + var acceptedPlugin: Plugin | Transformer | { + postcss: TransformCallback | Processor; + } | Processor; + /** + * Creates a PostCSS plugin with a standard API. + * @param name Plugin name. Same as in name property in package.json. It will + * be saved in plugin.postcssPlugin property. + * @param initializer Will receive plugin options and should return functions + * to modify nodes in input CSS. + */ + function plugin(name: string, initializer: PluginInitializer): Plugin; + interface Plugin extends Transformer { + (opts?: T): Transformer; + postcss: Transformer; + process: (css, opts?: any) => LazyResult; + } + interface Transformer extends TransformCallback { + postcssPlugin?: string; + postcssVersion?: string; + } + interface TransformCallback { + /** + * @returns Asynchronous plugins should return a promise. + */ + (root: Root, result?: Result): void | Function | any; + } + interface PluginInitializer { + (pluginOptions?: T): Transformer; + } + /** + * Contains the Vendor module, which contains helpers for working with + * vendor prefixes. + */ + var vendor: typeof _vendor; + /** + * Default function to convert nodes tree to CSS string. + */ + function stringify(node: Node, builder: Stringifier.Builder): void; + /** + * Parses source CSS. + * @param css The CSS to parse. + * @param options + * @returns {} A new Root node, which contains the source CSS nodes. + */ + function parse(css: string | { + toString(): string; + } | LazyResult | Result, options?: { + from?: string; + map?: postcss.SourceMapOptions; + }): Root; + /** + * Contains the List module, which contains helpers for safely splitting + * lists of CSS values, preserving parentheses and quotes. + */ + var list: typeof _list; + /** + * Creates a new Comment node. + * @param defaults Properties for the new node. + * @returns The new node. + */ + function comment(defaults?: CommentNewProps): Comment; + /** + * Creates a new AtRule node. + * @param defaults Properties for the new node. + * @returns The new node. + */ + function atRule(defaults?: AtRuleNewProps): AtRule; + /** + * Creates a new Declaration node. + * @param defaults Properties for the new node. + * @returns The new node. + */ + function decl(defaults?: DeclarationNewProps): Declaration; + /** + * Creates a new Rule node. + * @param defaults Properties for the new node. + * @returns The new node. + */ + function rule(defaults?: RuleNewProps): Rule; + /** + * Creates a new Root node. + * @param defaults Properties for the new node. + * @returns The new node. + */ + function root(defaults?: Object): Root; + interface SourceMapOptions { + /** + * Indicates that the source map should be embedded in the output CSS as a + * Base64-encoded comment. By default, it is true. But if all previous maps + * are external, not inline, PostCSS will not embed the map even if you do + * not set this option. + * + * If you have an inline source map, the result.map property will be empty, + * as the source map will be contained within the text of result.css. + */ + inline?: boolean; + /** + * Source map content from a previous processing step (for example, Sass compilation). + * PostCSS will try to read the previous source map automatically (based on comments + * within the source CSS), but you can use this option to identify it manually. + * If desired, you can omit the previous map with prev: false. + */ + prev?: any; + /** + * Indicates that PostCSS should set the origin content (for example, Sass source) + * of the source map. By default, it is true. But if all previous maps do not + * contain sources content, PostCSS will also leave it out even if you do not set + * this option. + */ + sourcesContent?: boolean; + /** + * Indicates that PostCSS should add annotation comments to the CSS. By default, + * PostCSS will always add a comment with a path to the source map. PostCSS will + * not add annotations to CSS files that do not contain any comments. + * + * By default, PostCSS presumes that you want to save the source map as + * opts.to + '.map' and will use this path in the annotation comment. A different + * path can be set by providing a string value for annotation. + * + * If you have set inline: true, annotation cannot be disabled. + */ + annotation?: boolean | string; + /** + * If true, PostCSS will try to correct any syntax errors that it finds in the CSS. + * This is useful for legacy code filled with hacks. Another use-case is interactive + * tools with live input — for example, the Autoprefixer demo. + */ + safe?: boolean; + } + /** + * A Processor instance contains plugins to process CSS. Create one + * Processor instance, initialize its plugins, and then use that instance + * on many CSS files. + */ + interface Processor { + /** + * Adds a plugin to be used as a CSS processor. Plugins can also be + * added by passing them as arguments when creating a postcss instance. + */ + use(plugin: typeof acceptedPlugin): Processor; + /** + * Parses source CSS. Because some plugins can be asynchronous it doesn't + * make any transformations. Transformations will be applied in LazyResult's + * methods. + * @param css Input CSS or any object with toString() method, like a file + * stream. If a Result instance is passed the processor will take the + * existing Root parser from it. + */ + process(css: string | { + toString(): string; + } | Result, options?: ProcessOptions): LazyResult; + /** + * Contains plugins added to this processor. + */ + plugins: Plugin[]; + /** + * Contains current version of PostCSS (e.g., "4.0.5"). + */ + version: string; + } + interface ProcessOptions extends Syntax { + /** + * The path of the CSS source file. You should always set from, because it is + * used in source map generation and syntax error messages. + */ + from?: string; + /** + * The path where you'll put the output CSS file. You should always set it + * to generate correct source maps. + */ + to?: string; + syntax?: Syntax; + /** + * Enable Safe Mode, in which PostCSS will try to fix CSS syntax errors. + */ + safe?: boolean; + map?: postcss.SourceMapOptions; + /** + * Function to generate AST by string. + */ + parser?: Parse | Syntax; + /** + * Class to generate string by AST. + */ + stringifier?: Stringify | Syntax; + } + interface Syntax { + /** + * Function to generate AST by string. + */ + parse?: Parse; + /** + * Class to generate string by AST. + */ + stringify?: Stringify; + } + interface Parse { + (css?: string, opts?: postcss.SourceMapOptions): Root; + } + interface Stringify { + (node?: postcss.Node, builder?: any): postcss.Result | void; + } + /** + * Promise proxy for result of PostCSS transformations. + */ + interface LazyResult { + /** + * Processes input CSS through synchronous and asynchronous plugins. + * @param onRejected Called if any plugin throws an error. + */ + then(onFulfilled: (result: Result) => void, onRejected?: (error: Error) => void): Function | any; + /** + * Processes input CSS through synchronous and asynchronous plugins. + * @param onRejected Called if any plugin throws an error. + */ + catch(onRejected: (error: Error) => void): Function | any; + /** + * Alias for css property. + */ + toString(): string; + /** + * Processes input CSS through synchronous plugins and converts Root to + * CSS string. This property will work only with synchronous plugins. If + * processor contains any asynchronous plugins it will throw a error. You + * should use LazyResult#then() instead. + * @returns Result#css. + */ + css: string; + /** + * Alias for css property to use when syntaxes generate non-CSS output. + */ + content: string; + /** + * Processes input CSS through synchronous plugins. This property will + * work only with synchronous plugins. If processor contains any + * asynchronous plugins it will throw an error. You should use + * LazyResult#then() instead. + */ + map: ResultMap; + /** + * Processes input CSS through synchronous plugins. This property will work + * only with synchronous plugins. If processor contains any asynchronous + * plugins it will throw an error. You should use LazyResult#then() instead. + */ + root: Root; + /** + * Processes input CSS through synchronous plugins and calls Result#warnings(). + * This property will work only with synchronous plugins. If processor + * contains any asynchronous plugins it will throw a error. You should use + * LazyResult#then() instead. + */ + warnings(): ResultMessage[]; + /** + * Processes input CSS through synchronous plugins. This property will work + * only with synchronous plugins. If processor contains any asynchronous + * plugins it will throw an error. You should use LazyResult#then() instead. + */ + messages: ResultMessage[]; + /** + * @returns A processor used for CSS transformations. + */ + processor: Processor; + /** + * @returns Options from the Processor#process(css, opts) call that produced + * this Result instance. + */ + opts: ResultOptions; + } + /** + * Provides the result of the PostCSS transformations. + */ + interface Result { + /** + * Alias for css property. + */ + toString(): string; + /** + * Creates a Warning and adds it to messages. + * @param message Used in the text property of the message object. + * @param options Properties for Message object. + */ + warn(message: string, options?: WarningOptions): void; + /** + * @returns Warnings from plugins, filtered from messages. + */ + warnings(): ResultMessage[]; + /** + * A CSS string representing this Result's Root instance. + */ + css: string; + /** + * Alias for css property to use with syntaxes that generate non-CSS output. + */ + content: string; + /** + * An instance of the SourceMapGenerator class from the source-map library, + * representing changes to the Result's Root instance. + * This property will have a value only if the user does not want an inline + * source map. By default, PostCSS generates inline source maps, written + * directly into the processed CSS. The map property will be empty by default. + * An external source map will be generated — and assigned to map — only if + * the user has set the map.inline option to false, or if PostCSS was passed + * an external input source map. + */ + map: ResultMap; + /** + * Contains Root node after all transformations. + */ + root: Root; + /** + * Contains messages from plugins. For example, warnings or custom messages to + * plugins communication. Add a warning using Result#warn() and get all warnings + * using Result#warnings() method. + */ + messages: ResultMessage[]; + /** + * The Processor instance used for this transformation. + */ + processor: Processor; + /** + * Options from the Processor#process(css, opts) or Root#toResult(opts) call + * that produced this Result instance. + */ + opts: ResultOptions; + } + interface ResultOptions extends ProcessOptions { + /** + * The CSS node that was the source of the warning. + */ + node?: postcss.Node; + /** + * Name of plugin that created this warning. Result#warn() will fill it + * automatically with plugin.postcssPlugin value. + */ + plugin?: string; + } + interface ResultMap { + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * @param mapping + * @returns {} + */ + addMapping(mapping: { + generated: { + line: number; + column: number; + }; + original: { + line: number; + column: number; + }; + /** + * The original source file (relative to the sourceRoot). + */ + source: string; + name?: string; + }): void; + /** + * Set the source content for an original source file. + * @param sourceFile The URL of the original source file. + * @param sourceContent The content of the source file. + */ + setSourceContent(sourceFile: string, sourceContent: string): void; + /** + * Applies a SourceMap for a source file to the SourceMap. Each mapping to + * the supplied source file is rewritten using the supplied SourceMap. + * Note: The resolution for the resulting mappings is the minimium of this + * map and the supplied map. + * @param sourceMapConsumer The SourceMap to be applied. + * @param sourceFile The filename of the source file. If omitted, sourceMapConsumer + * file will be used, if it exists. Otherwise an error will be thrown. + * @param sourceMapPath The dirname of the path to the SourceMap to be applied. + * If relative, it is relative to the SourceMap. This parameter is needed when + * the two SourceMaps aren't in the same directory, and the SourceMap to be + * applied contains relative source paths. If so, those relative source paths + * need to be rewritten relative to the SourceMap. + * If omitted, it is assumed that both SourceMaps are in the same directory; + * thus, not needing any rewriting (Supplying '.' has the same effect). + */ + applySourceMap(sourceMapConsumer: any, sourceFile?: string, sourceMapPath?: string): void; + /** + * Renders the source map being generated to JSON. + */ + toJSON: () => any; + /** + * Renders the source map being generated to a string. + */ + toString: () => string; + } + interface ResultMessage { + type: string; + text?: string; + plugin?: string; + browsers?: string[]; + } + /** + * Warning from plugins. It can be created using Result#warn(). + */ + interface Warning { + /** + * @returns Error position, message. + */ + toString(): string; + /** + * Contains the warning message. + */ + text: string; + /** + * Contains name of plugin that created this warning. When you call + * Result#warn(), it will fill this property automatically. + */ + plugin: string; + /** + * The CSS node that caused the warning. + */ + node: Node; + /** + * Line in input file with this warning source. + */ + line: number; + /** + * Column in input file with this warning source. + */ + column: number; + } + interface WarningOptions extends ResultOptions { + /** + * A word inside a node's string that should be highlighted as source + * of warning. + */ + word?: string; + /** + * The index inside a node's string that should be highlighted as + * source of warning. + */ + index?: number; + } + /** + * The CSS parser throws this error for broken CSS. + */ + interface CssSyntaxError extends InputOrigin { + name: string; + /** + * @returns Error position, message and source code of broken part. + */ + toString(): string; + /** + * @param color Whether arrow should be colored red by terminal color codes. + * By default, PostCSS will use process.stdout.isTTY and + * process.env.NODE_DISABLE_COLORS. + * @returns A few lines of CSS source that caused the error. If CSS has + * input source map without sourceContent this method will return an empty + * string. + */ + showSourceCode(color?: boolean): string; + /** + * Contains full error text by GNU error format. + */ + message: string; + /** + * Contains only the error description. + */ + reason: string; + /** + * Contains PostCSS plugin name if error did not come from CSS parser. + */ + plugin?: string; + input?: InputOrigin; + } + interface InputOrigin { + /** + * If parser's from option is set, contains absolute path to broken file. + * PostCSS will use the input source map to detect the original error + * location. If you wrote a Sass file, then compiled it to CSS and + * parsed it with PostCSS, PostCSS will show the original position in + * the Sass file. If you need the position in PostCSS input + * (e.g., to debug previous compiler), use error.input.file. + */ + file?: string; + /** + * Contains source line of error. PostCSS will use the input source map + * to detect the original error location. If you wrote a Sass file, then + * compiled it to CSS and parsed it with PostCSS, PostCSS will show the + * original position in the Sass file. If you need position in PostCSS + * input (e.g., to debug previous compiler), use error.input.line. + */ + line?: number; + /** + * Contains the source column of the error. PostCSS will use input + * source map to detect the original error location. If you wrote a Sass + * file, then compiled it to CSS and parsed it with PostCSS, PostCSS + * will show the original position in the Sass file. If you need + * position in PostCSS input (e.g., to debug previous compiler), use + * error.input.column. + */ + column?: number; + /** + * Contains source code of broken file. PostCSS will use input source + * map to detect the original error location. If you wrote a Sass file, + * then compiled it to CSS and parsed it with PostCSS, PostCSS will show + * the original position in the Sass file. If you need position in + * PostCSS input (e.g., to debug previous compiler), use + * error.input.source. + */ + source?: string; + } + /** + * Represents the source CSS. + */ + interface Input { + /** + * The absolute path to the CSS source file defined with the "from" option. + */ + file: string; + /** + * The unique ID of the CSS source. Used if "from" option is not provided + * (because PostCSS does not know the file path). + */ + id: string; + /** + * The CSS source identifier. Contains input.file if the user set the + * "from" option, or input.id if he/she did not. + */ + from: string; + /** + * Represents the input source map passed from a compilation step before + * PostCSS (for example, from the Sass compiler). + */ + map: PreviousMap; + /** + * Reads the input source map. + * @returns A symbol position in the input source (e.g., in a Sass file + * that was compiled to CSS before being passed to PostCSS): + */ + origin(line: number, column: number): InputOrigin; + } + interface Node { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; + /** + * Returns the node's parent node. + */ + parent: Container; + /** + * Returns the input source of the node. The property is used in source map + * generation. If you create a node manually (for example, with + * postcss.decl() ), that node will not have a source property and will + * be absent from the source map. For this reason, the plugin developer + * should consider cloning nodes to create new ones (in which case the new + * node's source will reference the original, cloned node) or setting the + * source property manually. + */ + source: NodeSource; + /** + * Contains information to generate byte-to-byte equal node string as it + * was in origin input. + */ + raws: NodeRaws; + /** + * @returns A CSS string representing the node. + */ + toString(): string; + /** + * This method produces very useful error messages. If present, an input + * source map will be used to get the original position of the source, even + * from a previous compilation step (e.g., from Sass compilation). + * @returns The original position of the node in the source, showing line + * and column numbers and also a small excerpt to facilitate debugging. + */ + error( + /** + * Error description. + */ + message: string, options?: NodeErrorOptions): CssSyntaxError; + /** + * Creates a Warning and adds it to messages. This method is provided as + * a convenience wrapper for Result#warn. + * @param result The result that will receive the warning. + * @param message Error description. + */ + warn(result: Result, message: string): void; + /** + * @returns The next child of the node's parent; or, returns undefined if + * the current node is the last child. + */ + next(): Node; + /** + * @returns The previous child of the node's parent; or, returns undefined + * if the current node is the first child. + */ + prev(): Node; + /** + * @returns The Root instance of the node's tree. + */ + root(): Root; + /** + * Removes the node from its parent and cleans the parent property in the + * node and its children. + * @returns This node for chaining. + */ + remove(): Node; + /** + * Inserts nodes before the current node and removes the current node. + * @returns This node for chaining. + */ + replaceWith(...nodes: (Node | Object)[]): Node; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Node; + /** + * Shortcut to clone the node and insert the resulting cloned node before + * the current node. + * @param overrides New Properties to override in the clone. + * @returns The cloned node. + */ + cloneBefore(overrides?: Object): Node; + /** + * Shortcut to clone the node and insert the resulting cloned node after + * the current node. + * @param overrides New Properties to override in the clone. + * @returns The cloned node. + */ + cloneAfter(overrides?: Object): Node; + /** + * Removes the node from its current parent and inserts it at the end of + * newParent. This will clean the before and after code style properties + * from the node, and replace them with the indentation style of newParent. + * It will also clean the between property if newParent is in another Root. + * @param newParent Where the current node will be moved. + * @returns This node for chaining. + */ + moveTo(newParent: Container): Node; + /** + * Removes the node from its current parent and inserts it into a new + * parent before otherNode. This will also clean the node's code style + * properties just as node.moveTo(newParent) does. + * @param otherNode Will be after the current node after moving. + * @returns This node for chaining. + */ + moveBefore(otherNode: Node): Node; + /** + * Removes the node from its current parent and inserts it into a new + * parent after otherNode. This will also clean the node's code style + * properties just as node.moveTo(newParent) does. + * @param otherNode Will be before the current node after moving. + * @returns This node for chaining. + */ + moveAfter(otherNode: Node): Node; + /** + * @param prop Name or code style property. + * @param defaultType Name of default value. It can be easily missed if the + * value is the same as prop. + * @returns A code style property value. If the node is missing the code + * style property (because the node was manually built or cloned), PostCSS + * will try to autodetect the code style property by looking at other nodes + * in the tree. + */ + raw(prop: string, defaultType?: string): any; + } + interface NodeNewProps { + } + interface NodeRaws { + /** + * The space symbols before the node. It also stores any non-standard + * symbols before the declaration like "_" from IE hack. + */ + before?: string; + /** + * The space symbols after the last child of the node to the end of + * the node. + */ + after?: string; + /** + * The symbols between the property and value for declarations, + * selector and "{" for rules, last parameter and "{" for at-rules. + */ + between?: string; + /** + * True if last child has (optional) semicolon. + */ + semicolon?: boolean; + /** + * The space between the at-rule's name and parameters. + */ + afterName?: string; + /** + * The space symbols between "/*" and comment's text. + */ + left?: string; + /** + * The space symbols between comment's text and "*\/". + */ + right?: string; + /** + * The content of important statement, if it is not just "!important". + */ + important?: string; + } + interface NodeSource { + input: Input; + /** + * The starting position of the node's source. + */ + start?: { + column: number; + line: number; + }; + /** + * The ending position of the node's source. + */ + end?: { + column: number; + line: number; + }; + } + interface NodeErrorOptions { + /** + * Plugin name that created this error. PostCSS will set it automatically. + */ + plugin?: string; + /** + * A word inside a node's string, that should be highlighted as source + * of error. + */ + word?: string; + /** + * An index inside a node's string that should be highlighted as source + * of error. + */ + index?: number; + } + interface JsonNode { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type?: string; + /** + * Returns the node's parent node. + */ + parent?: JsonContainer; + /** + * Returns the input source of the node. The property is used in source map + * generation. If you create a node manually (for example, with + * postcss.decl() ), that node will not have a source property and will + * be absent from the source map. For this reason, the plugin developer + * should consider cloning nodes to create new ones (in which case the new + * node's source will reference the original, cloned node) or setting the + * source property manually. + */ + source?: NodeSource; + /** + * Contains information to generate byte-to-byte equal node string as it + * was in origin input. + */ + raws?: NodeRaws; + } + /** + * Containers can store any content. If you write a rule inside a rule, + * PostCSS will parse it. + */ + interface Container extends Node { + /** + * Returns the container's parent node. + */ + parent: Container; + /** + * Contains the container's children. + */ + nodes?: Node[]; + /** + * @returns The container's first child. + */ + first?: Node; + /** + * @returns The container's last child. + */ + last?: Node; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Container; + /** + * @param child Child of current container. + * @returns The child's index within the container's "nodes" array. + */ + index(child: Node | number): number; + /** + * Determines whether all child nodes satisfy the specified test. + * @param callback A function that accepts up to three arguments. The + * every method calls the callback function for each node until the + * callback returns false, or until the end of the array. + * @returns True if the callback returns true for all of the container's + * children. + */ + every(callback: (node: Node, index: number, nodes: Node[]) => any, thisArg?: any): boolean; + /** + * Determines whether the specified callback returns true for any child node. + * @param callback A function that accepts up to three arguments. The some + * method calls the callback for each node until the callback returns true, + * or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the + * callback function. If thisArg is omitted, undefined is used as the + * this value. + * @returns True if callback returns a true value for (at least) one of the + * container's children. + */ + some(callback: (node: Node, index: number, nodes: Node[]) => boolean, thisArg?: any): boolean; + /** + * Iterates through the container's immediate children, calling the + * callback function for each child. If you need to recursively iterate + * through all the container's nodes, use container.eachInside(). Unlike + * the for {} -cycle or Array#forEach() this iterator is safe if you are + * mutating the array of child nodes during iteration. + * @param callback Iterator. Returning false will break iteration. Safe + * if you are mutating the array of child nodes during iteration. PostCSS + * will adjust the current index to match the mutations. + * @returns False if the callback returns false during iteration. + */ + each(callback: (node: Node, index: number) => any): boolean | void; + /** + * Recursively iterates through the container's children, those children's + * children, etc., calling callback for each. Like container.each(), this + * method is safe to use if you are mutating arrays during iteration. If + * you only need to iterate through the container’s immediate children, use + * container.each(). + * @param callback Iterator. + */ + eachInside(callback: (node: Node, index: number) => any): boolean | void; + /** + * Recursively iterates through all declaration nodes within the container. + * Like container.each(), this method is safe to use if you are mutating + * arrays during iteration. + * @param propFilter Filters declarations by property name. Only those + * declarations whose property matches propFilter will be iterated over. + * @param callback Called for each declaration node within the container. + */ + eachDecl(propFilter: string | RegExp, callback?: (decl: Declaration, index: number) => any): boolean | void; + eachDecl(callback: (decl: Declaration, index: number) => any): boolean | void; + /** + * Recursively iterates through all at-rule nodes. Like container.each(), + * this method is safe to use if you are mutating arrays during iteration. + * @param nameFilter Filters at-rules by name. Only those at-rules whose + * name matches filter will be iterated over. + * @param callback Iterator called for each at-rule node within the + * container. + */ + eachAtRule(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; + eachAtRule(callback: (atRule: AtRule, index: number) => any): boolean | void; + /** + * Recursively iterates through all rule nodes within the container. + * Like container.each(), this method is safe to use if you are mutating + * arrays during iteration. + * @param selectorFilter Filters rules by selector. Only those rules whose + * name matches the filter will be iterated over. + * @param callback Iterator called for each rule node within the + * container. + */ + eachRule(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; + eachRule(callback: (atRule: Rule, index: number) => any): boolean | void; + eachRule(selectorFilter: any, callback?: (atRule: Rule, index: number) => any): boolean | void; + /** + * Recursively iterates through all comment nodes within the container. + * Like container.each(), this method is safe to use if you are mutating + * arrays during iteration. + * @param callback Iterator called for each comment node within the container. + */ + eachComment(callback: (comment: Comment, indexed: number) => any): void | boolean; + /** + * Passes all declaration values within the container that match pattern + * through the callback, replacing those values with the returned result of + * callback. This method is useful if you are using a custom unit or + * function and need to iterate through all values. + * @param pattern Pattern that we need to replace. + * @param options Options to speed up the search. + * @param callbackOrReplaceValue String to replace pattern or callback + * that will return a new value. The callback will receive the same + * arguments as those passed to a function parameter of String#replace. + */ + replaceValues(pattern: string | RegExp, options: { + /** + * Property names. The method will only search for values that match + * regexp within declarations of listed properties. + */ + props?: string[]; + /** + * Used to narrow down values and speed up the regexp search. Searching + * every single value with a regexp can be slow. If you pass a fast + * string, PostCSS will first check whether the value contains the fast + * string; and only if it does will PostCSS check that value against + * regexp. For example, instead of just checking for /\d+rem/ on all + * values, set fast: 'rem' to first check whether a value has the rem + * unit, and only if it does perform the regexp check. + */ + fast?: string; + }, callbackOrReplaceValue: string | { + (substring: string, ...args: any[]): string; + }): Container; + replaceValues(pattern: string | RegExp, callbackOrReplaceValue: string | { + (substring: string, ...args: any[]): string; + }): Container; + /** + * Inserts new nodes to the beginning of the container. + * Because each node class is identifiable by unique properties, use the + * following shortcuts to create nodes in insert methods: + * root.prepend({ name: '@charset', params: '"UTF-8"' }); // at-rule + * root.prepend({ selector: 'a' }); // rule + * rule.prepend({ prop: 'color', value: 'black' }); // declaration + * rule.prepend({ text: 'Comment' }) // comment + * A string containing the CSS of the new element can also be used. This + * approach is slower than the above shortcuts. + * root.prepend('a {}'); + * root.first.prepend('color: black; z-index: 1'); + * @param nodes New nodes. + * @returns This container for chaining. + */ + prepend(...nodes: (Node | Object | string)[]): Container; + /** + * Inserts new nodes to the end of the container. + * Because each node class is identifiable by unique properties, use the + * following shortcuts to create nodes in insert methods: + * root.append({ name: '@charset', params: '"UTF-8"' }); // at-rule + * root.append({ selector: 'a' }); // rule + * rule.append({ prop: 'color', value: 'black' }); // declaration + * rule.append({ text: 'Comment' }) // comment + * A string containing the CSS of the new element can also be used. This + * approach is slower than the above shortcuts. + * root.append('a {}'); + * root.first.append('color: black; z-index: 1'); + * @param nodes New nodes. + * @returns This container for chaining. + */ + append(...nodes: (Node | Object | string)[]): Container; + /** + * Insert newNode before oldNode within the container. + * @param oldNode Child or child's index. + * @returns This container for chaining. + */ + insertBefore(oldNode: Node | number, newNode: Node | Object | string): Container; + /** + * Insert newNode after oldNode within the container. + * @param oldNode Child or child's index. + * @returns This container for chaining. + */ + insertAfter(oldNode: Node | number, newNode: Node | Object | string): Container; + /** + * Removes the container from its parent and cleans the parent property in the + * container and its children. + * @returns This container for chaining. + */ + remove(): Container; + /** + * Removes child from the container, and the parent properties of node and + * its children. + * @param child Child or child's index. + * @returns This container for chaining. + */ + removeChild(child: Node | number): Container; + /** + * Removes all children from the container and cleans their parent + * properties. + * @returns This container for chaining. + */ + removeAll(): Container; + } + interface ContainerNewProps extends NodeNewProps { + /** + * Contains the container's children. + */ + nodes?: Node[]; + } + interface ContainerRaws extends NodeRaws { + } + interface JsonContainer extends JsonNode { + /** + * Contains the container's children. + */ + nodes?: Node[]; + /** + * @returns The container's first child. + */ + first?: Node; + /** + * @returns The container's last child. + */ + last?: Node; + } + /** + * Represents a CSS file and contains all its parsed nodes. + */ + interface Root extends Container { + /** + * Inherited from Container. Should always be undefined for a Root node. + */ + parent: Container; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Root; + /** + * @returns A Result instance representing the root's CSS. + */ + toResult(options?: { + /** + * The path where you'll put the output CSS file. You should always + * set "to" to generate correct source maps. + */ + to?: string; + map?: SourceMapOptions; + }): Result; + /** + * Deprecated. Use Root#removeChild. + */ + remove(child?: Node | number): Root; + /** + * Removes child from the root node, and the parent properties of node and + * its children. + * @param child Child or child's index. + * @returns This root node for chaining. + */ + removeChild(child: Node | number): Root; + } + interface RootNewProps extends ContainerNewProps { + } + interface JsonRoot extends JsonContainer { + } + /** + * Represents an at-rule. This node will have a nodes property, + * representing its children, if it is followed in the CSS by a {} block. + */ + interface AtRule extends Container { + /** + * The identifier that immediately follows the @. + */ + name: string; + /** + * These are the values that follow the at-rule's name, but precede any {} + * block. The spec refers to this area as the at-rule's "prelude". + */ + params: string; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): AtRule; + } + interface AtRuleNewProps extends ContainerNewProps { + /** + * The identifier that immediately follows the @. + */ + name?: string; + /** + * These are the values that follow the at-rule's name, but precede any {} + * block. The spec refers to this area as the at-rule's "prelude". + */ + params?: string | number; + } + interface AtRuleRaws extends NodeRaws { + params?: string; + } + interface JsonAtRule extends JsonContainer { + /** + * The identifier that immediately follows the @. + */ + name?: string; + /** + * These are the values that follow the at-rule's name, but precede any {} + * block. The spec refers to this area as the at-rule's "prelude". + */ + params?: string; + } + /** + * Represents a CSS rule: a selector followed by a declaration block. + */ + interface Rule extends Container { + /** + * Returns the rule's parent node. + */ + parent: Container; + /** + * The rule's full selector. If there are multiple comma-separated selectors, + * the entire group will be included. + */ + selector: string; + /** + * An array containing the rule's individual selectors. + * Groups of selectors are split at commas. + */ + selectors?: string[]; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Rule; + } + interface RuleNewProps extends ContainerNewProps { + /** + * The rule's full selector. If there are multiple comma-separated selectors, + * the entire group will be included. + */ + selector?: string; + } + interface RuleRaws extends ContainerRaws { + /** + * The rule's full selector. If there are multiple comma-separated selectors, + * the entire group will be included. + */ + selector?: string; + } + interface JsonRule extends JsonContainer { + /** + * The rule's full selector. If there are multiple comma-separated selectors, + * the entire group will be included. + */ + selector?: string; + /** + * An array containing the rule's individual selectors. + * Groups of selectors are split at commas. + */ + selectors?: string[]; + } + /** + * Represents a CSS declaration. + */ + interface Declaration extends Node { + /** + * The declaration's property name. + */ + prop: string; + /** + * The declaration's value. This value will be cleaned of comments. If the + * source value contained comments, those comments will be available in the + * _value.raws property. If you have not changed the value, the result of + * decl.toString() will include the original raws value (comments and all). + */ + value: string; + /** + * True if the declaration has an !important annotation. + */ + important: boolean; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Declaration; + } + interface DeclarationNewProps { + /** + * The declaration's property name. + */ + prop?: string; + /** + * The declaration's value. This value will be cleaned of comments. If the + * source value contained comments, those comments will be available in the + * _value.raws property. If you have not changed the value, the result of + * decl.toString() will include the original raws value (comments and all). + */ + value?: string; + } + interface DeclarationRaws extends NodeRaws { + /** + * The declaration's value. This value will be cleaned of comments. + * If the source value contained comments, those comments will be + * available in the _value.raws property. If you have not changed the value, the result of + * decl.toString() will include the original raws value (comments and all). + */ + value?: string; + } + interface JsonDeclaration extends JsonNode { + /** + * True if the declaration has an !important annotation. + */ + important?: boolean; + } + /** + * Represents a comment between declarations or statements (rule and at-rules). + * Comments inside selectors, at-rules parameters, or declaration values will + * be stored in the Node#raws properties. + */ + interface Comment extends Node { + /** + * The comment's text. + */ + text: string; + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Comment; + } + interface CommentNewProps { + /** + * The comment's text. + */ + text?: string; + } + interface JsonComment extends JsonNode { + } +} +export default postcss; diff --git a/d.ts/previous-map.d.ts b/d.ts/previous-map.d.ts new file mode 100644 index 000000000..d41fc2b23 --- /dev/null +++ b/d.ts/previous-map.d.ts @@ -0,0 +1,15 @@ +export default class PreviousMap { + private inline; + annotation: string; + root: string; + private consumerCache; + text: string; + file: string; + constructor(css: any, opts: any); + consumer(): any; + withContent(): boolean; + startWith(string: any, start: any): boolean; + loadAnnotation(css: any): void; + decodeInline(text: any): any; + loadMap(file: any, prev: any): any; +} diff --git a/d.ts/processor.d.ts b/d.ts/processor.d.ts new file mode 100644 index 000000000..be60b7626 --- /dev/null +++ b/d.ts/processor.d.ts @@ -0,0 +1,31 @@ +import LazyResult from './lazy-result'; +import postcss from './postcss'; +import Result from './result'; +export default class Processor implements postcss.Processor { + /** + * Contains current version of PostCSS (e.g., "4.0.5"). + */ + version: string; + /** + * Contains plugins added to this processor. + */ + plugins: postcss.Plugin[]; + constructor(plugins?: (typeof postcss.acceptedPlugin)[]); + /** + * Adds a plugin to be used as a CSS processor. Plugins can also be + * added by passing them as arguments when creating a postcss instance. + */ + use(plugin: typeof postcss.acceptedPlugin): Processor; + /** + * Parses source CSS. Because some plugins can be asynchronous it doesn't + * make any transformations. Transformations will be applied in LazyResult's + * methods. + * @param css Input CSS or any object with toString() method, like a file + * stream. If a Result instance is passed the processor will take the + * existing Root parser from it. + */ + process(css: string | { + toString(): string; + } | Result, options?: postcss.ProcessOptions): LazyResult; + private normalize(plugins); +} diff --git a/d.ts/result.d.ts b/d.ts/result.d.ts new file mode 100644 index 000000000..be736d0c7 --- /dev/null +++ b/d.ts/result.d.ts @@ -0,0 +1,83 @@ +import Processor from './processor'; +import postcss from './postcss'; +import Root from './root'; +export default class Result implements postcss.Result { + /** + * The Processor instance used for this transformation. + */ + processor: Processor; + /** + * Contains Root node after all transformations. + */ + root: Root; + /** + * Options from the Processor#process(css, opts) or Root#toResult(opts) call + * that produced this Result instance. + */ + opts: postcss.ResultOptions; + /** + * A CSS string representing this Result's Root instance. + */ + css: string; + /** + * An instance of the SourceMapGenerator class from the source-map library, + * representing changes to the Result's Root instance. + * This property will have a value only if the user does not want an inline + * source map. By default, PostCSS generates inline source maps, written + * directly into the processed CSS. The map property will be empty by default. + * An external source map will be generated — and assigned to map — only if + * the user has set the map.inline option to false, or if PostCSS was passed + * an external input source map. + */ + map: postcss.ResultMap; + /** + * Contains messages from plugins. For example, warnings or custom messages to + * plugins communication. Add a warning using Result#warn() and get all warnings + * using Result#warnings() method. + */ + messages: postcss.ResultMessage[]; + lastPlugin: postcss.Transformer; + /** + * Provides the result of the PostCSS transformations. + */ + constructor( + /** + * The Processor instance used for this transformation. + */ + processor?: Processor, + /** + * Contains Root node after all transformations. + */ + root?: Root, + /** + * Options from the Processor#process(css, opts) or Root#toResult(opts) call + * that produced this Result instance. + */ + opts?: postcss.ResultOptions); + /** + * Alias for css property. + */ + toString(): string; + /** + * Creates a Warning and adds it to messages. + * @param message Used in the text property of the message object. + * @param options Properties for Message object. + */ + warn(message: string, options?: postcss.WarningOptions): void; + /** + * @returns Warnings from plugins, filtered from messages. + */ + warnings(): postcss.ResultMessage[]; + /** + * Alias for css property to use with syntaxes that generate non-CSS output. + */ + content: string; + /** + * Deprecated and will be removed in 5.0. Use result.opts.from instead. + */ + from: string; + /** + * Deprecated and will be removed in 5.0. Use result.opts.to instead. + */ + to: string; +} diff --git a/d.ts/root.d.ts b/d.ts/root.d.ts new file mode 100644 index 000000000..e89705024 --- /dev/null +++ b/d.ts/root.d.ts @@ -0,0 +1,46 @@ +import PreviousMap from './previous-map'; +import Container from './container'; +import postcss from './postcss'; +import Result from './result'; +import Node from './node'; +export default class Root extends Container implements postcss.Root { + prevMap: PreviousMap; + rawCache: { + [key: string]: any; + }; + /** + * Represents a CSS file and contains all its parsed nodes. + */ + constructor(defaults?: postcss.RootNewProps); + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Root; + toJSON(): postcss.JsonRoot; + /** + * Deprecated. Use Root#removeChild. + */ + remove(child?: Node | number): Root; + /** + * Removes child from the root node, and the parent properties of node and + * its children. + * @param child Child or child's index. + * @returns This root node for chaining. + */ + removeChild(child: Node | number): Root; + protected normalize(node: Node | string, sample: Node, type?: string): Node[]; + protected normalize(props: postcss.AtRuleNewProps | postcss.RuleNewProps | postcss.DeclarationNewProps | postcss.CommentNewProps, sample: Node, type?: string): Node[]; + /** + * @returns A Result instance representing the root's CSS. + */ + toResult(options?: { + /** + * The path where you'll put the output CSS file. You should always + * set "to" to generate correct source maps. + */ + to?: string; + map?: postcss.SourceMapOptions; + }): Result; +} diff --git a/d.ts/rule.d.ts b/d.ts/rule.d.ts new file mode 100644 index 000000000..3ea19759c --- /dev/null +++ b/d.ts/rule.d.ts @@ -0,0 +1,31 @@ +import Container from './container'; +import postcss from './postcss'; +export default class Rule extends Container implements postcss.Rule { + /** + * Contains information to generate byte-to-byte equal node string as it + * was in origin input. + */ + raws: postcss.RuleRaws; + /** + * The rule's full selector. If there are multiple comma-separated selectors, + * the entire group will be included. + */ + selector: string; + /** + * Represents a CSS rule: a selector followed by a declaration block. + */ + constructor(defaults?: postcss.RuleNewProps); + /** + * @param overrides New properties to override in the clone. + * @returns A clone of this node. The node and its (cloned) children will + * have a clean parent and code style properties. + */ + clone(overrides?: Object): Rule; + toJSON(): postcss.JsonRule; + /** + * @returns An array containing the rule's individual selectors. + * Groups of selectors are split at commas. + */ + selectors: string[]; + _selector: string; +} diff --git a/d.ts/stringifier.d.ts b/d.ts/stringifier.d.ts new file mode 100644 index 000000000..68424f2b4 --- /dev/null +++ b/d.ts/stringifier.d.ts @@ -0,0 +1,31 @@ +import Node from './node'; +declare class Stringifier { + builder: Stringifier.Builder; + constructor(builder?: Stringifier.Builder); + stringify(node: Node, semicolon?: boolean): void; + root(node: any): void; + comment(node: any): void; + decl(node: any, semicolon: any): void; + rule(node: any): void; + atrule(node: any, semicolon: any): void; + body(node: any): void; + block(node: any, start: any): void; + raw(node: Node, own: string, detect?: string): any; + rawSemicolon(root: any): any; + rawEmptyBody(root: any): any; + rawIndent(root: any): any; + rawBeforeComment(root: any, node: any): any; + rawBeforeDecl(root: any, node: any): any; + rawBeforeRule(root: any): any; + rawBeforeClose(root: any): any; + rawBeforeOpen(root: any): any; + rawColon(root: any): any; + beforeAfter(node: any, detect: any): any; + rawValue(node: any, prop: any): any; +} +declare module Stringifier { + interface Builder { + (str: string, node?: Node, str2?: string): void; + } +} +export default Stringifier; diff --git a/d.ts/stringify.d.ts b/d.ts/stringify.d.ts new file mode 100644 index 000000000..0db21b71d --- /dev/null +++ b/d.ts/stringify.d.ts @@ -0,0 +1,11 @@ +import Stringifier from './stringifier'; +import postcss from './postcss'; +import Node from './node'; +/** + * Default function to convert nodes tree to CSS string. + */ +declare function stringify(node: Node, builder: Stringifier.Builder): void; +declare module stringify { + var stringify: postcss.Syntax | postcss.Stringify; +} +export default stringify; diff --git a/d.ts/tokenize.d.ts b/d.ts/tokenize.d.ts new file mode 100644 index 000000000..0f7efe0d0 --- /dev/null +++ b/d.ts/tokenize.d.ts @@ -0,0 +1 @@ +export default function tokenize(input: any): any[]; diff --git a/d.ts/vendor.d.ts b/d.ts/vendor.d.ts new file mode 100644 index 000000000..4c23ad2ab --- /dev/null +++ b/d.ts/vendor.d.ts @@ -0,0 +1,14 @@ +/** + * Contains helpers for working with vendor prefixes. + */ +declare module Vendor { + /** + * @returns The vendor prefix extracted from the input string. + */ + function prefix(prop: string): string; + /** + * @returns The input string stripped of its vendor prefix. + */ + function unprefixed(prop: string): string; +} +export default Vendor; diff --git a/d.ts/warn-once.d.ts b/d.ts/warn-once.d.ts new file mode 100644 index 000000000..e3421334e --- /dev/null +++ b/d.ts/warn-once.d.ts @@ -0,0 +1,2 @@ +declare var _default: (message: string) => void; +export default _default; diff --git a/d.ts/warning.d.ts b/d.ts/warning.d.ts new file mode 100644 index 000000000..075f892c1 --- /dev/null +++ b/d.ts/warning.d.ts @@ -0,0 +1,38 @@ +import postcss from './postcss'; +import Node from './node'; +export default class Warning implements postcss.Warning { + /** + * Contains the warning message. + */ + text: string; + type: string; + /** + * Contains name of plugin that created this warning. When you call + * Node#warn(), it will fill this property automatically. + */ + plugin: string; + /** + * The CSS node that caused the warning. + */ + node: Node; + /** + * Line in input file with this warning source. + */ + line: number; + /** + * Column in input file with this warning source. + */ + column: number; + /** + * Warning from plugins. It can be created using Node#warn(). + */ + constructor( + /** + * Contains the warning message. + */ + text: string, options?: postcss.WarningOptions); + /** + * @returns Error position, message. + */ + toString(): string; +} diff --git a/docs/api.md b/docs/api.md index 2dddd15bd..3fbd6ef1e 100644 --- a/docs/api.md +++ b/docs/api.md @@ -25,6 +25,15 @@ The `postcss` function is the main entry point for PostCSS. var postcss = require('postcss'); ``` +For those using [TypeScript](http://www.typescriptlang.org/) with an +[ES6 compile target](https://github.com/Microsoft/TypeScript/wiki/tsconfig.json), +you can import the PostCSS API like so: + +```ts +/// +import * as postcss from 'postcss'; +``` + ### `postcss(plugins)` Returns a new [`Processor`] instance that will apply `plugins` diff --git a/postcss.d.ts b/postcss.d.ts new file mode 100644 index 000000000..264905347 --- /dev/null +++ b/postcss.d.ts @@ -0,0 +1,4 @@ +declare module 'postcss' { + import postcss from 'd.ts/postcss'; + export = postcss; +} From 556c811b532b4adac284fb1ca57a0059589facfd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 15 Aug 2015 11:24:03 +0300 Subject: [PATCH 0607/3047] Fix Windows build --- package.json | 1 + test/css-syntax-error.es6 | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index dfcd1f6bd..6a46ffbc7 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "gulp-eslint": "1.0.0", "gulp-babel": "5.2.0", "gulp-mocha": "2.1.3", + "strip-ansi": "3.0.0", "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", diff --git a/test/css-syntax-error.es6 b/test/css-syntax-error.es6 index af793c837..1d9a907c2 100644 --- a/test/css-syntax-error.es6 +++ b/test/css-syntax-error.es6 @@ -1,9 +1,10 @@ import CssSyntaxError from '../lib/css-syntax-error'; import postcss from '../lib/postcss'; -import Concat from 'concat-with-sourcemaps'; -import { expect } from 'chai'; -import path from 'path'; +import stripAnsi from 'strip-ansi'; +import Concat from 'concat-with-sourcemaps'; +import { expect } from 'chai'; +import path from 'path'; let parseError = function (css, opts) { let error; @@ -45,7 +46,7 @@ describe('CssSyntaxError', () => { }); it('highlights broken line', () => { - expect(parseError('a {\n content: "\n}').showSourceCode()).to.eql( + expect(parseError('a {\n content: "\n}').showSourceCode(true)).to.eql( '\n' + 'a {\n' + ' content: "\n' + @@ -60,11 +61,11 @@ describe('CssSyntaxError', () => { '^'); }); - it('prints with colored CSS', () => { - expect(parseError('a {').toString()).to.eql( + it('prints with highlight', () => { + expect(stripAnsi(parseError('a {').toString())).to.eql( 'CssSyntaxError: :1:1: Unclosed block\n' + 'a {\n' + - '\u001b[1;31m^\u001b[0m'); + '^'); }); it('misses highlights without source', () => { From 6155a37effadc5464c24e527b68c32ce2a325e8c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 15 Aug 2015 11:32:48 +0300 Subject: [PATCH 0608/3047] More ES7 --- lib/at-rule.es6 | 3 ++- lib/comment.es6 | 3 ++- lib/declaration.es6 | 3 ++- lib/node.es6 | 3 ++- lib/root.es6 | 3 ++- lib/rule.es6 | 3 ++- lib/warning.es6 | 3 ++- test/node.es6 | 4 ++-- 8 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/at-rule.es6 b/lib/at-rule.es6 index e174a90bd..22f540fc5 100644 --- a/lib/at-rule.es6 +++ b/lib/at-rule.es6 @@ -3,9 +3,10 @@ import warnOnce from './warn-once'; export default class AtRule extends Container { + type = 'atrule' + constructor(defaults) { super(defaults); - this.type = 'atrule'; } append(...children) { diff --git a/lib/comment.es6 b/lib/comment.es6 index 1f141a098..0b8c79863 100644 --- a/lib/comment.es6 +++ b/lib/comment.es6 @@ -3,9 +3,10 @@ import Node from './node'; export default class Comment extends Node { + type = 'comment'; + constructor(defaults) { super(defaults); - this.type = 'comment'; } get left() { diff --git a/lib/declaration.es6 b/lib/declaration.es6 index d9486b5d0..f8a505371 100644 --- a/lib/declaration.es6 +++ b/lib/declaration.es6 @@ -3,9 +3,10 @@ import Node from './node'; export default class Declaration extends Node { + type = 'decl'; + constructor(defaults) { super(defaults); - this.type = 'decl'; } get _value() { diff --git a/lib/node.es6 b/lib/node.es6 index 232f38c1c..d3e2ef8b6 100644 --- a/lib/node.es6 +++ b/lib/node.es6 @@ -29,8 +29,9 @@ let cloneNode = function (obj, parent) { export default class Node { + raws = { } + constructor(defaults = { }) { - this.raws = { }; for ( let name in defaults ) { this[name] = defaults[name]; } diff --git a/lib/root.es6 b/lib/root.es6 index 76a23e6fc..d5d64cec0 100644 --- a/lib/root.es6 +++ b/lib/root.es6 @@ -3,10 +3,11 @@ import warnOnce from './warn-once'; export default class Root extends Container { + type = 'root'; + constructor(defaults) { super(defaults); if ( !this.nodes ) this.nodes = []; - this.type = 'root'; } remove(child) { diff --git a/lib/rule.es6 b/lib/rule.es6 index 885a147cc..326e72991 100644 --- a/lib/rule.es6 +++ b/lib/rule.es6 @@ -4,10 +4,11 @@ import list from './list'; export default class Rule extends Container { + type = 'rule' + constructor(defaults) { super(defaults); if ( !this.nodes ) this.nodes = []; - this.type = 'rule'; } get selectors() { diff --git a/lib/warning.es6 b/lib/warning.es6 index bf3f964da..0a9e422e8 100644 --- a/lib/warning.es6 +++ b/lib/warning.es6 @@ -1,7 +1,8 @@ export default class Warning { + type = 'warning' + constructor(text, opts = { }) { - this.type = 'warning'; this.text = text; if ( opts.node ) { diff --git a/test/node.es6 b/test/node.es6 index 5b1284534..aad1daa35 100644 --- a/test/node.es6 +++ b/test/node.es6 @@ -303,9 +303,9 @@ describe('Node', () => { expect(json.nodes[0].parent).to.not.exist; expect(JSON.stringify(rule)).to.eql( - '{"raws":{},"selector":"a","nodes":[' + + '{"raws":{},"selector":"a","type":"rule","nodes":[' + '{"raws":{},"prop":"color","value":"b","type":"decl"}' + - '],"type":"rule"}'); + ']}'); }); }); From f653520d1feb7bb766c95fc575d057c1b4041060 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Sat, 15 Aug 2015 00:21:35 -0500 Subject: [PATCH 0609/3047] Rename recursive `each` methods to `walk` methods. --- d.ts/container.d.ts | 55 +++++++++++++++++++++------------------- d.ts/postcss.d.ts | 52 +++++++++++++++++++------------------- docs/api.md | 58 +++++++++++++++++++++---------------------- lib/container.es6 | 56 +++++++++++++++++++++++++++++++---------- lib/map-generator.es6 | 4 +-- lib/stringifier.es6 | 20 +++++++-------- test/container.es6 | 46 +++++++++++++++++----------------- test/map.es6 | 8 +++--- test/postcss.es6 | 6 ++--- test/processor.es6 | 2 +- 10 files changed, 170 insertions(+), 137 deletions(-) diff --git a/d.ts/container.d.ts b/d.ts/container.d.ts index 0c0d60143..d30ab4a44 100644 --- a/d.ts/container.d.ts +++ b/d.ts/container.d.ts @@ -25,7 +25,7 @@ export default class Container extends Node implements postcss.Container { /** * Iterates through the container's immediate children, calling the * callback function for each child. If you need to recursively iterate - * through all the container's nodes, use container.eachInside(). Unlike + * through all the container's nodes, use container.walk(). Unlike * the for {} -cycle or Array#forEach() this iterator is safe if you are * mutating the array of child nodes during iteration. * @param callback Iterator. Returning false will break iteration. Safe @@ -33,53 +33,58 @@ export default class Container extends Node implements postcss.Container { * will adjust the current index to match the mutations. */ each(callback: (node: Node, index: number) => any): boolean | void; + eachInside(callback: any): any; /** - * Recursively iterates through the container's children, those children's - * children, etc., calling callback for each. Like container.each(), this - * method is safe to use if you are mutating arrays during iteration. If - * you only need to iterate through the container's immediate children, use - * container.each(). + * Traverses the container's descendant nodes, calling `callback` for each + * node. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. If you only need to iterate through + * the container's immediate children, use container.each(). * @param callback Iterator. */ - eachInside(callback: (node: Node, index: number) => any): boolean | void; + walk(callback: (node: Node, index: number) => any): boolean | void; + eachDecl(propFilter: any, callback?: any): any; /** - * Recursively iterates through all declaration nodes within the container. - * Like container.each(), this method is safe to use if you are mutating - * arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * declaration. Like container.each(), this method is safe to use if you + * are mutating arrays during iteration. * @param propFilter Filters declarations by property name. Only those * declarations whose property matches propFilter will be iterated over. * @param callback Called for each declaration node within the container. */ - eachDecl(propFilter: string | RegExp, callback?: (decl: postcss.Declaration, index: number) => any): boolean | void; - eachDecl(callback: (decl: postcss.Declaration, index: number) => any): boolean | void; + walkDecls(propFilter: string | RegExp, callback?: (decl: postcss.Declaration, index: number) => any): boolean | void; + walkDecls(callback: (decl: postcss.Declaration, index: number) => any): boolean | void; + eachRule(selectorFilter: any, callback?: any): any; /** - * Recursively iterates through all rule nodes within the container. - * Like container.each(), this method is safe to use if you are mutating - * arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * rule. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. * @param selectorFilter Filters rules by selector. Only those rules whose * name matches the filter will be iterated over. * @param callback Iterator called for each rule node within the * container. */ - eachRule(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; - eachRule(callback: (atRule: Rule, index: number) => any): boolean | void; + walkRules(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; + walkRules(callback: (atRule: Rule, index: number) => any): boolean | void; + eachAtRule(nameFilter: any, callback?: any): any; /** - * Recursively iterates through all at-rule nodes. Like container.each(), - * this method is safe to use if you are mutating arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * at-rule. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. * @param nameFilter Filters at-rules by name. Only those at-rules whose * name matches filter will be iterated over. * @param callback Iterator called for each at-rule node within the * container. */ - eachAtRule(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; - eachAtRule(callback: (atRule: AtRule, index: number) => any): boolean | void; + walkAtRules(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; + walkAtRules(callback: (atRule: AtRule, index: number) => any): boolean | void; + eachComment(selectorFilter: any, callback?: any): any; /** - * Recursively iterates through all comment nodes within the container. - * Like container.each(), this method is safe to use if you are mutating - * arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * commennt. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. * @param callback Iterator called for each comment node within the container. */ - eachComment(callback: (comment: Comment, indexed: number) => any): void | boolean; + walkComments(callback: (comment: Comment, indexed: number) => any): void | boolean; /** * Inserts new nodes to the end of the container. * Because each node class is identifiable by unique properties, use the diff --git a/d.ts/postcss.d.ts b/d.ts/postcss.d.ts index 7d84ab028..3888ad39a 100644 --- a/d.ts/postcss.d.ts +++ b/d.ts/postcss.d.ts @@ -830,7 +830,7 @@ declare module postcss { /** * Iterates through the container's immediate children, calling the * callback function for each child. If you need to recursively iterate - * through all the container's nodes, use container.eachInside(). Unlike + * through all the container's nodes, use container.walk(). Unlike * the for {} -cycle or Array#forEach() this iterator is safe if you are * mutating the array of child nodes during iteration. * @param callback Iterator. Returning false will break iteration. Safe @@ -840,53 +840,53 @@ declare module postcss { */ each(callback: (node: Node, index: number) => any): boolean | void; /** - * Recursively iterates through the container's children, those children's - * children, etc., calling callback for each. Like container.each(), this - * method is safe to use if you are mutating arrays during iteration. If - * you only need to iterate through the container’s immediate children, use - * container.each(). + * Traverses the container's descendant nodes, calling `callback` for each + * node. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. If you only need to iterate through + * the container's immediate children, use container.each(). * @param callback Iterator. */ - eachInside(callback: (node: Node, index: number) => any): boolean | void; + walk(callback: (node: Node, index: number) => any): boolean | void; /** - * Recursively iterates through all declaration nodes within the container. - * Like container.each(), this method is safe to use if you are mutating - * arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * declaration. Like container.each(), this method is safe to use if you + * are mutating arrays during iteration. * @param propFilter Filters declarations by property name. Only those * declarations whose property matches propFilter will be iterated over. * @param callback Called for each declaration node within the container. */ - eachDecl(propFilter: string | RegExp, callback?: (decl: Declaration, index: number) => any): boolean | void; - eachDecl(callback: (decl: Declaration, index: number) => any): boolean | void; + walkDecls(propFilter: string | RegExp, callback?: (decl: Declaration, index: number) => any): boolean | void; + walkDecls(callback: (decl: Declaration, index: number) => any): boolean | void; /** - * Recursively iterates through all at-rule nodes. Like container.each(), - * this method is safe to use if you are mutating arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * at-rule. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. * @param nameFilter Filters at-rules by name. Only those at-rules whose * name matches filter will be iterated over. * @param callback Iterator called for each at-rule node within the * container. */ - eachAtRule(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; - eachAtRule(callback: (atRule: AtRule, index: number) => any): boolean | void; + walkAtRules(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; + walkAtRules(callback: (atRule: AtRule, index: number) => any): boolean | void; /** - * Recursively iterates through all rule nodes within the container. - * Like container.each(), this method is safe to use if you are mutating - * arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * rule. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. * @param selectorFilter Filters rules by selector. Only those rules whose * name matches the filter will be iterated over. * @param callback Iterator called for each rule node within the * container. */ - eachRule(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; - eachRule(callback: (atRule: Rule, index: number) => any): boolean | void; - eachRule(selectorFilter: any, callback?: (atRule: Rule, index: number) => any): boolean | void; + walkRules(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; + walkRules(callback: (atRule: Rule, index: number) => any): boolean | void; + walkRules(selectorFilter: any, callback?: (atRule: Rule, index: number) => any): boolean | void; /** - * Recursively iterates through all comment nodes within the container. - * Like container.each(), this method is safe to use if you are mutating - * arrays during iteration. + * Traverses the container's descendant nodes, calling `callback` for each + * comment. Like container.each(), this method is safe to use if you are + * mutating arrays during iteration. * @param callback Iterator called for each comment node within the container. */ - eachComment(callback: (comment: Comment, indexed: number) => any): void | boolean; + walkComments(callback: (comment: Comment, indexed: number) => any): void | boolean; /** * Passes all declaration values within the container that match pattern * through the callback, replacing those values with the returned result of diff --git a/docs/api.md b/docs/api.md index 3fbd6ef1e..fd3200457 100644 --- a/docs/api.md +++ b/docs/api.md @@ -80,7 +80,7 @@ Creates a PostCSS plugin with a standard API. var remove = postcss.plugin('postcss-remove', function (opts) { var filter = opts.prop || 'z-index'; return function (css, result) { - css.eachDecl(filter, function (decl) { + css.walkDecls(filter, function (decl) { decl.remove(); }); }; @@ -146,7 +146,7 @@ Add warnings using the [`Node#warn()`] method. ```js postcss.plugin('postcss-caniuse-test', function () { return function (css, result) { - css.eachDecl(function (decl) { + css.walkDecls(function (decl) { if ( !caniuse.support(decl.prop) ) { decl.warn(result, 'Some browsers do not support ' + decl.prop); @@ -500,7 +500,7 @@ Creates [`Warning`] and adds it to [`Result#messages`]. ```js var plugin = postcss.plugin('postcss-important', function () { return function (css, result) { - css.eachDecl(function (decl) { + css.walkDecls(function (decl) { if ( decl.important ) { result.warn('Try to avoid !important', { node: decl }); } @@ -1099,7 +1099,7 @@ This method is provided as a convenience wrapper for [`Result#warn()`]. ```js var plugin = postcss.plugin('postcss-deprecated', function () { return function (css, result) { - css.eachDecl('bad', function (decl) { + css.walkDecls('bad', function (decl) { decl.warn(result, 'Deprecated property bad'); }); }; @@ -1350,16 +1350,15 @@ rule.each(function (decl) { `container.each()` only iterates through the container’s immediate children. If you need to recursively iterate through all the container’s nodes, -use `container.eachInside()`. +use `container.walk()`. -### `container.eachInside(callback)` +### `container.walk(callback)` -Recursively iterates through the container’s children, -those children’s children, etc., calling `callback` for each. +Traverses the container’s descendant nodes, calling `callback` for each node. ```js -root.eachInside(function (node) { - // Will be iterate through all nodes +root.walk(function (node) { + // Traverses all descendant nodes. }); ``` @@ -1373,13 +1372,13 @@ if you are mutating arrays during iteration. If you only need to iterate through the container’s immediate children, use `container.each()`. -### `container.eachDecl([propFilter,] callback)` +### `container.walkDecls([propFilter,] callback)` -Recursively iterates through all declaration nodes within the container, -calling `callback` for each. +Traverses the container’s descendant nodes, calling `callback` for each +declaration node. ```js -root.eachDecl(function (decl) { +root.walkDecls(function (decl) { if ( decl.prop.match(/^-webkit-/) ) { decl.remove(); } @@ -1397,10 +1396,10 @@ If you pass a `propFilter`, only those declarations whose property matches ```js // Make flat design -root.eachDecl('border-radius', function (decl) { +root.walkDecls('border-radius', function (decl) { decl.remove(); }); -root.eachDecl(/^background/, function (decl) { +root.walkDecls(/^background/, function (decl) { decl.value = takeFirstColorFromGradient(decl.value); }); ``` @@ -1408,14 +1407,13 @@ root.eachDecl(/^background/, function (decl) { Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. -### `container.eachAtRule([nameFilter,] callback)` - -Recursively iterates through all at-rule nodes within the container, -calling `callback` for each. +### `container.walkAtRules([nameFilter,] callback)` +Traverses the container’s descendant nodes, calling `callback` for each +at-rule node. ```js -root.eachAtRule(function (rule) { +root.walkAtRules(function (rule) { if ( rule.name.match(/^-webkit-/) ) rule.remove(); }); ``` @@ -1431,7 +1429,7 @@ will be iterated over. ```js var first = false; -root.eachAtRule('charset', function (rule) { +root.walkAtRules('charset', function (rule) { if ( !first ) { first = true; } else { @@ -1443,14 +1441,14 @@ root.eachAtRule('charset', function (rule) { Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. -### `container.eachRule([selectorFilter,] callback)` +### `container.walkRules([selectorFilter,] callback)` -Recursively iterates through all rule nodes within the container, calling -`callback` for each. +Traverses the container’s descendant nodes, calling `callback` for each +rule node. ```js var selectors = []; -root.eachRule(function (rule) { +root.walkRules(function (rule) { selectors.push(rule.selector); }); console.log('You CSS uses ' + selectors.length + ' selectors'); @@ -1468,13 +1466,13 @@ If you pass a `selectorFilter`, only those rules whose selector matches Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. -### `container.eachComment(callback)` +### `container.walkComments(callback)` -Recursively iterates through all comment nodes within the container, calling -`callback` for each. +Traverses the container’s descendant nodes, calling `callback` for each +comment node. ```js -root.eachComment(function (comment) { +root.walkComments(function (comment) { comment.remove(); }); ``` diff --git a/lib/container.es6 b/lib/container.es6 index 91bb3a06c..b8ebb6c35 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -38,11 +38,17 @@ export default class Container extends Node { } eachInside(callback) { + warnOnce('Container#eachInside is deprecated. ' + + 'Use Container#walk instead.'); + return this.walk(callback); + } + + walk(callback) { return this.each( (child, i) => { let result = callback(child, i); - if ( result !== false && child.eachInside ) { - result = child.eachInside(callback); + if ( result !== false && child.walk ) { + result = child.walk(callback); } if ( result === false ) return result; @@ -50,23 +56,29 @@ export default class Container extends Node { } eachDecl(prop, callback) { + warnOnce('Container#eachDecl is deprecated. ' + + 'Use Container#walkDecls instead.'); + return this.walkDecls(prop, callback); + } + + walkDecls(prop, callback) { if ( !callback ) { callback = prop; - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'decl' ) { let result = callback(child, i); if ( result === false ) return result; } }); } else if ( prop instanceof RegExp ) { - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'decl' && prop.test(child.prop) ) { let result = callback(child, i); if ( result === false ) return result; } }); } else { - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'decl' && child.prop === prop ) { let result = callback(child, i); if ( result === false ) return result; @@ -76,24 +88,30 @@ export default class Container extends Node { } eachRule(selector, callback) { + warnOnce('Container#eachRule is deprecated. ' + + 'Use Container#walkRules instead.'); + return this.walkRules(selector, callback); + } + + walkRules(selector, callback) { if ( !callback ) { callback = selector; - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'rule' ) { let result = callback(child, i); if ( result === false ) return result; } }); } else if ( selector instanceof RegExp ) { - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'rule' && selector.test(child.selector) ) { let result = callback(child, i); if ( result === false ) return result; } }); } else { - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'rule' && child.selector === selector ) { let result = callback(child, i); if ( result === false ) return result; @@ -103,23 +121,29 @@ export default class Container extends Node { } eachAtRule(name, callback) { + warnOnce('Container#eachAtRule is deprecated. ' + + 'Use Container#walkAtRules instead.'); + return this.walkRules(name, callback); + } + + walkAtRules(name, callback) { if ( !callback ) { callback = name; - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'atrule' ) { let result = callback(child, i); if ( result === false ) return result; } }); } else if ( name instanceof RegExp ) { - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'atrule' && name.test(child.name) ) { let result = callback(child, i); if ( result === false ) return result; } }); } else { - return this.eachInside( (child, i) => { + return this.walk( (child, i) => { if ( child.type === 'atrule' && child.name === name ) { let result = callback(child, i); if ( result === false ) return result; @@ -129,7 +153,13 @@ export default class Container extends Node { } eachComment(callback) { - return this.eachInside( (child, i) => { + warnOnce('Container#eachComment is deprecated. ' + + 'Use Container#walkComments instead.'); + return this.walkRules(callback); + } + + walkComments(callback) { + return this.walk( (child, i) => { if ( child.type === 'comment' ) { let result = callback(child, i); if ( result === false ) return result; @@ -231,7 +261,7 @@ export default class Container extends Node { opts = { }; } - this.eachDecl((decl) => { + this.walkDecls((decl) => { if ( opts.props && opts.props.indexOf(decl.prop) === -1 ) return; if ( opts.fast && decl.value.indexOf(opts.fast) === -1 ) return; diff --git a/lib/map-generator.es6 b/lib/map-generator.es6 index 03b0efff7..8b077561d 100644 --- a/lib/map-generator.es6 +++ b/lib/map-generator.es6 @@ -22,7 +22,7 @@ export default class { previous() { if ( !this.previousMaps ) { this.previousMaps = []; - this.root.eachInside( (node) => { + this.root.walk( (node) => { if ( node.source && node.source.input.map ) { let map = node.source.input.map; if ( this.previousMaps.indexOf(map) === -1 ) { @@ -78,7 +78,7 @@ export default class { setSourcesContent() { let already = { }; - this.root.eachInside( (node) => { + this.root.walk( (node) => { if ( node.source ) { let from = node.source.input.from; if ( from && !already[from] ) { diff --git a/lib/stringifier.es6 b/lib/stringifier.es6 index e511c78ea..347730373 100644 --- a/lib/stringifier.es6 +++ b/lib/stringifier.es6 @@ -141,7 +141,7 @@ export default class Stringifier { if ( this[method] ) { value = this[method](root, node); } else { - root.eachInside( (i) => { + root.walk( (i) => { value = i.raws[own]; if ( typeof value !== 'undefined' ) return false; }); @@ -156,7 +156,7 @@ export default class Stringifier { rawSemicolon(root) { let value; - root.eachInside( (i) => { + root.walk( (i) => { if ( i.nodes && i.nodes.length && i.last.type === 'decl' ) { value = i.raws.semicolon; if ( typeof value !== 'undefined' ) return false; @@ -167,7 +167,7 @@ export default class Stringifier { rawEmptyBody(root) { let value; - root.eachInside( (i) => { + root.walk( (i) => { if ( i.nodes && i.nodes.length === 0 ) { value = i.raws.after; if ( typeof value !== 'undefined' ) return false; @@ -178,7 +178,7 @@ export default class Stringifier { rawIndent(root) { let value; - root.eachInside( (i) => { + root.walk( (i) => { let p = i.parent; if ( p && p !== root && p.parent && p.parent === root ) { if ( typeof i.raws.before !== 'undefined' ) { @@ -194,7 +194,7 @@ export default class Stringifier { rawBeforeComment(root, node) { let value; - root.eachComment( (i) => { + root.walkComments( (i) => { if ( typeof i.raws.before !== 'undefined' ) { value = i.raws.before; if ( value.indexOf('\n') !== -1 ) { @@ -211,7 +211,7 @@ export default class Stringifier { rawBeforeDecl(root, node) { let value; - root.eachDecl( (i) => { + root.walkDecls( (i) => { if ( typeof i.raws.before !== 'undefined' ) { value = i.raws.before; if ( value.indexOf('\n') !== -1 ) { @@ -228,7 +228,7 @@ export default class Stringifier { rawBeforeRule(root) { let value; - root.eachInside( (i) => { + root.walk( (i) => { if ( i.nodes && (i.parent !== root || root.first !== i) ) { if ( typeof i.raws.before !== 'undefined' ) { value = i.raws.before; @@ -244,7 +244,7 @@ export default class Stringifier { rawBeforeClose(root) { let value; - root.eachInside( (i) => { + root.walk( (i) => { if ( i.nodes && i.nodes.length > 0 ) { if ( typeof i.raws.after !== 'undefined' ) { value = i.raws.after; @@ -260,7 +260,7 @@ export default class Stringifier { rawBeforeOpen(root) { let value; - root.eachInside( (i) => { + root.walk( (i) => { if ( i.type !== 'decl' ) { value = i.raws.between; if ( typeof value !== 'undefined' ) return false; @@ -271,7 +271,7 @@ export default class Stringifier { rawColon(root) { let value; - root.eachDecl( (i) => { + root.walkDecls( (i) => { if ( typeof i.raws.between !== 'undefined' ) { value = i.raws.between.replace(/[^\s:]/g, ''); return false; diff --git a/test/container.es6 b/test/container.es6 index 4ad3e381e..18cf29a7a 100644 --- a/test/container.es6 +++ b/test/container.es6 @@ -169,13 +169,13 @@ describe('Container', () => { }); - describe('eachInside()', () => { + describe('walk()', () => { it('iterates', () => { let types = []; let indexes = []; - let result = parse(example).eachInside( (node, i) => { + let result = parse(example).walk( (node, i) => { types.push(node.type); indexes.push(i); }); @@ -190,7 +190,7 @@ describe('Container', () => { it('breaks iteration', () => { let indexes = []; - let result = parse(example).eachInside( (decl, i) => { + let result = parse(example).walk( (decl, i) => { indexes.push(i); return false; }); @@ -201,13 +201,13 @@ describe('Container', () => { }); - describe('eachDecl()', () => { + describe('walkDecls()', () => { it('iterates', () => { let props = []; let indexes = []; - let result = parse(example).eachDecl( (decl, i) => { + let result = parse(example).walkDecls( (decl, i) => { props.push(decl.prop); indexes.push(i); }); @@ -219,7 +219,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; - parse(example).eachDecl( (decl, i) => { + parse(example).walkDecls( (decl, i) => { decl.parent.removeChild(i); size += 1; }); @@ -229,7 +229,7 @@ describe('Container', () => { it('breaks iteration', () => { let indexes = []; - let result = parse(example).eachDecl( (decl, i) => { + let result = parse(example).walkDecls( (decl, i) => { indexes.push(i); return false; }); @@ -242,7 +242,7 @@ describe('Container', () => { let css = parse('@page{a{one:1}}b{one:1;two:2}'); let size = 0; - css.eachDecl('one', (decl) => { + css.walkDecls('one', (decl) => { expect(decl.prop).to.eql('one'); size += 1; }); @@ -254,20 +254,20 @@ describe('Container', () => { let css = parse('@page{a{one:1}}b{one-x:1;two:2}'); let size = 0; - css.eachDecl(/one(-x)?/, () => size += 1 ); + css.walkDecls(/one(-x)?/, () => size += 1 ); expect(size).to.eql(2); }); }); - describe('eachComment()', () => { + describe('walkComments()', () => { it('iterates', () => { let texts = []; let indexes = []; - let result = parse(example).eachComment( (comment, i) => { + let result = parse(example).walkComments( (comment, i) => { texts.push(comment.text); indexes.push(i); }); @@ -279,7 +279,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; - parse(example).eachComment( (comment, i) => { + parse(example).walkComments( (comment, i) => { comment.parent.removeChild(i); size += 1; }); @@ -289,7 +289,7 @@ describe('Container', () => { it('breaks iteration', () => { let indexes = []; - let result = parse(example).eachComment( (comment, i) => { + let result = parse(example).walkComments( (comment, i) => { indexes.push(i); return false; }); @@ -300,13 +300,13 @@ describe('Container', () => { }); - describe('eachRule()', () => { + describe('walkRules()', () => { it('iterates', () => { let selectors = []; let indexes = []; - let result = parse(example).eachRule( (rule, i) => { + let result = parse(example).walkRules( (rule, i) => { selectors.push(rule.selector); indexes.push(i); }); @@ -318,7 +318,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; - parse(example).eachRule( (rule, i) => { + parse(example).walkRules( (rule, i) => { rule.parent.removeChild(i); size += 1; }); @@ -328,7 +328,7 @@ describe('Container', () => { it('breaks iteration', () => { let indexes = []; - let result = parse(example).eachRule( (rule, i) => { + let result = parse(example).walkRules( (rule, i) => { indexes.push(i); return false; }); @@ -339,13 +339,13 @@ describe('Container', () => { }); - describe('eachAtRule()', () => { + describe('walkAtRules()', () => { it('iterates', () => { let names = []; let indexes = []; - let result = parse(example).eachAtRule( (atrule, i) => { + let result = parse(example).walkAtRules( (atrule, i) => { names.push(atrule.name); indexes.push(i); }); @@ -357,7 +357,7 @@ describe('Container', () => { it('iterates with changes', () => { let size = 0; - parse(example).eachAtRule( (atrule, i) => { + parse(example).walkAtRules( (atrule, i) => { atrule.parent.removeChild(i); size += 1; }); @@ -367,7 +367,7 @@ describe('Container', () => { it('breaks iteration', () => { let indexes = []; - let result = parse(example).eachAtRule( (atrule, i) => { + let result = parse(example).walkAtRules( (atrule, i) => { indexes.push(i); return false; }); @@ -380,7 +380,7 @@ describe('Container', () => { let css = parse('@page{@page 2{}}@media print{@page{}}'); let size = 0; - css.eachAtRule('page', (atrule) => { + css.walkAtRules('page', (atrule) => { expect(atrule.name).to.eql('page'); size += 1; }); @@ -392,7 +392,7 @@ describe('Container', () => { let css = parse('@page{@page 2{}}@media print{@page{}}'); let size = 0; - css.eachAtRule(/page/, () => size += 1 ); + css.walkAtRules(/page/, () => size += 1 ); expect(size).to.eql(3); }); diff --git a/test/map.es6 b/test/map.es6 index a5587ed2a..e250a1997 100644 --- a/test/map.es6 +++ b/test/map.es6 @@ -16,10 +16,10 @@ let read = function (result) { let dir = path.join(__dirname, 'fixtures'); let doubler = postcss( (css) => { - css.eachDecl( decl => decl.parent.prepend(decl.clone()) ); + css.walkDecls( decl => decl.parent.prepend(decl.clone()) ); }); let lighter = postcss( (css) => { - css.eachDecl( decl => decl.value = 'white' ); + css.walkDecls( decl => decl.value = 'white' ); }); describe('source maps', () => { @@ -39,10 +39,10 @@ describe('source maps', () => { it('generate right source map', () => { let css = 'a {\n color: black;\n }'; let processor = postcss( (root) => { - root.eachRule( (rule) => { + root.walkRules( (rule) => { rule.selector = 'strong'; }); - root.eachDecl( (decl) => { + root.walkDecls( (decl) => { decl.parent.prepend( decl.clone({ prop: 'background' }) ); }); }); diff --git a/test/postcss.es6 b/test/postcss.es6 index dfd1b2dad..3673337ce 100644 --- a/test/postcss.es6 +++ b/test/postcss.es6 @@ -34,7 +34,7 @@ describe('postcss()', () => { it('supports injecting additional processors at runtime', (done) => { let plugin1 = postcss.plugin('one', () => { return css => { - css.eachDecl(decl => { + css.walkDecls(decl => { decl.value = 'world'; }); }; @@ -56,7 +56,7 @@ describe('postcss()', () => { it('creates plugin', () => { let plugin = postcss.plugin('test', (filter) => { return function (css) { - css.eachDecl(filter || 'two', function (decl) { + css.walkDecls(filter || 'two', function (decl) { decl.remove(); }); }; @@ -80,7 +80,7 @@ describe('postcss()', () => { it('creates a shortcut to process css', (done) => { let plugin = postcss.plugin('test', (str = 'bar') => { return function (css) { - css.eachDecl( i => i.value = str ); + css.walkDecls( i => i.value = str ); }; }); diff --git a/test/processor.es6 b/test/processor.es6 index 49870995a..65981c6f7 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -81,7 +81,7 @@ describe('Processor', () => { }); let beforeFix = new Processor([ (css) => { - css.eachRule( (rule) => { + css.walkRules( (rule) => { if ( !rule.selector.match(/::(before|after)/) ) return; if ( !rule.some( i => i.prop === 'content' ) ) { rule.prepend({ prop: 'content', value: '""' }); From 7256982ba0fb59da73e569efa6b6320c377b4c4b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 16 Aug 2015 19:24:27 +0300 Subject: [PATCH 0610/3047] Update PostCSS desc because no we work not only with CSS --- README.md | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 19253d0aa..081d3e497 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ title="Philosopher’s stone, logo of PostCSS" src="http://postcss.github.io/postcss/logo.svg"> -PostCSS is a tool for transforming CSS with JS plugins. +PostCSS is a tool for transforming styles with JS plugins. These plugins can support variables and mixins, transpile future CSS syntax, inline images, and more. @@ -39,7 +39,7 @@ VK.com page: [postcss](https://vk.com/postcss). PostCSS itself is very small. It includes only a CSS parser, a CSS node tree API, a source map generator, and a node tree stringifier. -All CSS transformations are made by plugins. And these plugins are just +All styles transformations are made by plugins. And these plugins are just small plain JS functions, which receive a CSS node tree, transform it, and return a modified tree. @@ -100,7 +100,7 @@ As a result, PostCSS offers three main benefits: * **Future CSS:** PostCSS plugins can read and rebuild an entire document, meaning that they can provide new language features. For example, [cssnext] transpiles the latest W3C drafts to current CSS syntax. -* **New abilities:** PostCSS plugins can read and change every part of CSS. +* **New abilities:** PostCSS plugins can read and change every part of styles. It makes many new classes of tools possible. [Autoprefixer], [`rtlcss`], [`doiuse`] or [`postcss-colorblind`] are good examples. @@ -178,7 +178,7 @@ postcss(plugins).process('a {', { parser: safe }).then(function (result) { ### Syntaxes -* [`postcss-scss`] to works with SCSS *(it do not compile SCSS to CSS)*. +* [`postcss-scss`] to works with SCSS *(but do not compile SCSS to CSS)*. [`postcss-scss`]: https://github.com/postcss/postcss-scss diff --git a/package.json b/package.json index 6a46ffbc7..cf715b6ea 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "postcss", "version": "4.1.16", - "description": "Tool for transforming CSS with JS plugins", + "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", "postcss", From 947b23d2a8f03e31f950cc9986d9fcd1e33f1c2e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 16 Aug 2015 19:54:38 +0300 Subject: [PATCH 0611/3047] Fix Syntax docs --- docs/syntax.md | 141 ++++++++++++++++++++++++++----------------------- 1 file changed, 76 insertions(+), 65 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index 62a7d18a6..c698673b5 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -1,16 +1,16 @@ # How to Write Custom Syntax -PostCSS can transform not only CSS. You can write a custom syntax -and transform styles in other format. +PostCSS can transforms styles in any syntax, not only in CSS. +You can write a custom syntax and transform styles in any format. -Writing a custom syntax is much harder rather then writing just -a PostCSS plugin. But it is a awesome adventure. +Writing a custom syntax is much harder then writing just a PostCSS plugin. +But it is a awesome adventure. -You can provide 3 types of package: +There are 3 types of PostCSS syntax packages: * **Parser** to parse input string to node’s tree. * **Stringifier** to generate output string by node’s tree. -* **Syntax** contains parser and stringifier. +* **Syntax** contains both parser and stringifier. ## Syntax @@ -31,28 +31,30 @@ module.exports = { ## Parser -Main example of parse is [Safe Parser], to parse broken CSS. There is not sense -to generate string with broken CSS, so package should provide only parser. +Main example of parse is [Safe Parser], which parses broken CSS. +There is no sense to generate string with broken CSS, +so package provides only parser. -Parser API is a function, that receives string and returns `Root` node. -The second function argument will be a object with PostCSS options. +Parser API is a function, that receives string and returns [`Root`] node. +In second argument this function receives a object with PostCSS options. ```js var postcss = require('postcss'); module.exports = function (css, opts) { var root = postcss.root(); - // Some magic with css + // Add other nodes to root return root; }; ``` [Safe Parser]: https://github.com/postcss/postcss-safe-parser +[`Root`]: https://github.com/postcss/postcss/blob/master/docs/api.md#root-node ### Main Theory -There are many books about parses. But do not scary, CSS syntax is very easy, -so parser will be much simpler than usual. +There are many books about parsers. But do not scary, CSS syntax is very easy, +so parser will be much simpler than programming language parsers. The default PostCSS parser contains two steps: @@ -61,64 +63,65 @@ The default PostCSS parser contains two steps: or detect strings to `['string', '"\"{"']`. * [Parser] to read tokens array, create node instances and build tree. -Look at this parts for a parser example. - [Tokenizer]: https://github.com/postcss/postcss/blob/master/lib/tokenize.es6 [Parser]: https://github.com/postcss/postcss/blob/master/lib/parser.es6 ### Performance -Parsing input is a longest task in CSS usual processor. So it is very important +Parsing input is a longest task in CSS processors. So it is very important to have fast parser. The main rule of optimization: there is no performance without benchmark. -You can look at [PostCSS benchmarks] as example. +You can look at [PostCSS benchmarks] to build your own. If we will look deeper, the tokenize step will be a longest part of parsing. So you should focus only on tokenizer performance. Other parts could be well written maintainable code. -Unfortunately, classes, functions and high level structures can slow down +1. Unfortunately, classes, functions and high level structures can slow down your tokenizer. Be ready to write dirty code with code repeating. -This is why it is difficult to extend default tokenizer. +This is why it is difficult to extend default [PostCSS tokenizer]. Copy paste will be a necessary evil. -Second optimization is using char codes instead of string. +2. Second optimization is using char codes instead of string. -```js -// Slow -string[i] === '{'; + ```js + // Slow + string[i] === '{'; -// Fast -const OPEN_CURLY = 123; // `{' -string.charCodeAt(i) === OPEN_CURLY; -``` + // Fast + const OPEN_CURLY = 123; // `{' + string.charCodeAt(i) === OPEN_CURLY; + ``` -Third optimization is “fast jumps”. If you find open quote, you can find -closed quote much faster by `indexOf`: +3. Third optimization is “fast jumps”. If you find open quote, you can find + next close quote much faster by `indexOf`: -```js -// Simple jump -next = string.indexOf('"', currentPosition + 1); + ```js + // Simple jump + next = string.indexOf('"', currentPosition + 1); -// Complicated jump -regexp.lastIndex = currentPosion + 1; -regexp.text(string); -next = regexp.lastIndex; -``` + // Jump by RegExp + regexp.lastIndex = currentPosion + 1; + regexp.text(string); + next = regexp.lastIndex; + ``` -Parser can be well written class. So there is no need in copy-paste and -hardcore optimization there. You can safely extend default class. +Parser can be well written class. There is no need in copy-paste and +hardcore optimization there. You can extend default [PostCSS parser]. [PostCSS benchmarks]: https://github.com/postcss/benchmark +[PostCSS tokenizer]: https://github.com/postcss/postcss/blob/master/lib/tokenize.es6 +[PostCSS parser]: https://github.com/postcss/postcss/blob/master/lib/parser.es6 ### Node Source -To generate source map, every node instance should have `source` property. -It should have `{ line, column }` object in `start` and `end` properties +Every node should have `source` property to generate correct source map. +This property contains `start` and `end` properties with `{ line, column }`, and `input` property with [`Input`] instance. -So your tokenizer should provide token type, content and positions. +So your tokenizer should save position to every token to use set it to nodes +in parser. [`Input`]: https://github.com/postcss/postcss/blob/master/lib/input.es6 @@ -129,35 +132,38 @@ to generate byte-to-byte equal output. It is not so difficult, but respectful for user input and allow integration smoke tests. Parser should save all addition symbols to [`node.raws`] object. -It is a open structure to you, you can add addition keys. -For example, [SCSS parser] saves comment types there (`/* */` or `//` comment). +It is a open structure for you, you can add addition keys. +For example, [SCSS parser] saves comment types (`/* */` or `//`) +in `node.raws.inline`. -Also, default parser clean some CSS values from comments and spaces. -It save origin value with comments to `node.raws.value.raw` and use it, -if node values were not changed. +Default parser cleans CSS values from comments and spaces. +It saves origin value with comments to `node.raws.value.raw` and use it, +if node value was not changed. +[SCSS parser]: https://github.com/postcss/postcss-scss [`node.raws`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws ### Tests -Of course, all parsers must have a tests. +Of course, all parsers in PostCSS ecosystem must have tests. If your parser just extend CSS syntax (like [SCSS] or [Safe Parser]), -you should use [PostCSS Parser Tests]. It contains unit and integration tests. +you can use [PostCSS Parser Tests]. It contains unit and integration tests. [PostCSS Parser Tests]: https://github.com/postcss/postcss-parser-tests ## Stringifier Style guide generator is good example of stringifier. It generates output HTML -with usage examples by component styles. +with usage examples by component CSS. So there is no sense for parser +and package can contain only stringifier. Stringifier API is little bit more complicated, that parser API. PostCSS generates source map. So stringifier can’t just return a string. -It must link every string with source node. +It must link every substring with source node. -Stringifier is a function, that receives `Root` node and builder callback. -Then it calls builder with every node’s string and this node. +Stringifier is a function, that receives [`Root`] node and builder callback. +Then it calls builder with every node’s string and node instance. ```js module.export = function (root, builder) { @@ -171,8 +177,7 @@ module.export = function (root, builder) { ### Main Theory PostCSS [default stringifier] is just a class with method for each node type -and many methods to detect raw properties (if node was built manually) -by other nodes. +and many methods to detect raw properties. In most cases it will be enough just to extent this class, like in [SCSS stringifier]. @@ -183,26 +188,32 @@ like in [SCSS stringifier]. ### Builder Function Builder function will be pass to `stringify` function as second argument. -Stringifier class saves it to `this.builder` property. +For example, default PostCSS stringifier class saves it +to `this.builder` property. -It receive output substring and source node and accept this substring +Builder receives output substring and source node to append this substring to final output. -Some nodes string can contains other nodes in the middle. -For example, rule has `a {` beginning, many declarations inside -and `}` at the end. +Some nodes contains other nodes in the middle. For example, rule has `a {` +beginning, many declarations inside and `}` at the end. For this cases, you should pass a third argument to builder function: -`'start'` or `'end'` string. +`'start'` or `'end'` string: + +```js +this.builder(rule.selector + '{', rule, 'start'); +// Stringify declarations inside +this.builder('}', rule, 'end'); +``` ### Raw Values Good PostCSS syntax saves all symbols and provide byte-to-byte equal output -if there were not AST changes. +if there were no changes. This is why every node has [`node.raws`] object to store space symbol, etc. -But be ready, that any of this `raws` properties can be missed. Some nodes +But be ready, that any of this raw properties can be missed. Some nodes can be built manually. Some nodes can loose indent on moving between parents. This is why default stringifier has `raw()` method to autodetect raw property @@ -215,7 +226,7 @@ and them multiply it with current node depth. Stringifier must have a tests too. -You can use unit and integration cases from [PostCSS Parser Tests] -in smoke test. Just compare input CSS with CSS after you parser and stringifier. +You can use unit and integration cases from [PostCSS Parser Tests]. +Just compare input CSS with CSS after you parser and stringifier. [PostCSS Parser Tests]: https://github.com/postcss/postcss-parser-tests From a7316fa3fb3a74eab32ea3f98c40183d3cf46f4d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 16 Aug 2015 23:24:14 +0300 Subject: [PATCH 0612/3047] Remove list with sources in synaxt.md, because it broke spellcheck --- docs/syntax.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index c698673b5..ca284e1a4 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -78,34 +78,34 @@ If we will look deeper, the tokenize step will be a longest part of parsing. So you should focus only on tokenizer performance. Other parts could be well written maintainable code. -1. Unfortunately, classes, functions and high level structures can slow down +Unfortunately, classes, functions and high level structures can slow down your tokenizer. Be ready to write dirty code with code repeating. This is why it is difficult to extend default [PostCSS tokenizer]. Copy paste will be a necessary evil. -2. Second optimization is using char codes instead of string. +Second optimization is using char codes instead of string. - ```js - // Slow - string[i] === '{'; +```js +// Slow +string[i] === '{'; - // Fast - const OPEN_CURLY = 123; // `{' - string.charCodeAt(i) === OPEN_CURLY; - ``` +// Fast +const OPEN_CURLY = 123; // `{' +string.charCodeAt(i) === OPEN_CURLY; +``` -3. Third optimization is “fast jumps”. If you find open quote, you can find - next close quote much faster by `indexOf`: +Third optimization is “fast jumps”. If you find open quote, you can find +next close quote much faster by `indexOf`: - ```js - // Simple jump - next = string.indexOf('"', currentPosition + 1); +```js +// Simple jump +next = string.indexOf('"', currentPosition + 1); - // Jump by RegExp - regexp.lastIndex = currentPosion + 1; - regexp.text(string); - next = regexp.lastIndex; - ``` +// Jump by RegExp +regexp.lastIndex = currentPosion + 1; +regexp.text(string); +next = regexp.lastIndex; +``` Parser can be well written class. There is no need in copy-paste and hardcore optimization there. You can extend default [PostCSS parser]. From 2a0adace687ef5d6a44cd567bcb33747770cafae Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sun, 16 Aug 2015 23:23:25 +0100 Subject: [PATCH 0613/3047] English fixes. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 081d3e497..9c7ebaf2d 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,9 @@ VK.com page: [postcss](https://vk.com/postcss). PostCSS itself is very small. It includes only a CSS parser, a CSS node tree API, a source map generator, and a node tree stringifier. -All styles transformations are made by plugins. And these plugins are just -small plain JS functions, which receive a CSS node tree, transform it, -and return a modified tree. +All of the style transformations are performed by plugins, which are +plain JS functions. Each plugin receives a CSS node tree, transforms it & then +returns the modified tree. You can use the [cssnext] plugin pack and write future CSS code right now: @@ -62,7 +62,7 @@ You can use the [cssnext] plugin pack and write future CSS code right now: } ``` -Or if you like the Sass syntax, you could use [PreCSS] plugin pack: +Or if you like the Sass syntax, you could use the [PreCSS] plugin pack: ```css @define-mixin social-icon $network $color { @@ -178,7 +178,7 @@ postcss(plugins).process('a {', { parser: safe }).then(function (result) { ### Syntaxes -* [`postcss-scss`] to works with SCSS *(but do not compile SCSS to CSS)*. +* [`postcss-scss`] to works with SCSS *(but does not compile SCSS to CSS)*. [`postcss-scss`]: https://github.com/postcss/postcss-scss From 56856ffa2553be0488d3358ae4de1b2a57b5e29d Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Mon, 17 Aug 2015 02:44:54 -0500 Subject: [PATCH 0614/3047] Add clarity, fix English grammar in API doc --- docs/api.md | 358 ++++++++++++++++++++++++++-------------------------- 1 file changed, 182 insertions(+), 176 deletions(-) diff --git a/docs/api.md b/docs/api.md index fd3200457..ba0487975 100644 --- a/docs/api.md +++ b/docs/api.md @@ -97,7 +97,8 @@ Arguments: * `initializer (function)`: will receive plugin options and should return functions to modify nodes in input CSS. -Also wrap will save plugin name and plugin PostCSS version: +The newly-wrapped function will provide both the name and PostCSS +version of the plugin: ```js var processor = postcss([replace]); @@ -106,8 +107,8 @@ processor.plugins[0].postcssVersion //=> '4.1.0' ``` The plugin function receives 2 arguments: [`Root` node] and [`Result`] instance. -Then it should mutate the passed `Root` node. Alternatively, create a new `Root` -node and override the `result.root` property. +The function should mutate the provided `Root` node. Alternatively, you can +create a new `Root` node and override the `result.root` property. ```js var cleaner = postcss.plugin('postcss-cleaner', function () { @@ -117,7 +118,7 @@ var cleaner = postcss.plugin('postcss-cleaner', function () { }); ``` -Plugins also expose a `process` method as a convenience, so that you can use +As a convenience, plugins also expose a `process` method so that you can use them as standalone tools. ```js @@ -126,7 +127,7 @@ cleaner.process(css, options); postcss([ cleaner(options) ]).process(css); ``` -Asynchronous plugin should return `Promise` instance. +Asynchronous plugins should return a `Promise` instance. ```js postcss.plugin('postcss-import', function () { @@ -156,7 +157,7 @@ postcss.plugin('postcss-caniuse-test', function () { }); ``` -Send data to next plugins using the [`Result#messages`] array. +Send data to other plugins using the [`Result#messages`] array. ### `postcss.root(props)` @@ -168,7 +169,7 @@ postcss.root({ after: '\n' }).toString() //=> "\n" Arguments: -* `props (object) optional`: properties for new node. +* `props (object) optional`: properties for the new root node. ### `postcss.atRule(props)` @@ -180,7 +181,7 @@ postcss.atRule({ name: 'charset' }).toString() //=> "@charset" Arguments: -* `props (object) optional`: properties for new node. +* `props (object) optional`: properties for the new at-rule node. ### `postcss.rule(props)` @@ -192,7 +193,7 @@ postcss.rule({ selector: 'a' }).toString() //=> "a {\n}" Arguments: -* `props (object) optional`: properties for new node. +* `props (object) optional`: properties for the new rule node. ### `postcss.decl(props)` @@ -204,7 +205,7 @@ postcss.decl({ prop: 'color', value: 'black' }).toString() //=> "color: black" Arguments: -* `props (object) optional`: properties for new node. +* `props (object) optional`: properties for the new declaration node. ### `postcss.comment(props)` @@ -216,11 +217,11 @@ postcss.comment({ text: 'test' }).toString() //=> "/* test */" Arguments: -* `props (object) optional`: properties for new node. +* `props (object) optional`: properties for the new comment node. ### `postcss.vendor` -Contains [Vendor module](#vendor-module) module. +Contains the [Vendor module](#vendor-module). ```js postcss.vendor.unprefixed('-moz-tab') //=> ['tab'] @@ -228,7 +229,7 @@ postcss.vendor.unprefixed('-moz-tab') //=> ['tab'] ### `postcss.list` -Contains [List module](#list-module) module. +Contains the [List module](#list-module). ```js postcss.list.space('5px calc(10% + 5px)') //=> ['5px', 'calc(10% + 5px)'] @@ -236,13 +237,13 @@ postcss.list.space('5px calc(10% + 5px)') //=> ['5px', 'calc(10% + 5px)'] ### `postcss.stringify(node, builder)` -Default function to convert nodes tree to CSS string. +Default function to convert a node tree into a CSS string. ## `Processor` class A `Processor` instance contains plugins to process CSS. Create one `Processor` instance, initialize its plugins, and then use that instance -on many CSS files. +on numerous CSS files. ```js var processor = postcss([autoprefixer, cssnext, cssgrace]); @@ -269,18 +270,18 @@ Arguments: * An object with a `postcss` method. PostCSS will use that method as described in #2. * Another `Processor` instance. PostCSS will copy plugins - from that instance to this one. + from that instance into this one. Plugins can also be added by passing them as arguments when creating a `postcss` instance (see [`postcss(plugins)`]). -Asynchronous Plugins should return `Promise` instance. +Asynchronous Plugins should return a `Promise` instance. ### `processor.process(css, opts)` -Parses source CSS and returns [`LazyResult`] instance. Because some plugins can -be asynchronous it doesn’t make any transformations. Transformations will -be applied in `LazyResult`’s methods. +Parses source CSS and returns a [`LazyResult`] instance. Because some plugins +can be asynchronous it doesn’t make any transformations. Transformations will +be applied in the `LazyResult`’s methods. ```js processor.process(css, { from: 'a.css', to: 'a.out.css' }).then(function (result) { @@ -291,7 +292,7 @@ processor.process(css, { from: 'a.css', to: 'a.out.css' }).then(function (result Arguments: * `css (string|#toString|Result)`: String with input CSS or any object - with `toString()` method, like file stream. Optionally, send [`Result`] + with a `toString()` method, like file stream. Optionally, send a [`Result`] instance and the processor will take the existing [`Root`] parser from it. * `opts (object) optional`: options: * `from`: the path of the CSS source file. You should always set `from`, @@ -314,7 +315,7 @@ processor.plugins.length //=> 2 ### `processor.version` -Contains current version of PostCSS. +Contains the current version of PostCSS. ```js postcss().version //=> '4.0.5' @@ -322,7 +323,7 @@ postcss().version //=> '4.0.5' ## `LazyResult` class -Promise proxy for result of PostCSS transformations. +A promise proxy for the result of PostCSS transformations. A `LazyResult` instance is returned by [`Processor#process(css, opts)`]. @@ -333,8 +334,8 @@ var lazy = postcss([cssnext]).process(css); ### `lazy.then(onFulfilled, onRejected)` Processes input CSS through synchronous and asynchronous plugins -and call `onFulfilled` with [`Result`] instance. If a plugin throws -an error, `onRejected` callback will be executed. +and calls `onFulfilled` with a [`Result`] instance. If a plugin throws +an error, the `onRejected` callback will be executed. ```js postcss([cssnext]).process(css).then(function(result) { @@ -347,7 +348,7 @@ This method is a standard [Promise] method. ### `lazy.catch(onRejected)` Processes input CSS through synchronous and asynchronous plugins -and call `onRejected` on errors from any plugin. +and calls `onRejected` for each error thrown in any plugin. ```js postcss([cssnext]).process(css).then(function(result) { @@ -361,20 +362,20 @@ This method is a standard [Promise] method. ### `lazy.toString()` -Alias for `LazyResult#css` property. +Alias for the `LazyResult#css` property. ### `lazy.css` -Processes input CSS through synchronous plugins, converts `Root` to CSS string -and returns [`Result#css`]. +Processes input CSS through synchronous plugins, converts `Root` to a CSS +string and returns [`Result#css`]. ```js processor.process(css).css; ``` -This property will work only with synchronous plugins. If processor contains -any asynchronous plugins it will throw a error. You should use -[`LazyResult#then()`] instead. +This property will only work with synchronous plugins. If the processor +contains any asynchronous plugins it will throw an error. In this case, +you should use [`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -384,7 +385,8 @@ postcss([cssnext]).then(function (result) { ### `lazy.content` -It is alias for `css` property to use with syntaxes generates non-CSS output. +An alias for the `css` property. Use it with syntaxes that generate non-CSS +output. ```js lazy.css === lazy.content; @@ -400,9 +402,9 @@ if ( result.map ) { } ``` -This property will work only with synchronous plugins. If processor contains -any asynchronous plugins it will throw an error. You should use -[`LazyResult#then()`] instead. +This property will only work with synchronous plugins. If the processor +contains any asynchronous plugins it will throw an error. In this case, +you should use [`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -417,9 +419,9 @@ postcss([cssnext]).then(function (result) { Processes input CSS through synchronous plugins and returns [`Result#root`](#resultroot). -This property will work only with synchronous plugins. If processor contains -any asynchronous plugins it will throw an error. You should use -[`LazyResult#then()`] instead. +This property will only work with synchronous plugins. If the processor +contains any asynchronous plugins it will throw an error. In this case, +you should use [`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -437,9 +439,9 @@ postcss([cssnext]).warnings().forEach(function (message) { }); ``` -This property will work only with synchronous plugins. If processor contains -any asynchronous plugins it will throw a error. You should use -[`LazyResult#then()`] instead. +This property will only work with synchronous plugins. If the processor +contains any asynchronous plugins it will throw an error. In this case, +you should use [`LazyResult#then()`] instead. ```js postcss([cssnext]).then(function (result) { @@ -453,9 +455,9 @@ postcss([cssnext]).then(function (result) { Processes input CSS through synchronous plugins and returns [`Result#messages`]. -This property will work only with synchronous plugins. If processor contains -any asynchronous plugins it will throw an error. You should use -[`LazyResult#then()`] instead. +This property will only work with synchronous plugins. If the processor +contains any asynchronous plugins it will throw an error. In this case, +you should use [`LazyResult#then()`] instead. ### `lazy.processor` @@ -495,7 +497,7 @@ Alias for [`Result#css`] property. ### `result.warn(text, opts)` -Creates [`Warning`] and adds it to [`Result#messages`]. +Creates an instance of [`Warning`] and adds it to [`Result#messages`]. ```js var plugin = postcss.plugin('postcss-important', function () { @@ -519,16 +521,16 @@ postcss([plugin]).process(css).then(function (result) { Arguments: -* `text (string)`: warning message. It will be used in `text` property of - message object. -* `opts (object) optional`: properties to message object. - * `node`: CSS node, that was a source of warning. - * `word (string)`: a word inside a node’s string, that should be highlighted - as source of warning. - * `index` (number): a index inside a node’s string, that should be highlighted - as source of warning. - * `plugin`: name of plugin that created this warning. `Result#warn()` will - fill it automatically with `plugin.postcssPlugin` value. +* `text (string)`: warning message. It will be used in the `text` property of + the message object. +* `opts (object) optional`: properties to assign to the message object. + * `node`: CSS node that was the source of the warning. + * `word (string)`: word inside a node’s string that should be highlighted + as the source of the warning. + * `index` (number): index inside a node’s string that should be highlighted + as the source of the warning. + * `plugin`: name of the plugin that created this warning. `Result#warn()` will + automatically fill it with the `plugin.postcssPlugin` value. ### `result.warnings()` @@ -551,7 +553,8 @@ postcss.parse('a{}').toResult().css //=> "a{}" ### `result.content` -It is alias for `css` property to use with syntaxes generates non-CSS output. +An alias for the `css` property. Use it with syntaxes that generate non-CSS +output. ```js result.css === result.content; @@ -582,7 +585,7 @@ if ( result.map ) { ### `result.root` -Contains [`Root` node] after all transformations. +Contains the [`Root` node] after all transformations. ```js root.toResult().root == root; @@ -590,8 +593,7 @@ root.toResult().root == root; ### `result.messages` -Contains messages from plugins. For example, warnings or custom messages -to plugins communication. +Contains messages from plugins (e.g., warnings or custom messages). Each message should have `type` and `plugin` properties. @@ -609,7 +611,7 @@ postcss.plugin('postcss-min-browser', function () { ``` Add a warning using [`Result#warn()`] and get all warnings -using [`Result#warnings()`](#resultwarnings) method. +using the [`Result#warnings()`](#resultwarnings) method. ### `result.processor` @@ -634,7 +636,7 @@ root.toResult(opts).opts == opts; ## `Warning` class -Warning from plugins. It can be created using [`Node#warn()`]. +Represents a plugin warning. It can be created using [`Node#warn()`]. ```js if ( decl.important ) { @@ -644,7 +646,7 @@ if ( decl.important ) { ### `warning.toString()` -Returns string with error position, message. +Returns a string with the error position and message. ```js warning.toString() //=> 'postcss-important:a.css:10:4: Try to avoid !important' @@ -652,7 +654,7 @@ warning.toString() //=> 'postcss-important:a.css:10:4: Try to avoid !important' ### `warning.text` -Contains warning message. +Contains the warning message. ```js warning.text //=> 'Try to avoid !important' @@ -660,8 +662,8 @@ warning.text //=> 'Try to avoid !important' ### `warning.plugin` -Contains name of plugin that created this warning. When you call -[`Node#warn()`], it will fill this property automatically. +Contains the name of the plugin that created this warning. When you call +[`Node#warn()`] it will fill this property automatically. ```js warning.plugin //=> 'postcss-important' @@ -669,7 +671,7 @@ warning.plugin //=> 'postcss-important' ### `warning.node` -Contains CSS node that caused warning. +Contains the CSS node that caused the warning. ```js warning.node.toString() //=> 'color: white !important' @@ -677,7 +679,7 @@ warning.node.toString() //=> 'color: white !important' ### `warning.line` -Line in input file with this warning source. +The line in the input file with this warning’s source. ```js warning.line //=> 5 @@ -685,7 +687,7 @@ warning.line //=> 5 ### `warning.column` -Column in input file with this warning source. +Column in the input file with this warning’s source. ```js warning.column //=> 4 @@ -693,7 +695,7 @@ warning.column //=> 4 ## `CssSyntaxError` class -CSS parser throws this error for broken CSS. +The CSS parser throws this error for broken CSS. ```js postcss.parse('a{') //=> CssSyntaxError @@ -708,7 +710,8 @@ throw node.error('Unknown variable', { plugin: 'postcss-vars' }); ### `error.toString()` -Returns string with error position, message and source code of broken part. +Returns a string with the error position, message and source code of the +broken part. ```js error.toString() //=> CssSyntaxError: app.css:1:1: Unclosed block @@ -718,7 +721,7 @@ error.toString() //=> CssSyntaxError: app.css:1:1: Unclosed block ### `error.showSourceCode(color)` -Returns a few lines of CSS source that caused error. +Returns a few lines of CSS source that caused the error. ```js error.showSourceCode() //=> @@ -730,16 +733,16 @@ error.showSourceCode() //=> Arguments: -* `color (boolean) optional`: should arrow will be colored to red by terminal +* `color (boolean) optional`: whether arrow will be colored red by terminal color codes. By default, PostCSS will use `process.stdout.isTTY` and `process.env.NODE_DISABLE_COLORS`. -If CSS has input source map without `sourceContent`, this method will return -an empty string. +If the CSS has an input source map without `sourceContent`, this method will +return an empty string. ### `error.message` -Contains full error text by GNU error format. +Contains full error text in the GNU error format. ```js error.message //=> 'a.css:1:1: Unclosed block' @@ -747,7 +750,7 @@ error.message //=> 'a.css:1:1: Unclosed block' ### `error.reason` -Contains only error description. +Contains only the error description. ```js error.reason //=> 'Unclosed block' @@ -755,7 +758,7 @@ error.reason //=> 'Unclosed block' ### `error.plugin` -Contains PostCSS plugin name if error did not come from CSS parser. +Contains the PostCSS plugin name if the error didn’t come from the CSS parser. ```js error.plugin //=> 'postcss-vars' @@ -765,18 +768,19 @@ PostCSS will fill it automatically. ### `error.file` -Contains absolute path to broken file, if use set `from` option to parser. +Contains the absolute path to the broken file. If you use it, send the `from` +option to the parser. ```js error.file //=> 'a.sass' ``` -PostCSS will use input source map to detect the original error location. -If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will use the input source map to detect the original error location. +If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -use `error.input.file`. +If you need the position in the PostCSS input (e.g., to debug the previous +compiler), use `error.input.file`. ```js error.file //=> 'a.sass' @@ -785,18 +789,18 @@ error.input.file //=> 'a.css' ### `error.line` -Contains source line of error. +Contains the source line of the error. ```js error.line //=> 2 ``` -PostCSS will use input source map to detect the original error location. If -you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will use the input source map to detect the original error location. +If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -use `error.input.line`. +If you need the position in the PostCSS input (e.g., to debug the previous +compiler), use `error.input.file`. ```js error.line //=> 2 @@ -805,18 +809,18 @@ error.input.line //=> 4 ### `error.column` -Contains source column of error. +Contains the source column of the error. ```js error.column //=> 1 ``` -PostCSS will use input source map to detect the original error location. If -you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will use the input source map to detect the original error location. +If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -use `error.input.column`. +If you need the position in the PostCSS input (e.g., to debug the previous +compiler), use `error.input.file`. ```js error.column //=> 1 @@ -825,18 +829,18 @@ error.input.column //=> 4 ### `error.source` -Contains source code of broken file. +Contains the source code of the broken file. ```js error.source //=> 'a {} b {' ``` -PostCSS will use input source map to detect the original error location. -If you wrote a Sass file, then compiled it to CSS and parsed it with PostCSS, +PostCSS will use the input source map to detect the original error location. +If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, PostCSS will show the original position in the Sass file. -If you need position in PostCSS input (for example, to debug previous compiler), -use `error.input.source`. +If you need the position in the PostCSS input (e.g., to debug the previous +compiler), use `error.input.file`. ```js error.source //=> 'a { b {} }' @@ -927,7 +931,7 @@ root.source.input.id //=> ### `input.from` The CSS source identifier. Contains [`input.file`](#inputfile) if the user set -the [`from` option], or [`input.id`](#inputid) if he/she did not. +the [`from` option], or [`input.id`](#inputid) if they did not. ```js var root = postcss.parse(css, { from: 'a.css' }); @@ -940,7 +944,7 @@ root.source.input.from //=> ### `input.map` Represents the input source map passed from a compilation step before PostCSS -(for example, from the Sass compiler). +(e.g., from the Sass compiler). `map.consumer()` returns an instance of the `SourceMapConsumer` class from the [`source-map`] library. @@ -952,7 +956,7 @@ root.source.input.map.consumer().sources //=> ['a.sass'] ### `input.origin(line, column)` Reads the input source map and returns a symbol position in the input source -(for example, in a Sass file that was compiled to CSS before being passed +(e.g., in a Sass file that was compiled to CSS before being passed to PostCSS): ```js @@ -961,7 +965,7 @@ root.source.input.origin(1, 1) //=> { source: 'a.css', line: 3, column: 1 } ## Nodes: common methods -All node classes have many common methods. +All node classes inherit the following common methods. ### `node.type` @@ -998,7 +1002,7 @@ decl.source.end //=> { line: 10, column: 12 } The property is used in source map generation. -If you create a node manually (for example, with `postcss.decl()`), +If you create a node manually (e.g., with `postcss.decl()`), that node will not have a `source` property and will be absent from the source map. For this reason, the plugin developer should consider cloning nodes to create new ones (in which case the new node’s source @@ -1024,26 +1028,27 @@ if ( atrule.name == 'add-link' ) { ### `node.raws` Contains information to generate byte-to-byte equal node string -as it was in origin input. - -Every parser saves its own properties, but default CSS parser use: - -* `before`: the space symbols before node. It stores also any non-standard - symbols before declaration like `_` from IE hack. -* `after`: the space symbols after last child of node to the end of the node. -* `between`: the symbols between property and value for declarations, - selector and `{` for rules, last parameter and `{` for at-rules. -* `semicolon`: contains `true` if last child has (optional) semicolon. -* `afterName`: the space between at-rule’s name and parameters. -* `left`: the space symbols between `/*` and comment’s text. -* `right`: the space symbols between comment’s text and `*/`. -* `important`: the content of important statement, +as it was in the origin input. + +Every parser saves its own properties, but the default CSS parser uses: + +* `before`: the space symbols before the node. It also stores any non-standard + symbols before the declaration, like `_` from an IE hack. +* `after`: the space symbols after the last child of the node to the end of the + node. +* `between`: the symbols between the property and value for declarations, + selector and `{` for rules, or last parameter and `{` for at-rules. +* `semicolon`: contains `true` if the last child has an (optional) semicolon. +* `afterName`: the space between the at-rule’s name and its parameters. +* `left`: the space symbols between `/*` and the comment’s text. +* `right`: the space symbols between the comment’s text and `*/`. +* `important`: the content of the important statement, if it is not just `!important`. -PostCSS cleans selectors, declaration’s values and at-rule’s parameters -from comments and extra spaces. But PostCSS stores origin content -in `raws` properties. So, if you will not change declaration value, -PostCSS will use raw value with comments. +PostCSS cleans selectors, declaration values and at-rule parameters +from comments and extra spaces, but it stores origin content +in `raws` properties. As such, if you don’t change a declaration’s value, +PostCSS will use the raw value with comments. ### `node.toString()` @@ -1066,7 +1071,7 @@ a small excerpt to facilitate debugging. If present, an input source map will be used to get the original position of the source, even from a previous compilation step -(for example, from Sass compilation). +(e.g., from Sass compilation). This method produces very useful error messages. @@ -1085,12 +1090,12 @@ Arguments: * `message (string)`: error description. * `opts (object) optional`: options. - * `plugin (string)`: plugin name, that created this error. + * `plugin (string)`: plugin name that created this error. PostCSS will set it automatically. - * `word (string)`: a word inside a node’s string, that should be highlighted - as source of error. - * `index` (number): a index inside a node’s string, that should be highlighted - as source of error. + * `word (string)`: a word inside a node’s string that should be highlighted + as the source of the error. + * `index` (number): an index inside a node’s string that should be highlighted + as the source of the error. ### `node.warn(result, message)` @@ -1108,13 +1113,13 @@ var plugin = postcss.plugin('postcss-deprecated', function () { Arguments: -* `result`: The [`Result`] instance which will receive the warning. +* `result`: The [`Result`] instance that will receive the warning. * `message (string)`: error description. ### `node.next()` and `node.prev()` -Returns the next/previous child of the node’s parent; or returns `undefined` -if the current node is the last/first child. +Returns the next/previous child of the node’s parent. +Returns `undefined` if the current node is the last/first child. ```js var annotation = decl.prev(); @@ -1133,8 +1138,8 @@ root.nodes[0].nodes[0].root() == root ### `node.remove()` -Removes the node from its parent, and cleans the `parent` property in the node -and its children. +Removes the node from its parent and cleans the `parent` properties from the +node and its children. ```js if ( decl.prop.match(/^-webkit-/) ) { @@ -1144,7 +1149,7 @@ if ( decl.prop.match(/^-webkit-/) ) { ### `node.replaceWith(...otherNodes)` -Inserts nodes before the current node, and removes the current node. +Inserts node(s) before the current node and removes the current node. ```js if ( atrule.name == 'mixin' ) { @@ -1156,7 +1161,7 @@ if ( atrule.name == 'mixin' ) { Returns a clone of the node. -The resulting cloned node and its (cloned) children will have clean `parent` +The resulting cloned node and its (cloned) children will have a clean `parent` and code style properties. ```js @@ -1168,7 +1173,7 @@ cloned.toString() //=> -moz-transform: scale(0) Arguments: -* `props (object) optional`: new properties to override them in clone. +* `props (object) optional`: new properties to override in the clone. ### `node.cloneBefore(props)` and `node.cloneAfter(props)` @@ -1181,14 +1186,14 @@ decl.cloneBefore({ prop: '-moz-' + decl.prop }); Arguments: -* `props (object) optional`: new properties to override them in clone. +* `props (object) optional`: new properties to override in the clone. ### `node.moveTo(newParent)` Removes the node from its current parent and inserts it at the end of `newParent`. -This will clean the `before` and `after` code style properties from the node, +This will clean the `before` and `after` code style properties from the node and replace them with the indentation style of `newParent`. It will also clean the `between` property if `newParent` is in another `Root`. @@ -1198,19 +1203,19 @@ atrule.moveTo(atrule.parent.parent); Arguments: -* `newParent: (Container)`: container node where current node will be moved. +* `newParent: (Container)`: container node where the current node will be moved. ### `node.moveBefore(otherNode)` and `node.moveAfter(otherNode)` Removes the node from its current parent and inserts it into a new parent before/after `otherNode`. -This will also clean the node’s code style properties just -as `node.moveTo(newParent)` does. +This will also clean the node’s code style properties just as it would in +`node.moveTo(newParent)`. Arguments: -* `otherNode (Node)`: node which will be after/before current node after moving. +* `otherNode (Node)`: node that will be after/before current node after moving. ### `node.style(prop, defaultType)` @@ -1232,7 +1237,7 @@ Arguments: ## Containers: common methods -The `Root`, `AtRule`, and `Rule` container nodes have some common methods +The `Root`, `AtRule`, and `Rule` container nodes inherit some common methods to help work with their children. Note that all containers can store *any* content. If you write a rule inside @@ -1267,7 +1272,7 @@ rule.last == rule.nodes[rule.nodes.length - 1]; ### `container.index(child)` -Returns `child`’s index within the container’s `nodes` array. +Returns a `child`’s index within the container’s `nodes` array. ```js rule.index( rule.nodes[2] ) //=> 2 @@ -1275,11 +1280,11 @@ rule.index( rule.nodes[2] ) //=> 2 Arguments: -* `child (Node)`: child of current container. +* `child (Node)`: child of the current container. ### `container.every(callback)` -Returns `true` if `callback` returns a true for all of the container’s children. +Returns `true` if `callback` returns true for all of the container’s children. ```js var noPrefixes = rule.every(function (decl) { @@ -1289,11 +1294,11 @@ var noPrefixes = rule.every(function (decl) { Arguments: -* `callback (function)`: iterator, that returns true or false. +* `callback (function)`: iterator. Returns true or false. ### `container.some(callback)` -Return `true` if `callback` returns a true value for (at least) one +Returns `true` if `callback` returns true for (at least) one of the container’s children. ```js @@ -1304,14 +1309,14 @@ var hasPrefix = rule.some(function (decl) { Arguments: -* `callback (function)`: iterator, returns true or false. +* `callback (function)`: iterator. Returns true or false. ### `container.each(callback)` Iterates through the container’s immediate children, calling `callback` for each child. -Returning `false` within `callback` will break iteration. +Returning `false` in the `callback` will break iteration. ```js var color; @@ -1325,7 +1330,7 @@ rule.each(function (decl) { Arguments: -* `callback (function)`: iterator, that will receive node itself and an index. +* `callback (function)`: iterator. Receives each node and its index. Unlike the `for {}`-cycle or `Array#forEach()` this iterator is safe if you are mutating the array of child nodes during iteration. @@ -1338,8 +1343,8 @@ var rule = root.first; for ( var i = 0; i < rule.nodes.length; i++ ) { var decl = rule.nodes[i]; decl.cloneBefore({ prop: '-webkit-' + decl.prop }); - // Cycle will be infinite, because cloneBefore move current node - // to next index + // Cycle will be infinite, because cloneBefore moves the current node + // to the next index } rule.each(function (decl) { @@ -1349,7 +1354,7 @@ rule.each(function (decl) { ``` `container.each()` only iterates through the container’s immediate children. -If you need to recursively iterate through all the container’s nodes, +If you need to recursively iterate through all the container’s descendant nodes, use `container.walk()`. ### `container.walk(callback)` @@ -1364,7 +1369,7 @@ root.walk(function (node) { Arguments: -* `callback (function)`: iterator, that will receive node itself and an index. +* `callback (function)`: iterator. Receives each node and its index. Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. @@ -1389,13 +1394,14 @@ Arguments: * `propFilter: (string|RegExp) optional`: string or regular expression to filter declarations by property name. - * `callback (function)`: iterator, that will receive node itself and an index. + * `callback (function)`: iterator. Receives each declaration node and its + index. -If you pass a `propFilter`, only those declarations whose property matches -`propFilter` will be iterated over. +If you pass a `propFilter`, iteration will only happen over declarations with +matching properties. ```js -// Make flat design +// Make a flat design root.walkDecls('border-radius', function (decl) { decl.remove(); }); @@ -1422,10 +1428,10 @@ Arguments: * `nameFilter: (string|RegExp) optional`: string or regular expression to filter at-rules by name. - * `callback (function)`: iterator, that will receive node itself and an index. + * `callback (function)`: iterator. Receives each at-rule and its index. -If you pass a `filter`, only those at-rules whose name matches `filter` -will be iterated over. +If you pass a `filter`, iteration will only happen over at-rules that have +matching names. ```js var first = false; @@ -1458,10 +1464,10 @@ Arguments: * `selectorFilter: (string|RegExp) optional`: string or regular expression to filter rules by selector. -* `callback (function)`: iterator, that will receive node itself and an index. +* `callback (function)`: iterator. Receives each rule node and its index. -If you pass a `selectorFilter`, only those rules whose selector matches -`selectorFilter` will be iterated over. +If you pass a `selectorFilter`, iteration will only happen over rules with +matching selectors. Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. @@ -1479,7 +1485,7 @@ root.walkComments(function (comment) { Arguments: -* `callback (function)`: iterator, that will receive node itself and an index. +* `callback (function)`: iterator. Receives each comment node and its index. Like `container.each()`, this method is safe to use if you are mutating arrays during iteration. @@ -1500,19 +1506,19 @@ root.replaceValues(/\d+rem/, { fast: 'rem' }, function (string) { Arguments: -* `pattern (string|RegExp)`: pattern, that we need to replace. -* `opts (object) optional`: options to speed up th search: +* `pattern (string|RegExp)`: replace pattern. +* `opts (object) optional`: options to speed up the search: * `props`: An array of property names. The method will only search for values that match `regexp` within declarations of listed properties. - * `fast`: A string that used to narrow down values and speed up + * `fast`: A string that’s used to narrow down values and speed up the regexp search. Searching every single value with a regexp can be slow. If you pass a `fast` string, PostCSS will first check whether the value contains the `fast` string; and only if it does will PostCSS check that value against `regexp`. For example, instead of just checking for `/\d+rem/` on all values, set `fast: 'rem'` to first check whether a value has the `rem` unit, and only if it does perform the regexp check. -* `callback (function|string)`: string to replace `pattern` or callback, that - will return new value. Callback will receive the same arguments as those +* `callback (function|string)`: string to replace `pattern` or callback that + returns a new value. The callback will receive the same arguments as those passed to a function parameter of [`String#replace`]. [`String#replace`]: (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter) @@ -1569,8 +1575,8 @@ Arguments: ### `container.removeChild(node)` -Removes `node` from the container, and the `parent` properties of `node` -and its children. +Removes `node` from the container and cleans the `parent` properties from the +node and its children. ```js rule.nodes.length //=> 5 @@ -1585,7 +1591,7 @@ Arguments: ### `container.removeAll()` -Removes all children from the container, and cleans their `parent` properties. +Removes all children from the container and cleans their `parent` properties. ```js rule.removeAll(); @@ -1625,8 +1631,8 @@ Arguments: Represents an at-rule. -This node will have a `nodes` property, representing its children, -if it is followed in the CSS by a `{}` block. +If it’s followed in the CSS by a `{}` block, this node will have a `nodes` +property representing its children. ```js @@ -1744,7 +1750,7 @@ root.first.last.important //=> undefined ## `Comment` node Represents a comment between declarations or statements (rule and at-rules). -Comments inside selectors, at-rules parameters, or declaration values +Comments inside selectors, at-rule parameters, or declaration values will be stored in the [`Node#raws`] properties explained above. ```js From 75e31fba70c0c2ded255969e5efde49589400451 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 17 Aug 2015 09:06:48 +0100 Subject: [PATCH 0615/3047] Fix postcss-scss description. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c7ebaf2d..f8c7fa156 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,7 @@ postcss(plugins).process('a {', { parser: safe }).then(function (result) { ### Syntaxes -* [`postcss-scss`] to works with SCSS *(but does not compile SCSS to CSS)*. +* [`postcss-scss`] to work with SCSS *(but does not compile SCSS to CSS)*. [`postcss-scss`]: https://github.com/postcss/postcss-scss From 0779eec154262eff0268088172b7757dd23427d5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 Aug 2015 12:33:15 +0300 Subject: [PATCH 0616/3047] Fix 80 columns line --- docs/api.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/api.md b/docs/api.md index ba0487975..595e1e3d1 100644 --- a/docs/api.md +++ b/docs/api.md @@ -25,15 +25,16 @@ The `postcss` function is the main entry point for PostCSS. var postcss = require('postcss'); ``` -For those using [TypeScript](http://www.typescriptlang.org/) with an -[ES6 compile target](https://github.com/Microsoft/TypeScript/wiki/tsconfig.json), -you can import the PostCSS API like so: +For those using TypeScript with an [ES6 compile target], you can import +the PostCSS API like so: ```ts /// import * as postcss from 'postcss'; ``` +[ES6 compile target]: https://github.com/Microsoft/TypeScript/wiki/tsconfig.json + ### `postcss(plugins)` Returns a new [`Processor`] instance that will apply `plugins` From a0c0804cef4e721cf1eeb8bfe51dff8f91a7e8c1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 Aug 2015 13:22:09 +0300 Subject: [PATCH 0617/3047] Remove depreacted methods from 5.0 --- d.ts/css-syntax-error.d.ts | 11 +++++------ d.ts/result.d.ts | 12 ++---------- lib/css-syntax-error.es6 | 6 ------ lib/result.es6 | 12 ------------ 4 files changed, 7 insertions(+), 34 deletions(-) diff --git a/d.ts/css-syntax-error.d.ts b/d.ts/css-syntax-error.d.ts index 34f7f8b5e..14d78a606 100644 --- a/d.ts/css-syntax-error.d.ts +++ b/d.ts/css-syntax-error.d.ts @@ -60,7 +60,7 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr /** * Contains full error text by GNU error format. */ - message: string, + message: string, /** * Contains source line of error. PostCSS will use the input source map * to detect the original error location. If you wrote a Sass file, then @@ -68,7 +68,7 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr * original position in the Sass file. If you need position in PostCSS * input (e.g., to debug previous compiler), use error.generated.line. */ - line?: number, + line?: number, /** * Contains the source column of the error. PostCSS will use input * source map to detect the original error location. If you wrote a Sass @@ -77,7 +77,7 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr * position in PostCSS input (e.g., to debug previous compiler), use * error.generated.column. */ - column?: number, + column?: number, /** * Contains source code of broken file. PostCSS will use input source * map to detect the original error location. If you wrote a Sass file, @@ -86,7 +86,7 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr * PostCSS input (e.g., to debug previous compiler), use * error.generated.source. */ - source?: string, + source?: string, /** * If parser's from option is set, contains absolute path to broken file. * PostCSS will use the input source map to detect the original error @@ -95,7 +95,7 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr * the Sass file. If you need the position in PostCSS input * (e.g., to debug previous compiler), use error.generated.file. */ - file?: string, + file?: string, /** * Contains PostCSS plugin name if error did not come from CSS parser. */ @@ -110,7 +110,6 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr * string. */ showSourceCode(color?: boolean): string; - private highlight(color); private setMozillaProps(); /** * diff --git a/d.ts/result.d.ts b/d.ts/result.d.ts index be736d0c7..2e8156adb 100644 --- a/d.ts/result.d.ts +++ b/d.ts/result.d.ts @@ -44,11 +44,11 @@ export default class Result implements postcss.Result { /** * The Processor instance used for this transformation. */ - processor?: Processor, + processor?: Processor, /** * Contains Root node after all transformations. */ - root?: Root, + root?: Root, /** * Options from the Processor#process(css, opts) or Root#toResult(opts) call * that produced this Result instance. @@ -72,12 +72,4 @@ export default class Result implements postcss.Result { * Alias for css property to use with syntaxes that generate non-CSS output. */ content: string; - /** - * Deprecated and will be removed in 5.0. Use result.opts.from instead. - */ - from: string; - /** - * Deprecated and will be removed in 5.0. Use result.opts.to instead. - */ - to: string; } diff --git a/lib/css-syntax-error.es6 b/lib/css-syntax-error.es6 index 529c6888e..7c788dae3 100644 --- a/lib/css-syntax-error.es6 +++ b/lib/css-syntax-error.es6 @@ -59,12 +59,6 @@ export default class CssSyntaxError extends SyntaxError { return '\n' + prev + broken + mark + next; } - highlight(color) { - warnOnce('CssSyntaxError#highlight is deprecated and will be ' + - 'removed in 5.0. Use error.showSourceCode instead.'); - return this.showSourceCode(color).replace(/^\n/, ''); - } - setMozillaProps() { let sample = Error.call(this, this.message); if ( sample.columnNumber ) this.columnNumber = this.column; diff --git a/lib/result.es6 b/lib/result.es6 index 30bad69e2..c3d963d25 100644 --- a/lib/result.es6 +++ b/lib/result.es6 @@ -34,16 +34,4 @@ export default class Result { return this.css; } - get from() { - warnOnce('result.from is deprecated and will be removed in 5.0. ' + - 'Use result.opts.from instead.'); - return this.opts.from; - } - - get to() { - warnOnce('result.to is deprecated and will be removed in 5.0. ' + - 'Use result.opts.to instead.'); - return this.opts.to; - } - } From a5621562780925ad1a189480db4f8dd0e4453468 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 Aug 2015 13:27:34 +0300 Subject: [PATCH 0618/3047] Add deprecated warning for CssSyntaxError#generated --- d.ts/css-syntax-error.d.ts | 1 + lib/css-syntax-error.es6 | 5 +++++ lib/result.es6 | 3 +-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/d.ts/css-syntax-error.d.ts b/d.ts/css-syntax-error.d.ts index 14d78a606..d213c0c85 100644 --- a/d.ts/css-syntax-error.d.ts +++ b/d.ts/css-syntax-error.d.ts @@ -53,6 +53,7 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr private lineNumber; private fileName; input: postcss.InputOrigin; + generated: postcss.InputOrigin; /** * The CSS parser throws this error for broken CSS. */ diff --git a/lib/css-syntax-error.es6 b/lib/css-syntax-error.es6 index 7c788dae3..3dacf1f59 100644 --- a/lib/css-syntax-error.es6 +++ b/lib/css-syntax-error.es6 @@ -71,4 +71,9 @@ export default class CssSyntaxError extends SyntaxError { return this.name + ': ' + this.message + this.showSourceCode(); } + get generated() { + warnOnce('CssSyntaxError#generated is depreacted. Use input instead.'); + return this.input; + } + } diff --git a/lib/result.es6 b/lib/result.es6 index c3d963d25..b156133e8 100644 --- a/lib/result.es6 +++ b/lib/result.es6 @@ -1,5 +1,4 @@ -import warnOnce from './warn-once'; -import Warning from './warning'; +import Warning from './warning'; export default class Result { From d857e25356e41cf3a7c3bbbd71892dd54f2f1ecb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 Aug 2015 16:26:54 +0300 Subject: [PATCH 0619/3047] Fix AppVeyor URL --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f8c7fa156..dc8b0199d 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,10 @@ But PostCSS is modular, 3-30 times faster, and much more powerful. Twitter account: [@postcss](https://twitter.com/postcss). VK.com page: [postcss](https://vk.com/postcss). -[appveyor-img]: https://img.shields.io/appveyor/ci/postcss/postcss.svg?label=windows +[appveyor-img]: https://img.shields.io/appveyor/ci/ai/postcss.svg?label=windows [travis-img]: https://img.shields.io/travis/postcss/postcss.svg?label=unix [chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg -[appveyor]: https://ci.appveyor.com/project/postcss/postcss +[appveyor]: https://ci.appveyor.com/project/ai/postcss [travis]: https://travis-ci.org/postcss/postcss [chat]: https://gitter.im/postcss/postcss From 10f1e4f544e6f06ea1a1b161175b9916ad167fd7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 Aug 2015 17:14:12 +0300 Subject: [PATCH 0620/3047] Fix deprecated methods --- lib/container.es6 | 70 +++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/lib/container.es6 b/lib/container.es6 index b8ebb6c35..304833ad4 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -37,12 +37,6 @@ export default class Container extends Node { if ( result === false ) return false; } - eachInside(callback) { - warnOnce('Container#eachInside is deprecated. ' + - 'Use Container#walk instead.'); - return this.walk(callback); - } - walk(callback) { return this.each( (child, i) => { let result = callback(child, i); @@ -55,12 +49,6 @@ export default class Container extends Node { }); } - eachDecl(prop, callback) { - warnOnce('Container#eachDecl is deprecated. ' + - 'Use Container#walkDecls instead.'); - return this.walkDecls(prop, callback); - } - walkDecls(prop, callback) { if ( !callback ) { callback = prop; @@ -87,12 +75,6 @@ export default class Container extends Node { } } - eachRule(selector, callback) { - warnOnce('Container#eachRule is deprecated. ' + - 'Use Container#walkRules instead.'); - return this.walkRules(selector, callback); - } - walkRules(selector, callback) { if ( !callback ) { callback = selector; @@ -120,12 +102,6 @@ export default class Container extends Node { } } - eachAtRule(name, callback) { - warnOnce('Container#eachAtRule is deprecated. ' + - 'Use Container#walkAtRules instead.'); - return this.walkRules(name, callback); - } - walkAtRules(name, callback) { if ( !callback ) { callback = name; @@ -152,12 +128,6 @@ export default class Container extends Node { } } - eachComment(callback) { - warnOnce('Container#eachComment is deprecated. ' + - 'Use Container#walkComments instead.'); - return this.walkRules(callback); - } - walkComments(callback) { return this.walk( (child, i) => { if ( child.type === 'comment' ) { @@ -187,6 +157,13 @@ export default class Container extends Node { return this; } + cleanRaws(keepBetween) { + super(keepBetween); + if ( this.nodes ) { + for ( let node of this.nodes ) node.cleanRaws(keepBetween); + } + } + insertBefore(exist, add) { exist = this.index(exist); @@ -338,11 +315,34 @@ export default class Container extends Node { return processed; } - cleanRaws(keepBetween) { - super(keepBetween); - if ( this.nodes ) { - for ( let node of this.nodes ) node.cleanRaws(keepBetween); - } + eachInside(callback) { + warnOnce('Container#eachInside is deprecated. ' + + 'Use Container#walk instead.'); + return this.walk(callback); + } + + eachDecl(prop, callback) { + warnOnce('Container#eachDecl is deprecated. ' + + 'Use Container#walkDecls instead.'); + return this.walkDecls(prop, callback); + } + + eachRule(selector, callback) { + warnOnce('Container#eachRule is deprecated. ' + + 'Use Container#walkRules instead.'); + return this.walkRules(selector, callback); + } + + eachAtRule(name, callback) { + warnOnce('Container#eachAtRule is deprecated. ' + + 'Use Container#walkAtRules instead.'); + return this.walkAtRules(name, callback); + } + + eachComment(callback) { + warnOnce('Container#eachComment is deprecated. ' + + 'Use Container#walkComments instead.'); + return this.walkComments(callback); } get semicolon() { From e94d9d68ec7c752cf6ac3a96b09f1844517f7ddb Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Mon, 17 Aug 2015 15:53:45 +0100 Subject: [PATCH 0621/3047] Syntax documentation fixes. --- docs/syntax.md | 146 +++++++++++++++++++++++++------------------------ 1 file changed, 74 insertions(+), 72 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index ca284e1a4..6608a67ae 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -1,10 +1,10 @@ # How to Write Custom Syntax -PostCSS can transforms styles in any syntax, not only in CSS. -You can write a custom syntax and transform styles in any format. +PostCSS can transform styles in any syntax, and is not limited to just CSS. +By writing a custom syntax, you can transform styles in any desired format. -Writing a custom syntax is much harder then writing just a PostCSS plugin. -But it is a awesome adventure. +Writing a custom syntax is much harder than writing a PostCSS plugin, but +it is an awesome adventure. There are 3 types of PostCSS syntax packages: @@ -14,10 +14,12 @@ There are 3 types of PostCSS syntax packages: ## Syntax -Good example of syntax is [SCSS]. Some users may want to change properties order -or add prefixes directly to SCSS sources. So we need SCSS input and output. +A good example of a custom syntax is [SCSS]. Some users may want to transform +SCSS sources with PostCSS plugins, for example if they need to add vendor +prefixes or change the property order. So this syntax should output SCSS from +an SCSS input. -Syntax API is very simple. It is just a object with `parse` and `stringify` +The syntax API is a very simple plain object, with `parse` & `stringify` functions: ```js @@ -31,12 +33,12 @@ module.exports = { ## Parser -Main example of parse is [Safe Parser], which parses broken CSS. -There is no sense to generate string with broken CSS, -so package provides only parser. +A good example of a parser is [Safe Parser], which parses malformed/broken CSS. +Because there is no point to generate broken output, this package only provides +a parser. -Parser API is a function, that receives string and returns [`Root`] node. -In second argument this function receives a object with PostCSS options. +The parser API is a function which receives a string & returns a [`Root`] node. +The second argument is a function which receives an object with PostCSS options. ```js var postcss = require('postcss'); @@ -53,37 +55,36 @@ module.exports = function (css, opts) { ### Main Theory -There are many books about parsers. But do not scary, CSS syntax is very easy, -so parser will be much simpler than programming language parsers. +There are many books about parsers; but do not worry because CSS syntax is +very easy, and so the parser will be much simpler than a programming language +parser. The default PostCSS parser contains two steps: -* [Tokenizer] to read input string char by char and build tokens array. - For example, it join spaces symbols to `['space', '\n ']` token, - or detect strings to `['string', '"\"{"']`. -* [Parser] to read tokens array, create node instances and build tree. +1. [Tokenizer] which reads input string character by character and builds a + tokens array. For example, it joins space symbols to a `['space', '\n ']` + token, and detects strings to a `['string', '"\"{"']` token. +2. [Parser] which reads the tokens array, creates node instances and + builds a tree. [Tokenizer]: https://github.com/postcss/postcss/blob/master/lib/tokenize.es6 [Parser]: https://github.com/postcss/postcss/blob/master/lib/parser.es6 ### Performance -Parsing input is a longest task in CSS processors. So it is very important -to have fast parser. +Parsing input is often the most time consuming task in CSS processors. So it +is very important to have a fast parser. -The main rule of optimization: there is no performance without benchmark. -You can look at [PostCSS benchmarks] to build your own. +The main rule of optimization is that there is no performance without a +benchmark. You can look at [PostCSS benchmarks] to build your own. -If we will look deeper, the tokenize step will be a longest part of parsing. -So you should focus only on tokenizer performance. Other parts could be -well written maintainable code. +Of parsing tasks, the tokenize step will often take the most time, so its +performance should be prioritized. Unfortunately, classes, functions and +high level structures can slow down your tokenizer. Be ready to write dirty +code with repeated statements. This is why it is difficult to extend the +default [PostCSS tokenizer]; copy & paste will be a necessary evil. -Unfortunately, classes, functions and high level structures can slow down -your tokenizer. Be ready to write dirty code with code repeating. -This is why it is difficult to extend default [PostCSS tokenizer]. -Copy paste will be a necessary evil. - -Second optimization is using char codes instead of string. +Second optimization is using character codes instead of strings. ```js // Slow @@ -94,8 +95,8 @@ const OPEN_CURLY = 123; // `{' string.charCodeAt(i) === OPEN_CURLY; ``` -Third optimization is “fast jumps”. If you find open quote, you can find -next close quote much faster by `indexOf`: +Third optimization is “fast jumps”. If you find open quotes, you can find +next closing quote much faster by `indexOf`: ```js // Simple jump @@ -107,8 +108,8 @@ regexp.text(string); next = regexp.lastIndex; ``` -Parser can be well written class. There is no need in copy-paste and -hardcore optimization there. You can extend default [PostCSS parser]. +The parser can be a well written class. There is no need in copy-paste and +hardcore optimization there. You can extend the default [PostCSS parser]. [PostCSS benchmarks]: https://github.com/postcss/benchmark [PostCSS tokenizer]: https://github.com/postcss/postcss/blob/master/lib/tokenize.es6 @@ -118,51 +119,51 @@ hardcore optimization there. You can extend default [PostCSS parser]. Every node should have `source` property to generate correct source map. This property contains `start` and `end` properties with `{ line, column }`, -and `input` property with [`Input`] instance. +and `input` property with an [`Input`] instance. -So your tokenizer should save position to every token to use set it to nodes -in parser. +Your tokenizer should save the original position so that you can propagate +the values to the parser, to ensure that the source map is correctly updated. [`Input`]: https://github.com/postcss/postcss/blob/master/lib/input.es6 ### Raw Values -Good PostCSS parser should provide all information (including spaces symbols) +A good PostCSS parser should provide all information (including spaces symbols) to generate byte-to-byte equal output. It is not so difficult, but respectful for user input and allow integration smoke tests. -Parser should save all addition symbols to [`node.raws`] object. -It is a open structure for you, you can add addition keys. +A parser should save all additional symbols to [`node.raws`] object. +It is a open structure for you, you can add additional keys. For example, [SCSS parser] saves comment types (`/* */` or `//`) in `node.raws.inline`. -Default parser cleans CSS values from comments and spaces. -It saves origin value with comments to `node.raws.value.raw` and use it, -if node value was not changed. +The default parser cleans CSS values from comments and spaces. +It saves the original value with comments to `node.raws.value.raw` and uses it, +if the node value was not changed. [SCSS parser]: https://github.com/postcss/postcss-scss [`node.raws`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws ### Tests -Of course, all parsers in PostCSS ecosystem must have tests. +Of course, all parsers in the PostCSS ecosystem must have tests. -If your parser just extend CSS syntax (like [SCSS] or [Safe Parser]), -you can use [PostCSS Parser Tests]. It contains unit and integration tests. +If your parser just extends CSS syntax (like [SCSS] or [Safe Parser]), +you can use the [PostCSS Parser Tests]. It contains unit & integration tests. [PostCSS Parser Tests]: https://github.com/postcss/postcss-parser-tests ## Stringifier -Style guide generator is good example of stringifier. It generates output HTML -with usage examples by component CSS. So there is no sense for parser -and package can contain only stringifier. +A style guide generator is a good example of a stringifier. It generates output +HTML which contains CSS components. For this use case, a parser isn't necessary, +so the package should just contain a stringifier. -Stringifier API is little bit more complicated, that parser API. -PostCSS generates source map. So stringifier can’t just return a string. -It must link every substring with source node. +The Stringifier API is little bit more complicated, than the parser API. +PostCSS generates a source map, so a stringifier can’t just return a string. +It must link every substring with its source node. -Stringifier is a function, that receives [`Root`] node and builder callback. +A Stringifier is a function which receives [`Root`] node and builder callback. Then it calls builder with every node’s string and node instance. ```js @@ -176,10 +177,10 @@ module.export = function (root, builder) { ### Main Theory -PostCSS [default stringifier] is just a class with method for each node type +PostCSS [default stringifier] is just a class with a method for each node type and many methods to detect raw properties. -In most cases it will be enough just to extent this class, +In most cases it will be enough just to extend this class, like in [SCSS stringifier]. [default stringifier]: https://github.com/postcss/postcss/blob/master/lib/stringifier.es6 @@ -187,17 +188,17 @@ like in [SCSS stringifier]. ### Builder Function -Builder function will be pass to `stringify` function as second argument. -For example, default PostCSS stringifier class saves it +A builder function will be passed to `stringify` function as second argument. +For example, the default PostCSS stringifier class saves it to `this.builder` property. Builder receives output substring and source node to append this substring -to final output. +to the final output. -Some nodes contains other nodes in the middle. For example, rule has `a {` -beginning, many declarations inside and `}` at the end. +Some nodes contain other nodes in the middle. For example, a rule has a `{` +at the beginning, many declarations inside and a closing `}`. -For this cases, you should pass a third argument to builder function: +For these cases, you should pass a third argument to builder function: `'start'` or `'end'` string: ```js @@ -208,25 +209,26 @@ this.builder('}', rule, 'end'); ### Raw Values -Good PostCSS syntax saves all symbols and provide byte-to-byte equal output -if there were no changes. +A good PostCSS custom syntax saves all symbols and provide byte-to-byte equal +output if there were no changes. This is why every node has [`node.raws`] object to store space symbol, etc. -But be ready, that any of this raw properties can be missed. Some nodes -can be built manually. Some nodes can loose indent on moving between parents. +Be careful, because sometimes these raw properties will not be present; some +nodes may be built manually, or may lose their indentation when they are moved +to another parent node. -This is why default stringifier has `raw()` method to autodetect raw property -by other nodes. For example, it will look at other nodes to detect indent size -and them multiply it with current node depth. +This is why the default stringifier has a `raw()` method to autodetect raw +properties by other nodes. For example, it will look at other nodes to detect +indent size and them multiply it with the current node depth. [`node.raws`]: https://github.com/postcss/postcss/blob/master/docs/api.md#node-raws ### Tests -Stringifier must have a tests too. +A stringifier must have tests too. -You can use unit and integration cases from [PostCSS Parser Tests]. -Just compare input CSS with CSS after you parser and stringifier. +You can use unit and integration test cases from [PostCSS Parser Tests]. +Just compare input CSS with CSS after your parser and stringifier. [PostCSS Parser Tests]: https://github.com/postcss/postcss-parser-tests From e36e5c5d17187d29240dac7886563ee8a39615d9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 18 Aug 2015 03:13:48 +0300 Subject: [PATCH 0622/3047] Fix poststylus link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc8b0199d..0dafb65a0 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ var postcss = require('postcss'); Read the [PostCSS API] for more details about the JS API. [Promise polyfill]: https://github.com/jakearchibald/es6-promise -[`poststylus`]: https://github.com/seaneking/poststylus +[poststylus]: https://github.com/seaneking/poststylus [PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md [Broccoli]: https://github.com/jeffjewiss/broccoli-postcss [CLI tool]: https://github.com/code42day/postcss-cli From 8a8ae23dc84d78ec5ef2e76c98058523eef4d227 Mon Sep 17 00:00:00 2001 From: Diego Fernandez Date: Tue, 18 Aug 2015 17:33:36 -0300 Subject: [PATCH 0623/3047] Update README.md --- .yaspellerrc | 1 + README.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.yaspellerrc b/.yaspellerrc index a9d4b5500..376569567 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -6,6 +6,7 @@ "ignoreCapitalization": true, "dictionary": [ "6to5", + "ASE" "AtCSS", "Autoprefixer", "Base64", diff --git a/README.md b/README.md index 0dafb65a0..1c2856b8c 100644 --- a/README.md +++ b/README.md @@ -318,6 +318,7 @@ See also [`precss`] plugins pack to add them by one line of code. ### Colors +* [`postcss-ase-colors`] replaces color names with values read from an ASE palette file. * [`postcss-brand-colors`] inserts company brand colors in the `brand-colors` module. * [`postcss-color-alpha`] transforms `#hex.a`, `black(alpha)` and `white(alpha)` @@ -596,6 +597,7 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost +[`postcss-ase-colors`]: https://github.com/dfernandez79/postcss-ase-colors ## How to Develop for PostCSS From 37a18caad0bfebcdf91dfca721094548d36d8988 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Tue, 18 Aug 2015 23:25:42 +0100 Subject: [PATCH 0624/3047] Update .yaspellerrc. --- .yaspellerrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 376569567..e6d245ad1 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -6,7 +6,7 @@ "ignoreCapitalization": true, "dictionary": [ "6to5", - "ASE" + "ASE", "AtCSS", "Autoprefixer", "Base64", From 3aaeb42540db5d5f3631d03c177441d5812db33e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Aug 2015 03:16:59 +0300 Subject: [PATCH 0625/3047] Fix links order --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1c2856b8c..dcb51263b 100644 --- a/README.md +++ b/README.md @@ -520,6 +520,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide [`postcss-will-change`]: https://github.com/postcss/postcss-will-change [`postcss-input-style`]: https://github.com/seaneking/postcss-input-style +[`postcss-ase-colors`]: https://github.com/dfernandez79/postcss-ase-colors [`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind @@ -586,18 +587,17 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-for`]: https://github.com/antyakushev/postcss-for [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-svg`]: https://github.com/Pavliko/postcss-svg -[`postcss-url`]: https://github.com/postcss/postcss-url -[`css-byebye`]: https://github.com/AoDev/css-byebye -[`cssfmt`]: https://github.com/morishitter/cssfmt +[`postcss-url`]: https://github.com/postcss/postcss-urlt [`stylehacks`]: https://github.com/ben-eb/stylehacks +[`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss +[`cssfmt`]: https://github.com/morishitter/cssfm [`doiuse`]: https://github.com/anandthakker/doiuse [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -[`postcss-ase-colors`]: https://github.com/dfernandez79/postcss-ase-colors ## How to Develop for PostCSS From 1a2dd55a4c2545f52d04130e05f5224c9d71aae4 Mon Sep 17 00:00:00 2001 From: Sean King Date: Wed, 19 Aug 2015 13:13:06 +1000 Subject: [PATCH 0626/3047] update rucksack link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dcb51263b..fc2cd3b04 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`stylelint`] contains plugins that lint your stylesheets. [`stylelint`]: https://github.com/stylelint/stylelint -[`rucksack`]: https://github.com/simplaio/rucksack +[`rucksack`]: http://simplaio.github.io/rucksack [`cssnano`]: https://github.com/ben-eb/cssnano [`cssnext`]: http://cssnext.io/ [`precss`]: https://github.com/jonathantneal/precss From 20914432c6a77a0deab7e4e025cbaf2ecaa57931 Mon Sep 17 00:00:00 2001 From: Denis Karabaza Date: Wed, 19 Aug 2015 16:07:02 +0300 Subject: [PATCH 0627/3047] Fixed broken link to postcss-url in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc2cd3b04..f60decdff 100644 --- a/README.md +++ b/README.md @@ -587,7 +587,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-for`]: https://github.com/antyakushev/postcss-for [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-svg`]: https://github.com/Pavliko/postcss-svg -[`postcss-url`]: https://github.com/postcss/postcss-urlt +[`postcss-url`]: https://github.com/postcss/postcss-url [`stylehacks`]: https://github.com/ben-eb/stylehacks [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace From 3e08baa687615ed85f2577999041c4e37a29f06d Mon Sep 17 00:00:00 2001 From: Denis Karabaza Date: Wed, 19 Aug 2015 17:29:56 +0300 Subject: [PATCH 0628/3047] Fixed broken link to cssfmt in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f60decdff..5fee26f07 100644 --- a/README.md +++ b/README.md @@ -593,7 +593,7 @@ See also plugins in modular minifier [`cssnano`]. [`cssgrace`]: https://github.com/cssdream/cssgrace [`csstyle`]: https://github.com/geddski/csstyle [`webpcss`]: https://github.com/lexich/webpcss -[`cssfmt`]: https://github.com/morishitter/cssfm +[`cssfmt`]: https://github.com/morishitter/cssfmt [`doiuse`]: https://github.com/anandthakker/doiuse [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss From 3526a50e7299a01a16bae96e25414db745c127f7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Aug 2015 19:01:26 +0300 Subject: [PATCH 0629/3047] Use released postcss-parser-tests --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index cf715b6ea..59c545960 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,9 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "postcss/postcss-parser-tests", + "postcss-parser-tests": "5.0.0", "gulp-json-editor": "2.2.1", - "babel-eslint": "4.0.5", + "babel-eslint": "4.0.10", "gulp-eslint": "1.0.0", "gulp-babel": "5.2.0", "gulp-mocha": "2.1.3", From ab66ad5466dee9c0589955e96e1b0391320caecf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Aug 2015 19:57:55 +0300 Subject: [PATCH 0630/3047] Deprecate prevMap instead of removing --- lib/root.es6 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/root.es6 b/lib/root.es6 index d5d64cec0..54880b50a 100644 --- a/lib/root.es6 +++ b/lib/root.es6 @@ -10,11 +10,6 @@ export default class Root extends Container { if ( !this.nodes ) this.nodes = []; } - remove(child) { - warnOnce('Root#remove is deprecated. Use Root#removeChild'); - this.removeChild(child); - } - removeChild(child) { child = this.index(child); @@ -55,4 +50,14 @@ export default class Root extends Container { return lazy.stringify(); } + remove(child) { + warnOnce('Root#remove is deprecated. Use Root#removeChild'); + this.removeChild(child); + } + + prevMap() { + warnOnce('Root#prevMap is deprecated. Use Root#source.input.map'); + return this.source.input.map; + } + } From e3bb55ec672f1cf1cbb90a8ed950ca7e894039c7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Aug 2015 21:54:45 +0300 Subject: [PATCH 0631/3047] Fix spellcheck --- .yaspellerrc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index e6d245ad1..68967dc72 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -49,6 +49,9 @@ "Andromalius", "Andrealphus", "Andras", + "Jed", + "Neal", + "Valac", "Briggs", "Bogdan", "Chadkin", @@ -108,7 +111,6 @@ "CSS4", "SVG", "SVGO", - "TODO", "JS", "js", "vs", From 698232a13f6e75a6b81fa4a697c8cea4bf463eb9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Aug 2015 21:56:32 +0300 Subject: [PATCH 0632/3047] Release 5.0 version --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60e7a91dd..01393dded 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,36 @@ +## 5.0 “President Valac” +* Remove `safe` option. Move Safe Parser to separate project. +* `Node#toString` does not include `before` for root nodes. +* Remove plugin returning `Root` API. +* Remove Promise polyfill for node.js 0.10. +* Deprecate `eachInside`, `eachDecl`, `eachRule`, `eachAtRule` and `eachComment` + in favor of `walk`, `walkDecl`, `walkRule`, `walkAtRule` and `walkComment` + (by Jed Mao). +* Deprecate `Container#remove` and `Node#removeSelf` + in favor of `Container#removeChild` and `Node#remove` (by Ben Briggs). +* Deprecate `Node#replace` in favor of `replaceWith` (by Ben Briggs). +* Deprecate raw properties in favor of `Node#raws` object. +* Deprecate `Node#style` in favor of `raw`. +* Deprecate `CssSyntaxError#generated` in favor of `input`. +* Deprecate `Node#cleanStyles` in favor of `cleanRaws`. +* Deprecate `Root#prevMap` in favor of `Root.source.input.map`. +* Add `syntax`, `parser` and `stringifier` options for Custom Syntaxes. +* Add stringifier option to `Node#toString`. +* Add `Result#content` alias for non-CSS syntaxes. +* Add `plugin.process(css)` shortcut to every plugin function (by Ben Briggs). +* Add multiple nodes support to insert methods (by Jonathan Neal). +* Add `Node#warn` shortcut (by Ben Briggs). +* Add `word` and `index` options to errors and warnings (by David Clark). +* Add `line`, `column` properties to `Warning`. +* Use `supports-color` library to detect color support in error output. +* Add type definitions for TypeScript plugin developers (by Jed Mao). +* `Rule#selectors` setter detects separators. +* Add `postcss.stringify` method. +* Throw descriptive errors for incorrectly formatted plugins. +* Add docs to npm release. +* Fix `url()` parsing. +* Fix Windows support (by Jed Mao). + ## 4.1.16 * Fix errors without stack trace. diff --git a/package.json b/package.json index 59c545960..7190fb5d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "4.1.16", + "version": "5.0.0", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", From 4e607a1d4da7efeca30eb7b75f6404d52f625bd0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Aug 2015 23:27:21 +0300 Subject: [PATCH 0633/3047] Fix walk methods names in CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01393dded..59baab335 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ * Remove plugin returning `Root` API. * Remove Promise polyfill for node.js 0.10. * Deprecate `eachInside`, `eachDecl`, `eachRule`, `eachAtRule` and `eachComment` - in favor of `walk`, `walkDecl`, `walkRule`, `walkAtRule` and `walkComment` + in favor of `walk`, `walkDecls`, `walkRules`, `walkAtRules` and `walkComments` (by Jed Mao). * Deprecate `Container#remove` and `Node#removeSelf` in favor of `Container#removeChild` and `Node#remove` (by Ben Briggs). From d45ad8ced1fdddf1aa995d609affbfad615ad683 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Wed, 19 Aug 2015 19:09:17 -0500 Subject: [PATCH 0634/3047] Fix postcss.d.ts export --- postcss.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postcss.d.ts b/postcss.d.ts index 264905347..c2418a811 100644 --- a/postcss.d.ts +++ b/postcss.d.ts @@ -1,4 +1,4 @@ declare module 'postcss' { import postcss from 'd.ts/postcss'; - export = postcss; + export default postcss; } From e7f2d0f955425fe4769adfae17309ca0768ca066 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 20 Aug 2015 23:38:52 +0300 Subject: [PATCH 0635/3047] Add temporary fix for 4.x plugins --- lib/container.es6 | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/container.es6 b/lib/container.es6 index 304833ad4..725c23b83 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -302,6 +302,7 @@ export default class Container extends Node { } let processed = nodes.map( (i) => { + if ( typeof i.raws === 'undefined' ) i = this.rebuild(i); if ( i.parent ) i = i.clone(); if ( typeof i.raws.before === 'undefined' ) { if ( sample && typeof sample.raws.before !== 'undefined' ) { @@ -315,6 +316,36 @@ export default class Container extends Node { return processed; } + rebuild(node, parent) { + let fix; + if ( node.type === 'root' ) { + let Root = require('./root'); + fix = new Root(); + } else if ( node.type === 'atrule' ) { + let AtRule = require('./at-rule'); + fix = new AtRule(); + } else if ( node.type === 'rule' ) { + let Rule = require('./rule'); + fix = new Rule(); + } else if ( node.type === 'decl' ) { + fix = new Declaration(); + } else if ( node.type === 'comment' ) { + fix = new Comment(); + } + + for ( let i in node ) { + if ( i === 'nodes' ) { + fix.nodes = node.nodes.map( j => this.rebuild(j, fix) ); + } else if ( i === 'parent' && parent ) { + fix.parent = parent; + } else if ( node.hasOwnProperty(i) ) { + fix[i] = node[i]; + } + } + + return fix; + } + eachInside(callback) { warnOnce('Container#eachInside is deprecated. ' + 'Use Container#walk instead.'); From 4c863afd03d9f15101beb5ef70133b12f996e299 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 20 Aug 2015 23:47:56 +0300 Subject: [PATCH 0636/3047] Use ESLint 1.2.1 with new rules --- .eslintrc | 3 +++ package.json | 6 +++--- test/postcss.es6 | 4 +--- test/processor.es6 | 6 +++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.eslintrc b/.eslintrc index 2255ee03d..0e24cd5f5 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,7 +9,9 @@ "no-unexpected-multiline": [2], "no-multiple-empty-lines": [2], "space-return-throw-case": [2], + "prefer-arrow-callback": [2], "no-constant-condition": [2], + "no-dupe-class-members": [2], "no-extra-boolean-cast": [2], "no-inner-declarations": [2], "no-this-before-super": [2], @@ -62,6 +64,7 @@ "no-spaced-func": [2], "no-unused-vars": [2], "spaced-comment": [2], + "block-spacing": [2], "no-delete-var": [2], "comma-spacing": [2], "no-extra-semi": [2], diff --git a/package.json b/package.json index 7190fb5d7..426018a20 100644 --- a/package.json +++ b/package.json @@ -31,15 +31,15 @@ "gulp-json-editor": "2.2.1", "babel-eslint": "4.0.10", "gulp-eslint": "1.0.0", - "gulp-babel": "5.2.0", + "gulp-babel": "5.2.1", "gulp-mocha": "2.1.3", "strip-ansi": "3.0.0", "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", "fs-extra": "0.23.1", - "eslint": "1.1.0", - "sinon": "1.15.4", + "eslint": "1.2.1", + "sinon": "1.16.1", "mocha": "2.2.5", "gulp": "3.9.0", "chai": "3.2.0", diff --git a/test/postcss.es6 b/test/postcss.es6 index 3673337ce..bad41dfbf 100644 --- a/test/postcss.es6 +++ b/test/postcss.es6 @@ -56,9 +56,7 @@ describe('postcss()', () => { it('creates plugin', () => { let plugin = postcss.plugin('test', (filter) => { return function (css) { - css.walkDecls(filter || 'two', function (decl) { - decl.remove(); - }); + css.walkDecls(filter || 'two', i => i.remove() ); }; }); diff --git a/test/processor.es6 b/test/processor.es6 index 65981c6f7..42cfd2420 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -267,9 +267,9 @@ describe('Processor', () => { let result = (new Processor([async])).process(''); result.then( () => { done('should not run then callback'); - }).catch(function (err) { + }).catch( (err) => { expect(err).to.eql(error); - result.catch(function (err2) { + result.catch( (err2) => { expect(err2).to.eql(error); done(); }); @@ -283,7 +283,7 @@ describe('Processor', () => { }; (new Processor([async])).process('').then( () => { done('should not run then callback'); - }).catch(function (err) { + }).catch( (err) => { expect(err).to.eql(error); done(); }); From 0c217d3d402ea8694a70773d42f1d5197e95068b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 20 Aug 2015 23:55:20 +0300 Subject: [PATCH 0637/3047] Release 5.0.1 version --- CHANGELOG.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59baab335..6c9ff8d48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.1 +* Fix PostCSS 4.x plugins compatibility. +* Fix type definition loading (Jed Mao). + ## 5.0 “President Valac” * Remove `safe` option. Move Safe Parser to separate project. * `Node#toString` does not include `before` for root nodes. diff --git a/package.json b/package.json index 426018a20..b99a8e697 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.0", + "version": "5.0.1", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", From 1b5bae7e6cc458c74bcd08aa6e11a61494a6b298 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Thu, 20 Aug 2015 19:16:49 -0500 Subject: [PATCH 0638/3047] Introduce code coverage with Isparta/Istanbul --- .gitignore | 2 ++ .npmignore | 2 ++ gulpfile.babel.js | 8 +------- package.json | 7 +++++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 21b706aad..965940a4a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ npm-debug.log build/ /postcss.js + +coverage/ diff --git a/.npmignore b/.npmignore index ff1648653..e9dbfce9e 100644 --- a/.npmignore +++ b/.npmignore @@ -12,3 +12,5 @@ appveyor.yml gulpfile.babel.js logo.svg + +coverage/ diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 06d2afe9a..2d990ef26 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -71,12 +71,6 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { }); }); -gulp.task('test', () => { - require('./'); - let mocha = require('gulp-mocha'); - return gulp.src('test/*.es6', { read: false }).pipe(mocha()); -}); - // Common -gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); +gulp.task('default', ['lint', 'spellcheck', 'integration']); diff --git a/package.json b/package.json index b99a8e697..d1a2a97cd 100644 --- a/package.json +++ b/package.json @@ -32,12 +32,13 @@ "babel-eslint": "4.0.10", "gulp-eslint": "1.0.0", "gulp-babel": "5.2.1", - "gulp-mocha": "2.1.3", "strip-ansi": "3.0.0", "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", "fs-extra": "0.23.1", + "istanbul": "0.3.18", + "isparta": "3.0.3", "eslint": "1.2.1", "sinon": "1.16.1", "mocha": "2.2.5", @@ -46,6 +47,8 @@ "del": "1.2.1" }, "scripts": { - "test": "gulp" + "check-coverage": "istanbul check-coverage --statements 89.12 --branches 81.85 --functions 87.29 --lines 91.71", + "cover": "isparta cover node_modules/mocha/bin/_mocha -i lib/*.es6", + "test": "gulp && npm run cover && npm run check-coverage" } } From 00166a8eb906b13986824f6413c637ca6a54c04b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 21 Aug 2015 12:13:17 +0300 Subject: [PATCH 0639/3047] Typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c9ff8d48..1c60c6cca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## 5.0.1 * Fix PostCSS 4.x plugins compatibility. -* Fix type definition loading (Jed Mao). +* Fix type definition loading (by Jed Mao). ## 5.0 “President Valac” * Remove `safe` option. Move Safe Parser to separate project. From b0a490290da7a049ecab9de8cb1fd9935ca970d3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Aug 2015 13:36:58 +0300 Subject: [PATCH 0640/3047] Return tests check on CI --- gulpfile.babel.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 2d990ef26..ac18e97c2 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -2,7 +2,7 @@ import gulp from 'gulp'; gulp.task('clean', (done) => { let del = require('del'); - del(['postcss.js', 'build/'], done); + del(['postcss.js', 'build/', 'coverage'], done); }); // Build @@ -63,6 +63,12 @@ gulp.task('spellcheck', (done) => { // Tests +gulp.task('test', () => { + require('./'); + let mocha = require('gulp-mocha'); + return gulp.src('test/*.es6', { read: false }).pipe(mocha()); +}); + gulp.task('integration', ['build:lib', 'build:package'], (done) => { let postcss = require('./build/lib/postcss'); let real = require('postcss-parser-tests/real'); @@ -73,4 +79,4 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { // Common -gulp.task('default', ['lint', 'spellcheck', 'integration']); +gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); From 106cfa2658d962d58b756ee1ecd72145b7e698fe Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Aug 2015 16:18:19 +0300 Subject: [PATCH 0641/3047] Move coverage to gulp --- gulpfile.babel.js | 37 +++++++++++++++++++++++++++++++++++++ index.js | 2 +- package.json | 8 ++++---- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index ac18e97c2..bb0c7178a 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -77,6 +77,43 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { }); }); +// Coverage + +gulp.task('coverage:instrument', () => { + require('./'); + let istanbul = require('gulp-istanbul'); + let isparta = require('isparta') + return gulp.src('lib/*.es6') + .pipe(istanbul({ + includeUntested: true, + instrumenter: isparta.Instrumenter + })) + .pipe(istanbul.hookRequire({ + extensions: ['.es6'] + })); +}); + +gulp.task('coverage:report', () => { + let istanbul = require('gulp-istanbul'); + return gulp.src('lib/*.es6', { read: false }) + .pipe(istanbul.writeReports()) + .pipe(istanbul.enforceThresholds({ + thresholds: { + global: { + statements: 89.12, + functions: 87.29, + branches: 81.85, + lines: 91 + } + } + })); +}); + +gulp.task('coverage', (done) => { + let runSequence = require('run-sequence'); + runSequence('coverage:instrument', 'test', 'coverage:report', done); +}); + // Common gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); diff --git a/index.js b/index.js index fc22f73d7..c57476ab5 100644 --- a/index.js +++ b/index.js @@ -1,2 +1,2 @@ -require('babel-core/register')({ extensions: ['.es6'], ignore: false }); +require('babel-core/register')({ extensions: ['.es6'] }); module.exports = require('./lib/postcss'); diff --git a/package.json b/package.json index d1a2a97cd..daf2486b0 100644 --- a/package.json +++ b/package.json @@ -29,15 +29,17 @@ "concat-with-sourcemaps": "1.0.2", "postcss-parser-tests": "5.0.0", "gulp-json-editor": "2.2.1", + "gulp-istanbul": "0.10.0", + "run-sequence": "1.1.2", "babel-eslint": "4.0.10", "gulp-eslint": "1.0.0", + "gulp-mocha": "2.1.3", "gulp-babel": "5.2.1", "strip-ansi": "3.0.0", "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", "fs-extra": "0.23.1", - "istanbul": "0.3.18", "isparta": "3.0.3", "eslint": "1.2.1", "sinon": "1.16.1", @@ -47,8 +49,6 @@ "del": "1.2.1" }, "scripts": { - "check-coverage": "istanbul check-coverage --statements 89.12 --branches 81.85 --functions 87.29 --lines 91.71", - "cover": "isparta cover node_modules/mocha/bin/_mocha -i lib/*.es6", - "test": "gulp && npm run cover && npm run check-coverage" + "test": "gulp" } } From 3d7e7b6037f9c8ebbcee58de18743ddb73b99640 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Aug 2015 16:21:03 +0300 Subject: [PATCH 0642/3047] Fix CI tests --- gulpfile.babel.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index bb0c7178a..cfa244352 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -82,7 +82,7 @@ gulp.task('integration', ['build:lib', 'build:package'], (done) => { gulp.task('coverage:instrument', () => { require('./'); let istanbul = require('gulp-istanbul'); - let isparta = require('isparta') + let isparta = require('isparta'); return gulp.src('lib/*.es6') .pipe(istanbul({ includeUntested: true, @@ -103,7 +103,7 @@ gulp.task('coverage:report', () => { statements: 89.12, functions: 87.29, branches: 81.85, - lines: 91 + lines: 90.68 } } })); @@ -116,4 +116,4 @@ gulp.task('coverage', (done) => { // Common -gulp.task('default', ['lint', 'spellcheck', 'test', 'integration']); +gulp.task('default', ['lint', 'spellcheck', 'coverage', 'integration']); From 9fce511703040933a1a8e51a65e5241a02fb75d3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Aug 2015 16:25:51 +0300 Subject: [PATCH 0643/3047] Fix 4.x hook in Container#remove --- lib/container.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/container.es6 b/lib/container.es6 index 725c23b83..e99d6bae9 100644 --- a/lib/container.es6 +++ b/lib/container.es6 @@ -200,7 +200,7 @@ export default class Container extends Node { } remove(child) { - if (child) { + if ( typeof child !== 'undefined' ) { warnOnce('Container#remove is deprecated. ' + 'Use Container#removeChild'); this.removeChild(child); From 9023dcf41e41f7535cc0f5b459d37cc6ce214776 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Aug 2015 16:59:03 +0300 Subject: [PATCH 0644/3047] Fix test for 5.0 API --- test/container.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/container.es6 b/test/container.es6 index 18cf29a7a..e57aa948d 100644 --- a/test/container.es6 +++ b/test/container.es6 @@ -135,7 +135,7 @@ describe('Container', () => { let size = 0; rule.each( () => { - rule.remove(0); + rule.removeChild(0); size += 1; }); From 0ea4c0829c72c85df5968543021b07472ba539f8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Aug 2015 17:11:03 +0300 Subject: [PATCH 0645/3047] Release 5.0.2 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c60c6cca..9c7c5ad69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 5.0.2 +* Fix `remove(index)` to be compatible with 4.x plugin. + ## 5.0.1 * Fix PostCSS 4.x plugins compatibility. * Fix type definition loading (by Jed Mao). diff --git a/package.json b/package.json index daf2486b0..e04b28ba1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.1", + "version": "5.0.2", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", From 24128b950a54a005a764a789c0ddad40e7494695 Mon Sep 17 00:00:00 2001 From: Tim Cheung Date: Sun, 23 Aug 2015 00:36:47 +0200 Subject: [PATCH 0646/3047] added german stylesheets --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5fee26f07..a98051328 100644 --- a/README.md +++ b/README.md @@ -447,11 +447,13 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. +* [`postcss-german-stylesheets`] German Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. * [`postcss-russian-units`] adds CSS support for russian units of length. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. +[`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets [`postcss-pseudo-elements-content`]:https://github.com/omgovich/postcss-pseudo-elements-content [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link From 55abf24918cf8559e2078f205177210cba73600c Mon Sep 17 00:00:00 2001 From: Kevin Yue Date: Sun, 23 Aug 2015 09:57:32 +0800 Subject: [PATCH 0647/3047] Add postcss-urlrev plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5fee26f07..902b291ec 100644 --- a/README.md +++ b/README.md @@ -352,6 +352,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. +* [`postcss-urlrev`] adds md5 hash strings to `url()`s ### Grids @@ -598,6 +599,7 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost +[`postcss-urlrev`]: https://github.com/yuezk/postcss-urlrev ## How to Develop for PostCSS From 149904e35f1f20be2bea4f2a9076927baf21068c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 23 Aug 2015 13:27:17 +0300 Subject: [PATCH 0648/3047] Fix links order --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e150da278..1fb3714b1 100644 --- a/README.md +++ b/README.md @@ -351,8 +351,8 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-svg-fallback`] converts SVG in your CSS to PNG files for IE 8. * [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. +* [`postcss-urlrev`] adds md5 hash strings to `url()`s. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. -* [`postcss-urlrev`] adds md5 hash strings to `url()`s ### Grids @@ -454,7 +454,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. -[`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets [`postcss-pseudo-elements-content`]:https://github.com/omgovich/postcss-pseudo-elements-content [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link @@ -462,6 +461,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback +[`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight [`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter @@ -556,6 +556,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-border`]: https://github.com/andrepolischuk/postcss-border [`postcss-center`]: https://github.com/jedmao/postcss-center [`postcss-circle`]: https://github.com/jedmao/postcss-circle +[`postcss-urlrev`]: https://github.com/yuezk/postcss-urlrev [`postcss-extend`]: https://github.com/travco/postcss-extend [`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid [`postcss-filter`]: https://github.com/alanev/postcss-filter @@ -601,7 +602,6 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -[`postcss-urlrev`]: https://github.com/yuezk/postcss-urlrev ## How to Develop for PostCSS From 4e6ba0aa2238fbb073bd88a3da01595f8ade7c05 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 23 Aug 2015 13:28:38 +0300 Subject: [PATCH 0649/3047] Clean up ASCII-art --- README.md | 296 +++++++++++++++++++++++++++--------------------------- 1 file changed, 148 insertions(+), 148 deletions(-) diff --git a/README.md b/README.md index 1fb3714b1..b5eddc89a 100644 --- a/README.md +++ b/README.md @@ -454,154 +454,154 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. * [`postcss-spiffing`] lets you use British English in your CSS. -[`postcss-pseudo-elements-content`]:https://github.com/omgovich/postcss-pseudo-elements-content -[`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets -[`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link -[`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets -[`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity -[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple -[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback -[`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets -[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates -[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight -[`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter -[`postcss-transform-shortcut`]: https://github.com/jonathantneal/postcss-transform-shortcut -[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties -[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face -[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors -[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments -[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors -[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries -[`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter -[`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors -[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha -[`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property -[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset -[`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables -[`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup -[`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm -[`postcss-local-constants`]: https://github.com/macropodhq/postcss-local-constants -[`postcss-remove-prefixes`]: https://github.com/johnotander/postcss-remove-prefixes -[`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type -[`postcss-color-function`]: https://github.com/postcss/postcss-color-function -[`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient -[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values -[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements -[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset -[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette -[`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone -[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables -[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty -[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer -[`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale -[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url -[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents -[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend -[`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units -[`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes -[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors -[`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix -[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals -[`postcss-sassy-mixins`]: https://github.com/andyjansson/postcss-sassy-mixins -[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media -[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit -[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer -[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant -[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax -[`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents -[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not -[`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback -[`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props -[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha -[`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale -[`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short -[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer -[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family -[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules -[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars -[`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units -[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide -[`postcss-will-change`]: https://github.com/postcss/postcss-will-change -[`postcss-input-style`]: https://github.com/seaneking/postcss-input-style -[`postcss-ase-colors`]: https://github.com/dfernandez79/postcss-ase-colors -[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter -[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray -[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind -[`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa -[`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack -[`postcss-functions`]: https://github.com/andyjansson/postcss-functions -[`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl -[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb -[`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix -[`postcss-image-set`]: https://github.com/alex499/postcss-image-set -[`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix -[`postcss-colormin`]: https://github.com/ben-eb/colormin -[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats -[`postcss-imperial`]: https://github.com/cbas/postcss-imperial -[`postcss-position`]: https://github.com/seaneking/postcss-position -[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing -[`postcss-triangle`]: https://github.com/jedmao/postcss-triangle -[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz -[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters -[`postcss-fontpath`]: https://github.com/seaneking/postcss-fontpath -[`postcss-reporter`]: https://github.com/postcss/postcss-reporter -[`postcss-easings`]: https://github.com/postcss/postcss-easings -[`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba -[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity -[`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer -[`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem -[`postcss-scopify`]: https://github.com/pazams/postcss-scopify -[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites -[`postcss-assets`]: https://github.com/borodean/postcss-assets -[`postcss-border`]: https://github.com/andrepolischuk/postcss-border -[`postcss-center`]: https://github.com/jedmao/postcss-center -[`postcss-circle`]: https://github.com/jedmao/postcss-circle -[`postcss-urlrev`]: https://github.com/yuezk/postcss-urlrev -[`postcss-extend`]: https://github.com/travco/postcss-extend -[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid -[`postcss-filter`]: https://github.com/alanev/postcss-filter -[`postcss-import`]: https://github.com/postcss/postcss-import -[`postcss-mixins`]: https://github.com/postcss/postcss-mixins -[`postcss-nested`]: https://github.com/postcss/postcss-nested -[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex -[`list-selectors`]: https://github.com/davidtheclark/list-selectors -[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim -[`postcss-focus`]: https://github.com/postcss/postcss-focus -[`css2modernizr`]: https://github.com/vovanbo/css2modernizr -[`font-magician`]: https://github.com/jonathantneal/postcss-font-magician -[`postcss-match`]: https://github.com/rtsao/postcss-match -[`postcss-short`]: https://github.com/jonathantneal/postcss-short -[`postcss-alias`]: https://github.com/seaneking/postcss-alias -[`perfectionist`]: https://github.com/ben-eb/perfectionist -[`immutable-css`]: https://github.com/johnotander/immutable-css -[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x -[`postcss-calc`]: https://github.com/postcss/postcss-calc -[`postcss-crip`]: https://github.com/johnie/postcss-crip -[`postcss-each`]: https://github.com/outpunk/postcss-each -[`postcss-epub`]: https://github.com/Rycochet/postcss-epub -[`postcss-grid`]: https://github.com/andyjansson/postcss-grid -[`postcss-host`]: https://github.com/vitkarpov/postcss-host -[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat -[`postcss-size`]: https://github.com/postcss/postcss-size -[`postcss-svgo`]: https://github.com/ben-eb/postcss-svgo -[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin -[`autoprefixer`]: https://github.com/postcss/autoprefixer -[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker -[`postcss-bem`]: https://github.com/ileri/postcss-bem -[`postcss-for`]: https://github.com/antyakushev/postcss-for -[`postcss-map`]: https://github.com/pascalduez/postcss-map -[`postcss-svg`]: https://github.com/Pavliko/postcss-svg -[`postcss-url`]: https://github.com/postcss/postcss-url -[`stylehacks`]: https://github.com/ben-eb/stylehacks -[`css-byebye`]: https://github.com/AoDev/css-byebye -[`cssgrace`]: https://github.com/cssdream/cssgrace -[`csstyle`]: https://github.com/geddski/csstyle -[`webpcss`]: https://github.com/lexich/webpcss -[`cssfmt`]: https://github.com/morishitter/cssfmt -[`doiuse`]: https://github.com/anandthakker/doiuse -[`pixrem`]: https://github.com/robwierzbowski/node-pixrem -[`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`lost`]: https://github.com/corysimmons/lost +[`postcss-pseudo-elements-content`]: https://github.com/omgovich/postcss-pseudo-elements-content +[`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets +[`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link +[`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets +[`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity +[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback +[`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets +[`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates +[`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight +[`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter +[`postcss-transform-shortcut`]: https://github.com/jonathantneal/postcss-transform-shortcut +[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties +[`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face +[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors +[`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments +[`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors +[`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries +[`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter +[`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors +[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property +[`postcss-generate-preset`]: https://github.com/simonsmith/postcss-generate-preset +[`postcss-media-variables`]: https://github.com/WolfgangKluge/postcss-media-variables +[`postcss-property-lookup`]: https://github.com/simonsmith/postcss-property-lookup +[`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm +[`postcss-local-constants`]: https://github.com/macropodhq/postcss-local-constants +[`postcss-remove-prefixes`]: https://github.com/johnotander/postcss-remove-prefixes +[`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type +[`postcss-color-function`]: https://github.com/postcss/postcss-color-function +[`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient +[`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values +[`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements +[`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette +[`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone +[`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables +[`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty +[`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer +[`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale +[`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url +[`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents +[`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend +[`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units +[`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes +[`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors +[`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix +[`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals +[`postcss-sassy-mixins`]: https://github.com/andyjansson/postcss-sassy-mixins +[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media +[`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit +[`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer +[`postcss-font-variant`]: https://github.com/postcss/postcss-font-variant +[`postcss-media-minmax`]: https://github.com/postcss/postcss-media-minmax +[`postcss-merge-idents`]: https://github.com/ben-eb/postcss-merge-idents +[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback +[`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props +[`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha +[`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale +[`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short +[`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer +[`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family +[`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules +[`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars +[`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units +[`postcss-style-guide`]: https://github.com/morishitter/postcss-style-guide +[`postcss-will-change`]: https://github.com/postcss/postcss-will-change +[`postcss-input-style`]: https://github.com/seaneking/postcss-input-style +[`postcss-ase-colors`]: https://github.com/dfernandez79/postcss-ase-colors +[`postcss-bem-linter`]: https://github.com/necolas/postcss-bem-linter +[`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray +[`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind +[`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa +[`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack +[`postcss-functions`]: https://github.com/andyjansson/postcss-functions +[`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl +[`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb +[`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix +[`postcss-image-set`]: https://github.com/alex499/postcss-image-set +[`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix +[`postcss-colormin`]: https://github.com/ben-eb/colormin +[`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-imperial`]: https://github.com/cbas/postcss-imperial +[`postcss-position`]: https://github.com/seaneking/postcss-position +[`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing +[`postcss-triangle`]: https://github.com/jedmao/postcss-triangle +[`postcss-verthorz`]: https://github.com/davidhemphill/postcss-verthorz +[`pleeease-filters`]: https://github.com/iamvdo/pleeease-filters +[`postcss-fontpath`]: https://github.com/seaneking/postcss-fontpath +[`postcss-reporter`]: https://github.com/postcss/postcss-reporter +[`postcss-easings`]: https://github.com/postcss/postcss-easings +[`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba +[`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer +[`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem +[`postcss-scopify`]: https://github.com/pazams/postcss-scopify +[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites +[`postcss-assets`]: https://github.com/borodean/postcss-assets +[`postcss-border`]: https://github.com/andrepolischuk/postcss-border +[`postcss-center`]: https://github.com/jedmao/postcss-center +[`postcss-circle`]: https://github.com/jedmao/postcss-circle +[`postcss-urlrev`]: https://github.com/yuezk/postcss-urlrev +[`postcss-extend`]: https://github.com/travco/postcss-extend +[`postcss-fakeid`]: https://github.com/pathsofdesign/postcss-fakeid +[`postcss-filter`]: https://github.com/alanev/postcss-filter +[`postcss-import`]: https://github.com/postcss/postcss-import +[`postcss-mixins`]: https://github.com/postcss/postcss-mixins +[`postcss-nested`]: https://github.com/postcss/postcss-nested +[`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex +[`list-selectors`]: https://github.com/davidtheclark/list-selectors +[`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim +[`postcss-focus`]: https://github.com/postcss/postcss-focus +[`css2modernizr`]: https://github.com/vovanbo/css2modernizr +[`font-magician`]: https://github.com/jonathantneal/postcss-font-magician +[`postcss-match`]: https://github.com/rtsao/postcss-match +[`postcss-short`]: https://github.com/jonathantneal/postcss-short +[`postcss-alias`]: https://github.com/seaneking/postcss-alias +[`perfectionist`]: https://github.com/ben-eb/perfectionist +[`immutable-css`]: https://github.com/johnotander/immutable-css +[`postcss-at2x`]: https://github.com/simonsmith/postcss-at2x +[`postcss-calc`]: https://github.com/postcss/postcss-calc +[`postcss-crip`]: https://github.com/johnie/postcss-crip +[`postcss-each`]: https://github.com/outpunk/postcss-each +[`postcss-epub`]: https://github.com/Rycochet/postcss-epub +[`postcss-grid`]: https://github.com/andyjansson/postcss-grid +[`postcss-host`]: https://github.com/vitkarpov/postcss-host +[`postcss-neat`]: https://github.com/jo-asakura/postcss-neat +[`postcss-size`]: https://github.com/postcss/postcss-size +[`postcss-svgo`]: https://github.com/ben-eb/postcss-svgo +[`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin +[`autoprefixer`]: https://github.com/postcss/autoprefixer +[`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker +[`postcss-bem`]: https://github.com/ileri/postcss-bem +[`postcss-for`]: https://github.com/antyakushev/postcss-for +[`postcss-map`]: https://github.com/pascalduez/postcss-map +[`postcss-svg`]: https://github.com/Pavliko/postcss-svg +[`postcss-url`]: https://github.com/postcss/postcss-url +[`stylehacks`]: https://github.com/ben-eb/stylehacks +[`css-byebye`]: https://github.com/AoDev/css-byebye +[`cssgrace`]: https://github.com/cssdream/cssgrace +[`csstyle`]: https://github.com/geddski/csstyle +[`webpcss`]: https://github.com/lexich/webpcss +[`cssfmt`]: https://github.com/morishitter/cssfmt +[`doiuse`]: https://github.com/anandthakker/doiuse +[`pixrem`]: https://github.com/robwierzbowski/node-pixrem +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`lost`]: https://github.com/corysimmons/lost ## How to Develop for PostCSS From 563446dc9cfdd671cf840cde8a1f3719163e1289 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 23 Aug 2015 13:31:24 +0300 Subject: [PATCH 0650/3047] Coverage clean up --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index cfa244352..3f437e686 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -95,7 +95,7 @@ gulp.task('coverage:instrument', () => { gulp.task('coverage:report', () => { let istanbul = require('gulp-istanbul'); - return gulp.src('lib/*.es6', { read: false }) + return gulp.src('test/*.es6', { read: false }) .pipe(istanbul.writeReports()) .pipe(istanbul.enforceThresholds({ thresholds: { From 6fcd6828cf040d9809b61603f4efbaa20938ac1f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 23 Aug 2015 13:32:48 +0300 Subject: [PATCH 0651/3047] Fix spellcheck warning --- .yaspellerrc | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 68967dc72..fc7500bf2 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -24,6 +24,7 @@ "poststylus", "Gofmt", "CI", + "MD5", "W3C", "WebP", "VK", diff --git a/README.md b/README.md index b5eddc89a..67956da83 100644 --- a/README.md +++ b/README.md @@ -351,7 +351,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-svg-fallback`] converts SVG in your CSS to PNG files for IE 8. * [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. -* [`postcss-urlrev`] adds md5 hash strings to `url()`s. +* [`postcss-urlrev`] adds MD5 hash strings to `url()`s. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. ### Grids From cd060e7645459ce6c39d7fe9050433e92f33ae0b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 23 Aug 2015 13:40:54 +0300 Subject: [PATCH 0652/3047] Add Midas stringifier --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 67956da83..6ab99ed17 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,12 @@ postcss(plugins).process('a {', { parser: safe }).then(function (result) { [`postcss-safe-parser`]: https://github.com/postcss/postcss-safe-parser +### Stringifiers + +* [`midas`] converts a CSS string to highlighted HTML. + +[`midas`]: https://github.com/ben-eb/midas + ## Plugins Go to [postcss.parts] for a searchable catalog of the plugins mentioned below. From 02dae4452a36e6016a0c5c5884e9da56c48acdf0 Mon Sep 17 00:00:00 2001 From: Dave Lunny Date: Sun, 23 Aug 2015 21:51:39 -0400 Subject: [PATCH 0653/3047] adds postcss-rgb-plz to list of plugins Adds the postcss-rgb-plz plugin to the list of plugins. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6ab99ed17..db18f1966 100644 --- a/README.md +++ b/README.md @@ -340,6 +340,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. +* [`postcss-rgb-plz`] converts 3 or 6 digit hex values to `rgb`. ### Images and Fonts @@ -553,6 +554,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-reporter`]: https://github.com/postcss/postcss-reporter [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba +[`postcss-rgb-plz`]: https://github.com/himynameisdave/postcss-rgb-plz [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem From 36586698359005c0789f5a4e635d9a0f98bd4450 Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Sun, 23 Aug 2015 21:43:16 -0500 Subject: [PATCH 0654/3047] Add postcss-middleware to readme --- README.md | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6ab99ed17..8c5515af3 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,16 @@ postcss([ require('cssnext')(), require('cssnano')() ]) }); ``` +You can use PostCSS as a Connect/Express middleware with +[postcss-middleware]: + +```js +var postcssMiddleware = require('postcss-middleware'); +var express = require('express'); +var app = express(); +app.use('/css', postcssMiddleware(/* options */); +``` + If you want to run PostCSS on node.js 0.10, add [Promise polyfill]: ```js @@ -148,16 +158,17 @@ var postcss = require('postcss'); Read the [PostCSS API] for more details about the JS API. -[Promise polyfill]: https://github.com/jakearchibald/es6-promise -[poststylus]: https://github.com/seaneking/poststylus -[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md -[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss -[CLI tool]: https://github.com/code42day/postcss-cli -[webpack]: https://github.com/postcss/postcss-loader -[Brunch]: https://github.com/iamvdo/postcss-brunch -[Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/postcss/gulp-postcss -[ENB]: https://github.com/theprotein/enb-postcss +[postcss-middleware]: https://github.com/jedmao/postcss-middleware +[Promise polyfill]: https://github.com/jakearchibald/es6-promise +[poststylus]: https://github.com/seaneking/poststylus +[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md +[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss +[CLI tool]: https://github.com/code42day/postcss-cli +[webpack]: https://github.com/postcss/postcss-loader +[Brunch]: https://github.com/iamvdo/postcss-brunch +[Grunt]: https://github.com/nDmitry/grunt-postcss +[Gulp]: https://github.com/postcss/gulp-postcss +[ENB]: https://github.com/theprotein/enb-postcss ## Custom Syntaxes From b4b5d420d615ba51911563b2f8d6031a65b800a0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 24 Aug 2015 12:21:01 +0300 Subject: [PATCH 0655/3047] Clean up Usage section --- README.md | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 8c5515af3..46c1bbb39 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ Start using PostCSS in just two steps: 2. Select plugins from the list below and add them to your PostCSS process. There are plugins for [Grunt], [Gulp], [webpack], [Broccoli], -[Brunch] and [ENB]. +[Brunch], [ENB], [Stylus] and [Connect/Express]. ```js gulp.task('css', function () { @@ -125,8 +125,6 @@ gulp.task('css', function () { }); ``` -You can also use PostCSS plugins with Stylus by using [poststylus]. - For other environments, you can use the [CLI tool] or the JS API: ```js @@ -139,16 +137,6 @@ postcss([ require('cssnext')(), require('cssnano')() ]) }); ``` -You can use PostCSS as a Connect/Express middleware with -[postcss-middleware]: - -```js -var postcssMiddleware = require('postcss-middleware'); -var express = require('express'); -var app = express(); -app.use('/css', postcssMiddleware(/* options */); -``` - If you want to run PostCSS on node.js 0.10, add [Promise polyfill]: ```js @@ -158,17 +146,17 @@ var postcss = require('postcss'); Read the [PostCSS API] for more details about the JS API. -[postcss-middleware]: https://github.com/jedmao/postcss-middleware -[Promise polyfill]: https://github.com/jakearchibald/es6-promise -[poststylus]: https://github.com/seaneking/poststylus -[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md -[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss -[CLI tool]: https://github.com/code42day/postcss-cli -[webpack]: https://github.com/postcss/postcss-loader -[Brunch]: https://github.com/iamvdo/postcss-brunch -[Grunt]: https://github.com/nDmitry/grunt-postcss -[Gulp]: https://github.com/postcss/gulp-postcss -[ENB]: https://github.com/theprotein/enb-postcss +[Promise polyfill]: https://github.com/jakearchibald/es6-promise +[Connect/Express]: https://github.com/jedmao/postcss-middleware +[PostCSS API]: https://github.com/postcss/postcss/blob/master/docs/api.md +[Broccoli]: https://github.com/jeffjewiss/broccoli-postcss +[CLI tool]: https://github.com/code42day/postcss-cli +[webpack]: https://github.com/postcss/postcss-loader +[Brunch]: https://github.com/iamvdo/postcss-brunch +[Stylus]: https://github.com/seaneking/poststylus +[Grunt]: https://github.com/nDmitry/grunt-postcss +[Gulp]: https://github.com/postcss/gulp-postcss +[ENB]: https://github.com/theprotein/enb-postcss ## Custom Syntaxes From 3c306620076000cc12fdb4431d40b64b134f6661 Mon Sep 17 00:00:00 2001 From: Maksim Koretskiy Date: Tue, 25 Aug 2015 08:27:35 +0300 Subject: [PATCH 0656/3047] Add postcss-all-unset to list of plugins --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 46c1bbb39..8529be120 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: ### Future CSS Syntax +* [`postcss-all-unset`] supports `all: unset` property right now. * [`postcss-color-function`] supports functions to transform colors. * [`postcss-color-gray`] supports the `gray()` function. * [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. @@ -533,6 +534,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa +[`postcss-all-unset`]: https://github.com/maximkoretskiy/postcss-all-unset [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-functions`]: https://github.com/andyjansson/postcss-functions [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl From 3bc68d75f814919cf9366ae674712e27a1ca5dce Mon Sep 17 00:00:00 2001 From: morishitter Date: Tue, 25 Aug 2015 15:24:45 +0900 Subject: [PATCH 0657/3047] typo in cssnext example --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46c1bbb39..a569c160b 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ You can use the [cssnext] plugin pack and write future CSS code right now: --mainColor: #ffbbaaff; } @custom-media --mobile (width <= 640px); -@custom-selector --heading h1, h2, h3, h4, h5, h6; +@custom-selector :--heading h1, h2, h3, h4, h5, h6; .post-article :--heading { color: color( var(--mainColor) blackness(+20%) ); From 2830de35ff216c27c45d71d0da93d7e83d8af4da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 25 Aug 2015 12:15:57 +0300 Subject: [PATCH 0658/3047] More clear descripton for all: unset --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a2a7ce7c8..bd6dcfa69 100644 --- a/README.md +++ b/README.md @@ -249,7 +249,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: ### Future CSS Syntax -* [`postcss-all-unset`] supports `all: unset` property right now. +* [`postcss-all-unset`] supports `all: unset` to clean inherit styles. * [`postcss-color-function`] supports functions to transform colors. * [`postcss-color-gray`] supports the `gray()` function. * [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. @@ -534,7 +534,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa -[`postcss-all-unset`]: https://github.com/maximkoretskiy/postcss-all-unset +[`postcss-all-unset`]: https://github.com/maximkoretskiy/postcss-all-unset [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-functions`]: https://github.com/andyjansson/postcss-functions [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl From 8c0d4e6f533223e765b4fbb763e079b7e90f5497 Mon Sep 17 00:00:00 2001 From: Dominik Piatek Date: Tue, 25 Aug 2015 14:44:40 +0100 Subject: [PATCH 0659/3047] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd6dcfa69..463f0bcb0 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ Read the [PostCSS API] for more details about the JS API. ## Custom Syntaxes -PostCSS can transforms styles in any syntax, not only in CSS. +PostCSS can transform styles in any syntax, not only in CSS. There are 3 special arguments in `process()` method to control syntax. You can even separately set input parser and output stringifier. From 8fd60b9cda1d984402381b0fd1c9d75be05e2c39 Mon Sep 17 00:00:00 2001 From: Maxim Koretskiy Date: Wed, 26 Aug 2015 08:15:34 +0300 Subject: [PATCH 0660/3047] Rename plugin postcss-all-unset in readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a0dc1aa3..6b2512d18 100644 --- a/README.md +++ b/README.md @@ -249,7 +249,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: ### Future CSS Syntax -* [`postcss-all-unset`] supports `all: unset` to clean inherit styles. +* [`postcss-all-property`] supports `all: initial` to clean inherit styles. * [`postcss-color-function`] supports functions to transform colors. * [`postcss-color-gray`] supports the `gray()` function. * [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. @@ -519,6 +519,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback [`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props +[`postcss-all-property`]: https://github.com/maximkoretskiy/postcss-all-property [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short @@ -535,7 +536,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa -[`postcss-all-unset`]: https://github.com/maximkoretskiy/postcss-all-unset [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-functions`]: https://github.com/andyjansson/postcss-functions [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl From 53f0477dab915ce36c4cfd6cfcd831f271f6593c Mon Sep 17 00:00:00 2001 From: Selwyn Date: Wed, 26 Aug 2015 12:39:21 +0200 Subject: [PATCH 0661/3047] Fix small spelling error --- docs/api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api.md b/docs/api.md index 595e1e3d1..416e4aaa0 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1458,7 +1458,7 @@ var selectors = []; root.walkRules(function (rule) { selectors.push(rule.selector); }); -console.log('You CSS uses ' + selectors.length + ' selectors'); +console.log('Your CSS uses ' + selectors.length + ' selectors'); ``` Arguments: From 65d8bdeba85f26909e3e2ab78ebd94aa174cbdd4 Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Wed, 26 Aug 2015 17:40:42 +0300 Subject: [PATCH 0662/3047] Fix api method name --- docs/api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api.md b/docs/api.md index 416e4aaa0..448abe8c5 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1218,7 +1218,7 @@ Arguments: * `otherNode (Node)`: node that will be after/before current node after moving. -### `node.style(prop, defaultType)` +### `node.raw(prop, defaultType)` Returns a code style property value. If the node is missing the code style property (because the node was manually built or cloned), PostCSS will try From 562a67ffa15702d753708fe47854fa74ad710d45 Mon Sep 17 00:00:00 2001 From: Maxim Koretskiy Date: Thu, 27 Aug 2015 12:05:42 +0300 Subject: [PATCH 0663/3047] Rename plugin postcss-all-property in readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b2512d18..1b96238d1 100644 --- a/README.md +++ b/README.md @@ -249,7 +249,6 @@ Or enable plugins directly in CSS using [`postcss-use`]: ### Future CSS Syntax -* [`postcss-all-property`] supports `all: initial` to clean inherit styles. * [`postcss-color-function`] supports functions to transform colors. * [`postcss-color-gray`] supports the `gray()` function. * [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. @@ -266,6 +265,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: to more widely supported CSS. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. +* [`postcss-initial`] supports `initial` keyword and `all: initial` to clean inherit styles. * [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. * [`postcss-pseudo-class-any-link`] adds `:any-link` pseudo-class. * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. @@ -519,7 +519,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback [`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props -[`postcss-all-property`]: https://github.com/maximkoretskiy/postcss-all-property [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short @@ -555,6 +554,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-reporter`]: https://github.com/postcss/postcss-reporter [`postcss-easings`]: https://github.com/postcss/postcss-easings [`postcss-hexrgba`]: https://github.com/seaneking/postcss-hexrgba +[`postcss-initial`]: https://github.com/maximkoretskiy/postcss-initial [`postcss-rgb-plz`]: https://github.com/himynameisdave/postcss-rgb-plz [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity [`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer From 0c8f6edb8acfdca091675eaee034d9ab8d6447ed Mon Sep 17 00:00:00 2001 From: talgautb Date: Thu, 27 Aug 2015 16:47:04 +0600 Subject: [PATCH 0664/3047] add postcss-currency plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1b96238d1..a2bf1fa9d 100644 --- a/README.md +++ b/README.md @@ -417,6 +417,7 @@ See also plugins in modular minifier [`cssnano`]. ### Others * [`postcss-class-prefix`] adds a prefix/namespace to class selectors. +* [`postcss-currency`] replaces name of currency with symbols. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. @@ -544,6 +545,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats +[`postcss-currency`]: https://github.com/talgautb/postcss-currency [`postcss-imperial`]: https://github.com/cbas/postcss-imperial [`postcss-position`]: https://github.com/seaneking/postcss-position [`postcss-spiffing`]: https://github.com/HashanP/postcss-spiffing From a79931c49c590d0dd04ed0dbea30b217db6d37ce Mon Sep 17 00:00:00 2001 From: Pascal Duez Date: Thu, 27 Aug 2015 17:45:20 +0200 Subject: [PATCH 0665/3047] Add postcss-apply to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a2bf1fa9d..5f20dfaf8 100644 --- a/README.md +++ b/README.md @@ -269,6 +269,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. * [`postcss-pseudo-class-any-link`] adds `:any-link` pseudo-class. * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. +* [`postcss-apply`] supports custom properties sets references * [`mq4-hover-shim`] supports the `@media (hover)` feature. See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. @@ -578,6 +579,7 @@ See also plugins in modular minifier [`cssnano`]. [`list-selectors`]: https://github.com/davidtheclark/list-selectors [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim [`postcss-focus`]: https://github.com/postcss/postcss-focus +[`postcss-apply`]: https://github.com/pascalduez/postcss-apply [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`font-magician`]: https://github.com/jonathantneal/postcss-font-magician [`postcss-match`]: https://github.com/rtsao/postcss-match From d926168e88be65f0fea5c78889cbd39dcf7889c5 Mon Sep 17 00:00:00 2001 From: admdh Date: Fri, 28 Aug 2015 11:09:23 +0200 Subject: [PATCH 0666/3047] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 5f20dfaf8..cc4f04e2d 100644 --- a/README.md +++ b/README.md @@ -365,9 +365,11 @@ See also [`precss`] plugins pack to add them by one line of code. ### Grids * [`postcss-grid`] adds a semantic grid system. +* [`postcss-simple-grid`] create grid with one line. * [`postcss-neat`] is a semantic and fluid grid framework. * [`lost`] feature-rich `calc()` grid system by Jeet author. + ### Optimizations * [`postcss-calc`] reduces `calc()` to values @@ -593,6 +595,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-each`]: https://github.com/outpunk/postcss-each [`postcss-epub`]: https://github.com/Rycochet/postcss-epub [`postcss-grid`]: https://github.com/andyjansson/postcss-grid +[`postcss-simple-grid`]: https://github.com/admdh/postcss-simple-grid [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`postcss-size`]: https://github.com/postcss/postcss-size From cbdba63f1c998baedfa48b2ebd7ce3edb6b1eb36 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 28 Aug 2015 12:13:17 +0300 Subject: [PATCH 0667/3047] Fix plugins order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc4f04e2d..9ecd9c126 100644 --- a/README.md +++ b/README.md @@ -528,6 +528,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family +[`postcss-simple-grid`]: https://github.com/admdh/postcss-simple-grid [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules [`postcss-simple-vars`]: https://github.com/postcss/postcss-simple-vars [`postcss-strip-units`]: https://github.com/whitneyit/postcss-strip-units @@ -595,7 +596,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-each`]: https://github.com/outpunk/postcss-each [`postcss-epub`]: https://github.com/Rycochet/postcss-epub [`postcss-grid`]: https://github.com/andyjansson/postcss-grid -[`postcss-simple-grid`]: https://github.com/admdh/postcss-simple-grid [`postcss-host`]: https://github.com/vitkarpov/postcss-host [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`postcss-size`]: https://github.com/postcss/postcss-size From c6ceab0920d0fe0a94146c9211acf87f36b7cc8a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 28 Aug 2015 12:24:03 +0300 Subject: [PATCH 0668/3047] Remove integration from CI, because it became too slow --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 3f437e686..94892f62c 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -116,4 +116,4 @@ gulp.task('coverage', (done) => { // Common -gulp.task('default', ['lint', 'spellcheck', 'coverage', 'integration']); +gulp.task('default', ['lint', 'spellcheck', 'coverage']); From 0accf88f55c8b08b478f2a3439d157b116d69774 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 28 Aug 2015 22:51:28 +0300 Subject: [PATCH 0669/3047] Update npm packages --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e04b28ba1..bfce6424c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "supports-color": "^3.1.0", "source-map": "^0.4.4", - "babel-core": "5.8.22", + "babel-core": "5.8.23", "js-base64": "^2.1.9" }, "devDependencies": { @@ -31,7 +31,7 @@ "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.2", - "babel-eslint": "4.0.10", + "babel-eslint": "4.1.0", "gulp-eslint": "1.0.0", "gulp-mocha": "2.1.3", "gulp-babel": "5.2.1", From 35045a9de9e37bba19b499d694985b95c5cfb97b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:15:53 +0300 Subject: [PATCH 0670/3047] Add start source to Root --- lib/parser.es6 | 2 +- package.json | 2 +- test/parse.es6 | 31 ------------------------------- test/result.es6 | 8 ++++++++ test/stringify.es6 | 2 ++ 5 files changed, 12 insertions(+), 33 deletions(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index ac53545c9..6e9a586b9 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -16,7 +16,7 @@ export default class Parser { this.spaces = ''; this.semicolon = false; - this.root.source = { input }; + this.root.source = { input, start: { line: 0, column: 0 } }; } tokenize() { diff --git a/package.json b/package.json index bfce6424c..93e789ea3 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "5.0.0", + "postcss-parser-tests": "postcss/postcss-parser-tests", "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.2", diff --git a/test/parse.es6 b/test/parse.es6 index 7e690eaa5..690e4855c 100644 --- a/test/parse.es6 +++ b/test/parse.es6 @@ -14,37 +14,6 @@ describe('postcss.parse()', () => { expect(parse(stream)).to.be.instanceOf(Root); }); - describe('empty file', () => { - - it('parses UTF-8 BOM', () => { - let css = parse('\uFEFF@host { a {\f} }'); - expect(css.first.raws.before).to.eql(''); - }); - - it('parses empty file', () => { - expect(parse('', { from: 'a.css' })).to.eql(new Root({ - raws: { - after: '' - }, - source: { - input: new Input('', { from: 'a.css' }) - } - })); - }); - - it('parses spaces', () => { - expect(parse(' \n', { from: 'a.css' })).to.eql(new Root({ - raws: { - after: ' \n' - }, - source: { - input: new Input(' \n', { from: 'a.css' }) - } - })); - }); - - }); - cases.each( (name, css, json) => { it('parses ' + name, () => { let parsed = cases.jsonify(parse(css, { from: name })); diff --git a/test/result.es6 b/test/result.es6 index a598550b3..51abb1e2d 100644 --- a/test/result.es6 +++ b/test/result.es6 @@ -45,6 +45,14 @@ describe('Result', () => { expect(result.messages[0].plugin).to.eql('test-plugin#one'); }); + it('allows Root', () => { + let result = new Result(); + let root = postcss.parse('a{}'); + result.warn('TT', { node: root }); + + expect(result.messages[0].toString()).to.eql(':0:0: TT'); + }); + }); describe('warnings()', () => { diff --git a/test/stringify.es6 b/test/stringify.es6 index 2c2722bc2..46045afe9 100644 --- a/test/stringify.es6 +++ b/test/stringify.es6 @@ -7,6 +7,8 @@ import cases from 'postcss-parser-tests'; describe('stringify', () => { cases.each( (name, css) => { + if ( name === 'bom.css' ) return; + it('stringifies ' + name, () => { let root = parse(css); let result = ''; From ac1ff125d603e08d1e3e20bd97e383e7bd7b8d6c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:18:13 +0300 Subject: [PATCH 0671/3047] We can not write comment about any cases --- test/rule.es6 | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/rule.es6 b/test/rule.es6 index 31973739a..054cc7f52 100644 --- a/test/rule.es6 +++ b/test/rule.es6 @@ -23,8 +23,6 @@ describe('Rule', () => { }); it('is smart about commas', () => { - // Note: We don’t have to care about unquoted attribute values - // (such as `[foo=a,b]`), because that is invalid CSS. let rule = new Rule({ selector: '[foo=\'a, b\'], a:-moz-any(:focus, [href*=\',\'])' }); From f8b6802c099be749a4e12c775aac5fa293ba4618 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:24:04 +0300 Subject: [PATCH 0672/3047] Fix selectors in Rul constructor --- lib/rule.es6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rule.es6 b/lib/rule.es6 index 326e72991..2e5dc1c41 100644 --- a/lib/rule.es6 +++ b/lib/rule.es6 @@ -16,8 +16,8 @@ export default class Rule extends Container { } set selectors(values) { - let match = this.selector.match(/,\s*/); - let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen'); + let match = this.selector ? this.selector.match(/,\s*/) : null; + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen'); this.selector = values.join(sep); } From b286ed7556a4512c00079343ceb3273f6424b76e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:24:56 +0300 Subject: [PATCH 0673/3047] Add test for selectors in constructor --- test/rule.es6 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/rule.es6 b/test/rule.es6 index 054cc7f52..9ddf73434 100644 --- a/test/rule.es6 +++ b/test/rule.es6 @@ -55,6 +55,11 @@ describe('Rule', () => { expect(rule.selector).to.eql('b, strong'); }); + it('works in constructor', () => { + let rule = new Rule({ selectors: ['a', 'b'] }); + expect(rule.selector).to.eql('a, b'); + }); + }); describe('toString()', () => { From f93d23abf509b4b77caa54f6c7460789716c56e6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:25:11 +0300 Subject: [PATCH 0674/3047] Clean up --- test/parse.es6 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/parse.es6 b/test/parse.es6 index 690e4855c..98d502a6f 100644 --- a/test/parse.es6 +++ b/test/parse.es6 @@ -1,4 +1,3 @@ -import Input from '../lib/input'; import parse from '../lib/parse'; import Root from '../lib/root'; From 6567bfc93c3781bd91dea00dd20361ee5fe4ff40 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:32:30 +0300 Subject: [PATCH 0675/3047] Better url() parser --- lib/tokenize.es6 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/tokenize.es6 b/lib/tokenize.es6 index b59939ec6..0befefbca 100644 --- a/lib/tokenize.es6 +++ b/lib/tokenize.es6 @@ -86,7 +86,9 @@ export default function tokenize(input) { case OPEN_PARENTHESES: prev = tokens.length ? tokens[tokens.length - 1][1] : ''; n = css.charCodeAt(pos + 1); - if ( prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE ) { + if ( prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && + n !== SPACE && n !== NEWLINE && n !== TAB && + n !== FEED && n !== CR ) { next = pos; do { escaped = false; From db348110c91359f95068d16bd6b608302edeafab Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 00:58:40 +0300 Subject: [PATCH 0676/3047] Update npm dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 93e789ea3..4250f13b1 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "postcss/postcss-parser-tests", + "postcss-parser-tests": "5.0.1", "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.2", @@ -39,9 +39,9 @@ "yaspeller": "2.5.0", "gulp-util": "3.0.6", "gulp-run": "1.6.10", - "fs-extra": "0.23.1", + "fs-extra": "0.24.0", "isparta": "3.0.3", - "eslint": "1.2.1", + "eslint": "1.3.0", "sinon": "1.16.1", "mocha": "2.2.5", "gulp": "3.9.0", From 264236ca59694593ffe091e3b75b0f42154d3561 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 29 Aug 2015 01:00:47 +0300 Subject: [PATCH 0677/3047] Release 5.0.3 version --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c7c5ad69..105d1835f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 5.0.3 +* Fix `url()` parsing. +* Fix using `selectors` in `Rule` constructor. +* Add start source to `Root` node. + ## 5.0.2 * Fix `remove(index)` to be compatible with 4.x plugin. diff --git a/package.json b/package.json index 4250f13b1..5ae097f77 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.2", + "version": "5.0.3", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", From c63c430b53bfe996b99a649b4eca0fdadc53f77a Mon Sep 17 00:00:00 2001 From: Maxim Koretskiy Date: Sat, 29 Aug 2015 03:15:45 +0300 Subject: [PATCH 0678/3047] Add postcss-autoreset plugin to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9ecd9c126..f9bada56f 100644 --- a/README.md +++ b/README.md @@ -419,6 +419,7 @@ See also plugins in modular minifier [`cssnano`]. ### Others +* [`postcss-autoreset`] automatically adds reset styles. * [`postcss-class-prefix`] adds a prefix/namespace to class selectors. * [`postcss-currency`] replaces name of currency with symbols. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. @@ -540,6 +541,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa +[`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-functions`]: https://github.com/andyjansson/postcss-functions [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl From 6a54c583ff6e0504af6be86a454fe00a7f0223d2 Mon Sep 17 00:00:00 2001 From: morishitter Date: Mon, 31 Aug 2015 17:43:59 +0900 Subject: [PATCH 0679/3047] add Fly plugin to README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f9bada56f..c708b9b7b 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ Start using PostCSS in just two steps: 2. Select plugins from the list below and add them to your PostCSS process. There are plugins for [Grunt], [Gulp], [webpack], [Broccoli], -[Brunch], [ENB], [Stylus] and [Connect/Express]. +[Brunch], [ENB], [Fly], [Stylus] and [Connect/Express]. ```js gulp.task('css', function () { @@ -157,6 +157,7 @@ Read the [PostCSS API] for more details about the JS API. [Grunt]: https://github.com/nDmitry/grunt-postcss [Gulp]: https://github.com/postcss/gulp-postcss [ENB]: https://github.com/theprotein/enb-postcss +[Fly]: https://github.com/postcss/fly-postcss ## Custom Syntaxes From 4908113e45495b70a1d6e90e00dfa75da4610d34 Mon Sep 17 00:00:00 2001 From: Mohammad Younes Date: Mon, 31 Aug 2015 18:56:40 +0300 Subject: [PATCH 0680/3047] Use appropriate End-of-line marker for current OS. Related https://github.com/MohammadYounes/rtlcss/issues/40 --- lib/map-generator.es6 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/map-generator.es6 b/lib/map-generator.es6 index 8b077561d..712938cda 100644 --- a/lib/map-generator.es6 +++ b/lib/map-generator.es6 @@ -1,6 +1,7 @@ import { Base64 } from 'js-base64'; import mozilla from 'source-map'; import path from 'path'; +import os from 'os'; export default class { @@ -135,7 +136,7 @@ export default class { content = this.outputFile() + '.map'; } - this.css += '\n/*# sourceMappingURL=' + content + ' */'; + this.css += os.EOL + '/*# sourceMappingURL=' + content + ' */'; } outputFile() { From 2da373653d1ae7e164e6aa716ea6f7327bb090e9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 31 Aug 2015 20:09:28 +0300 Subject: [PATCH 0681/3047] Shorter link to repository from package.json --- package.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index 5ae097f77..6814aa92d 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,7 @@ ], "author": "Andrey Sitnik ", "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/postcss/postcss.git" - }, + "repository": "postcss/postcss", "dependencies": { "supports-color": "^3.1.0", "source-map": "^0.4.4", From 60ab3f8fad9a76cca9cd0631681f6503fa39c554 Mon Sep 17 00:00:00 2001 From: Mohammad Younes Date: Mon, 31 Aug 2015 21:52:27 +0300 Subject: [PATCH 0682/3047] Update tests to match OS end-of-line marker --- test/map.es6 | 9 +++++---- test/processor.es6 | 3 ++- test/root.es6 | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/test/map.es6 b/test/map.es6 index e250a1997..48df3c334 100644 --- a/test/map.es6 +++ b/test/map.es6 @@ -5,6 +5,7 @@ import mozilla from 'source-map'; import fs from 'fs-extra'; import { expect } from 'chai'; import path from 'path'; +import os from 'os'; let consumer = map => mozilla.SourceMapConsumer.fromSourceMap(map); @@ -108,7 +109,7 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); + expect(result.css).to.eql('a { }' + os.EOL +'/*# sourceMappingURL=b.css.map */'); }); it('misses source map annotation, if user ask', () => { @@ -147,7 +148,7 @@ describe('source maps', () => { map: { annotation: 'maps/b.map' } }); - expect(result.css).to.eql('a { }\n/*# sourceMappingURL=maps/b.map */'); + expect(result.css).to.eql('a { }' + os.EOL + '/*# sourceMappingURL=maps/b.map */'); let map = consumer(result.map); expect(map.file).to.eql('../b.css'); @@ -427,7 +428,7 @@ describe('source maps', () => { it('works without file names', () => { let step1 = doubler.process('a { }', { map: true }); let step2 = doubler.process(step1.css); - expect(step2.css).to.match(/a \{ \}\n\/\*/); + expect(step2.css).to.match(new RegExp(('a { }' + os.EOL + '/*').replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))); }); it('supports UTF-8', () => { @@ -474,7 +475,7 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); + expect(result.css).to.eql('a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); }); it('does not update annotation on request', () => { diff --git a/test/processor.es6 b/test/processor.es6 index 42cfd2420..40f6a4a41 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -8,6 +8,7 @@ import Root from '../lib/root'; import { expect } from 'chai'; import sinon from 'sinon'; import path from 'path'; +import os from 'os'; let prs = () => new Root({ raws: { after: 'ok' } }); let str = (node, builder) => { @@ -389,7 +390,7 @@ describe('Processor', () => { let processor = new Processor([]); processor.process('a{}', { map: true, stringifier: str }) .then( (result) => { - expect(result.css).to.match(/^\!\n\/\*# sourceMap/); + expect(result.css).to.match(new RegExp('^'+ ( '!' + os.EOL + '/*# sourceMap').replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))); done(); }); }); diff --git a/test/root.es6 b/test/root.es6 index 2c87e8b0a..c01e1a142 100644 --- a/test/root.es6 +++ b/test/root.es6 @@ -2,6 +2,7 @@ import Result from '../lib/result'; import parse from '../lib/parse'; import { expect } from 'chai'; +import os from 'os'; describe('Root', () => { @@ -89,7 +90,7 @@ describe('Root', () => { let result = root.toResult({ map: true }); expect(result).to.be.a.instanceOf(Result); - expect(result.css).to.match(/a \{\}\n\/\*# sourceMappingURL=/); + expect(result.css).to.match(new RegExp(('a {}' + os.EOL + '/*# sourceMappingURL=').replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))); }); }); From df6693b99160f732c3f30568d2bdcd76206826eb Mon Sep 17 00:00:00 2001 From: Mohammad Younes Date: Mon, 31 Aug 2015 22:17:23 +0300 Subject: [PATCH 0683/3047] fix lint errors :satisfied: --- test/map.es6 | 16 ++++++++++++---- test/processor.es6 | 5 ++++- test/root.es6 | 4 +++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/test/map.es6 b/test/map.es6 index 48df3c334..e9c6fb49d 100644 --- a/test/map.es6 +++ b/test/map.es6 @@ -109,7 +109,9 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css).to.eql('a { }' + os.EOL +'/*# sourceMappingURL=b.css.map */'); + expect(result.css) + .to + .eql('a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); }); it('misses source map annotation, if user ask', () => { @@ -148,7 +150,8 @@ describe('source maps', () => { map: { annotation: 'maps/b.map' } }); - expect(result.css).to.eql('a { }' + os.EOL + '/*# sourceMappingURL=maps/b.map */'); + expect(result.css) + .to.eql('a { }' + os.EOL + '/*# sourceMappingURL=maps/b.map */'); let map = consumer(result.map); expect(map.file).to.eql('../b.css'); @@ -428,7 +431,11 @@ describe('source maps', () => { it('works without file names', () => { let step1 = doubler.process('a { }', { map: true }); let step2 = doubler.process(step1.css); - expect(step2.css).to.match(new RegExp(('a { }' + os.EOL + '/*').replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))); + let expr = ('a { }' + os.EOL + '/*') + .replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + + expect(step2.css) + .to.match(new RegExp(expr)); }); it('supports UTF-8', () => { @@ -475,7 +482,8 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css).to.eql('a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); + expect(result.css) + .to.eql('a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); }); it('does not update annotation on request', () => { diff --git a/test/processor.es6 b/test/processor.es6 index 40f6a4a41..22ea34f81 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -388,9 +388,12 @@ describe('Processor', () => { it('uses custom stringifier with source maps', (done) => { let processor = new Processor([]); + let expr = '^' + ( '!' + os.EOL + '/*# sourceMap') + .replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + processor.process('a{}', { map: true, stringifier: str }) .then( (result) => { - expect(result.css).to.match(new RegExp('^'+ ( '!' + os.EOL + '/*# sourceMap').replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))); + expect(result.css).to.match(new RegExp(expr)); done(); }); }); diff --git a/test/root.es6 b/test/root.es6 index c01e1a142..c82f9b5cf 100644 --- a/test/root.es6 +++ b/test/root.es6 @@ -88,9 +88,11 @@ describe('Root', () => { it('generates result with map', () => { let root = parse('a {}'); let result = root.toResult({ map: true }); + let expr = ('a {}' + os.EOL + '/*# sourceMappingURL=') + .replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); expect(result).to.be.a.instanceOf(Result); - expect(result.css).to.match(new RegExp(('a {}' + os.EOL + '/*# sourceMappingURL=').replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))); + expect(result.css).to.match(new RegExp(expr)); }); }); From 312e0fb160b397e749337a5353435f56873f85ef Mon Sep 17 00:00:00 2001 From: Abed Islam Date: Tue, 1 Sep 2015 10:53:49 -0400 Subject: [PATCH 0684/3047] Added postcss-mqwidth-to-class plugin under Fallbacks --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f9bada56f..fed4f1ac7 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal. * [`postcss-epub`] adds the `-epub-` prefix to relevant properties. +* [`postcss-mqwidth-to-class`] converts min/max-width media queries to classes. * [`postcss-opacity`] adds opacity filter for IE8. * [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors for IE 8 compatibility. @@ -483,6 +484,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments [`postcss-minify-selectors`]: https://github.com/ben-eb/postcss-minify-selectors +[`postcss-mqwidth-to-class`]: https://github.com/notacouch/postcss-mqwidth-to-class [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter [`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors From 4c2d3f430abd26772e9716aea6a6ea5b5f3d9d5a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 20:17:55 +0300 Subject: [PATCH 0685/3047] Fix Gulp streams --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 94892f62c..a84f1f75f 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -26,7 +26,7 @@ gulp.task('build:docs', ['clean'], () => { gulp.task('build:package', ['clean'], () => { let editor = require('gulp-json-editor'); - gulp.src('./package.json') + return gulp.src('./package.json') .pipe(editor( (p) => { p.main = 'lib/postcss'; p.devDependencies['babel-core'] = p.dependencies['babel-core']; From a03f6b815a42957e836ed5c6b0a740a89e551eb8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 20:26:04 +0300 Subject: [PATCH 0686/3047] Clean up code --- test/map.es6 | 19 +++++++------------ test/processor.es6 | 5 +---- test/root.es6 | 4 +--- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/test/map.es6 b/test/map.es6 index e9c6fb49d..c752ddcab 100644 --- a/test/map.es6 +++ b/test/map.es6 @@ -109,9 +109,8 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css) - .to - .eql('a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); + expect(result.css).to.eql( + 'a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); }); it('misses source map annotation, if user ask', () => { @@ -150,8 +149,8 @@ describe('source maps', () => { map: { annotation: 'maps/b.map' } }); - expect(result.css) - .to.eql('a { }' + os.EOL + '/*# sourceMappingURL=maps/b.map */'); + expect(result.css).to.eql( + 'a { }' + os.EOL + '/*# sourceMappingURL=maps/b.map */'); let map = consumer(result.map); expect(map.file).to.eql('../b.css'); @@ -431,11 +430,7 @@ describe('source maps', () => { it('works without file names', () => { let step1 = doubler.process('a { }', { map: true }); let step2 = doubler.process(step1.css); - let expr = ('a { }' + os.EOL + '/*') - .replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - - expect(step2.css) - .to.match(new RegExp(expr)); + expect(step2.css).to.include('a { }' + os.EOL + '/*'); }); it('supports UTF-8', () => { @@ -482,8 +477,8 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css) - .to.eql('a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); + expect(result.css).to.eql( + 'a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); }); it('does not update annotation on request', () => { diff --git a/test/processor.es6 b/test/processor.es6 index 22ea34f81..9f8ea2b5c 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -388,12 +388,9 @@ describe('Processor', () => { it('uses custom stringifier with source maps', (done) => { let processor = new Processor([]); - let expr = '^' + ( '!' + os.EOL + '/*# sourceMap') - .replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - processor.process('a{}', { map: true, stringifier: str }) .then( (result) => { - expect(result.css).to.match(new RegExp(expr)); + expect(result.css).to.include(`!${ os.EOL }/*# sourceMap`); done(); }); }); diff --git a/test/root.es6 b/test/root.es6 index c82f9b5cf..dff4488fd 100644 --- a/test/root.es6 +++ b/test/root.es6 @@ -88,11 +88,9 @@ describe('Root', () => { it('generates result with map', () => { let root = parse('a {}'); let result = root.toResult({ map: true }); - let expr = ('a {}' + os.EOL + '/*# sourceMappingURL=') - .replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); expect(result).to.be.a.instanceOf(Result); - expect(result.css).to.match(new RegExp(expr)); + expect(result.css).to.include(`a {}${os.EOL}/*# sourceMappingURL=`); }); }); From 25103d87e5c416cfc91f561384cdf92045a4c64f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 20:32:55 +0300 Subject: [PATCH 0687/3047] Add .editorconfig --- .editorconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..e2cb9700e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{json,yml}] +indent_size = 2 From f6b3e2d6445d6241043c8557840f4270e0ea50f9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 20:34:10 +0300 Subject: [PATCH 0688/3047] Update npm dependencies --- gulpfile.babel.js | 4 ++-- package.json | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index a84f1f75f..25459391c 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -1,8 +1,8 @@ import gulp from 'gulp'; -gulp.task('clean', (done) => { +gulp.task('clean', () => { let del = require('del'); - del(['postcss.js', 'build/', 'coverage'], done); + return del(['postcss.js', 'build/', 'coverage']); }); // Build diff --git a/package.json b/package.json index 6814aa92d..41c9adacd 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.2", - "babel-eslint": "4.1.0", + "babel-eslint": "4.1.1", "gulp-eslint": "1.0.0", "gulp-mocha": "2.1.3", "gulp-babel": "5.2.1", @@ -37,13 +37,13 @@ "gulp-util": "3.0.6", "gulp-run": "1.6.10", "fs-extra": "0.24.0", - "isparta": "3.0.3", - "eslint": "1.3.0", + "isparta": "3.0.4", + "eslint": "1.3.1", "sinon": "1.16.1", - "mocha": "2.2.5", + "mocha": "2.3.0", "gulp": "3.9.0", "chai": "3.2.0", - "del": "1.2.1" + "del": "2.0.0" }, "scripts": { "test": "gulp" From 3d0352a280a69ef0a14725c03975f6c484e9a7aa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 20:49:08 +0300 Subject: [PATCH 0689/3047] Other way to detect line separation in CSS --- lib/map-generator.es6 | 6 ++++-- test/map.es6 | 17 +++++++++-------- test/processor.es6 | 3 +-- test/root.es6 | 3 +-- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/map-generator.es6 b/lib/map-generator.es6 index 712938cda..5c216ddc4 100644 --- a/lib/map-generator.es6 +++ b/lib/map-generator.es6 @@ -1,7 +1,6 @@ import { Base64 } from 'js-base64'; import mozilla from 'source-map'; import path from 'path'; -import os from 'os'; export default class { @@ -136,7 +135,10 @@ export default class { content = this.outputFile() + '.map'; } - this.css += os.EOL + '/*# sourceMappingURL=' + content + ' */'; + let eol = '\n'; + if ( this.css.indexOf('\r\n') !== -1 ) eol = '\r\n'; + + this.css += eol + '/*# sourceMappingURL=' + content + ' */'; } outputFile() { diff --git a/test/map.es6 b/test/map.es6 index c752ddcab..b30329797 100644 --- a/test/map.es6 +++ b/test/map.es6 @@ -5,7 +5,6 @@ import mozilla from 'source-map'; import fs from 'fs-extra'; import { expect } from 'chai'; import path from 'path'; -import os from 'os'; let consumer = map => mozilla.SourceMapConsumer.fromSourceMap(map); @@ -109,8 +108,7 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css).to.eql( - 'a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); + expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); }); it('misses source map annotation, if user ask', () => { @@ -149,8 +147,7 @@ describe('source maps', () => { map: { annotation: 'maps/b.map' } }); - expect(result.css).to.eql( - 'a { }' + os.EOL + '/*# sourceMappingURL=maps/b.map */'); + expect(result.css).to.eql('a { }\n/*# sourceMappingURL=maps/b.map */'); let map = consumer(result.map); expect(map.file).to.eql('../b.css'); @@ -430,7 +427,7 @@ describe('source maps', () => { it('works without file names', () => { let step1 = doubler.process('a { }', { map: true }); let step2 = doubler.process(step1.css); - expect(step2.css).to.include('a { }' + os.EOL + '/*'); + expect(step2.css).to.include('a { }\n/*'); }); it('supports UTF-8', () => { @@ -477,8 +474,7 @@ describe('source maps', () => { map: { inline: false } }); - expect(result.css).to.eql( - 'a { }' + os.EOL + '/*# sourceMappingURL=b.css.map */'); + expect(result.css).to.eql('a { }\n/*# sourceMappingURL=b.css.map */'); }); it('does not update annotation on request', () => { @@ -504,4 +500,9 @@ describe('source maps', () => { expect(css.match(/sourceMappingURL/g)).to.have.length(1); }); + it('uses Windows line separation too', () => { + let result = postcss().process('a {\r\n}', { map: true }); + expect(result.css).to.include('a {\r\n}\r\n/*# sourceMappingURL='); + }); + }); diff --git a/test/processor.es6 b/test/processor.es6 index 9f8ea2b5c..53821411b 100644 --- a/test/processor.es6 +++ b/test/processor.es6 @@ -8,7 +8,6 @@ import Root from '../lib/root'; import { expect } from 'chai'; import sinon from 'sinon'; import path from 'path'; -import os from 'os'; let prs = () => new Root({ raws: { after: 'ok' } }); let str = (node, builder) => { @@ -390,7 +389,7 @@ describe('Processor', () => { let processor = new Processor([]); processor.process('a{}', { map: true, stringifier: str }) .then( (result) => { - expect(result.css).to.include(`!${ os.EOL }/*# sourceMap`); + expect(result.css).to.include('!\n/*# sourceMap'); done(); }); }); diff --git a/test/root.es6 b/test/root.es6 index dff4488fd..c2a03562a 100644 --- a/test/root.es6 +++ b/test/root.es6 @@ -2,7 +2,6 @@ import Result from '../lib/result'; import parse from '../lib/parse'; import { expect } from 'chai'; -import os from 'os'; describe('Root', () => { @@ -90,7 +89,7 @@ describe('Root', () => { let result = root.toResult({ map: true }); expect(result).to.be.a.instanceOf(Result); - expect(result.css).to.include(`a {}${os.EOL}/*# sourceMappingURL=`); + expect(result.css).to.include('a {}\n/*# sourceMappingURL='); }); }); From 28603006bff9d7a56e9a9dc7da0cca39eeb7c040 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 21:17:32 +0300 Subject: [PATCH 0690/3047] Fix Root start position in source --- lib/parser.es6 | 2 +- test/result.es6 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index 6e9a586b9..2c75a1aa4 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -16,7 +16,7 @@ export default class Parser { this.spaces = ''; this.semicolon = false; - this.root.source = { input, start: { line: 0, column: 0 } }; + this.root.source = { input, start: { line: 1, column: 1 } }; } tokenize() { diff --git a/test/result.es6 b/test/result.es6 index 51abb1e2d..50c82f18c 100644 --- a/test/result.es6 +++ b/test/result.es6 @@ -50,7 +50,7 @@ describe('Result', () => { let root = postcss.parse('a{}'); result.warn('TT', { node: root }); - expect(result.messages[0].toString()).to.eql(':0:0: TT'); + expect(result.messages[0].toString()).to.eql(':1:1: TT'); }); }); From 4909ed35e5cb8d336184cb8d749dc3e14b1a6fb3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Sep 2015 21:21:21 +0300 Subject: [PATCH 0691/3047] Release 5.0.4 version --- CHANGELOG.md | 4 ++++ package.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 105d1835f..b78bd612c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.4 +* Fix start position in `Root#source`. +* Fix source map annotation, when CSS uses `\r\n` (by Mohammad Younes). + ## 5.0.3 * Fix `url()` parsing. * Fix using `selectors` in `Rule` constructor. diff --git a/package.json b/package.json index 41c9adacd..4c077c002 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.3", + "version": "5.0.4", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", @@ -24,7 +24,7 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "5.0.1", + "postcss-parser-tests": "5.0.2", "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.2", From 916c306d1ee7d72792ceb6c410d939e6bc8648d4 Mon Sep 17 00:00:00 2001 From: andrepolischuk Date: Wed, 2 Sep 2015 15:56:31 +0300 Subject: [PATCH 0692/3047] More ES6 --- lib/postcss.es6 | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/lib/postcss.es6 b/lib/postcss.es6 index 3a0a40ac4..69dbe3e99 100644 --- a/lib/postcss.es6 +++ b/lib/postcss.es6 @@ -17,8 +17,8 @@ let postcss = function (...plugins) { }; postcss.plugin = function (name, initializer) { - let creator = function () { - let transformer = initializer.apply(this, arguments); + let creator = function (...args) { + let transformer = initializer(...args); transformer.postcssPlugin = name; transformer.postcssVersion = (new Processor()).version; return transformer; @@ -37,20 +37,10 @@ postcss.vendor = vendor; postcss.parse = parse; postcss.list = list; -postcss.comment = function (defaults) { - return new Comment(defaults); -}; -postcss.atRule = function (defaults) { - return new AtRule(defaults); -}; -postcss.decl = function (defaults) { - return new Declaration(defaults); -}; -postcss.rule = function (defaults) { - return new Rule(defaults); -}; -postcss.root = function (defaults) { - return new Root(defaults); -}; +postcss.comment = (defaults) => new Comment(defaults); +postcss.atRule = (defaults) => new AtRule(defaults); +postcss.decl = (defaults) => new Declaration(defaults); +postcss.rule = (defaults) => new Rule(defaults); +postcss.root = (defaults) => new Root(defaults); export default postcss; From b6ccd50fba52d257adea8f68e3383d344e2f4e45 Mon Sep 17 00:00:00 2001 From: Johnie Hjelm Date: Wed, 2 Sep 2015 16:32:49 +0200 Subject: [PATCH 0693/3047] Added Swedish Stylesheets --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 12a72513d..d30435a06 100644 --- a/README.md +++ b/README.md @@ -463,6 +463,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-german-stylesheets`] German Style Sheets. +* [`postcss-swedish-stylesheets`] Swedish Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. * [`postcss-russian-units`] adds CSS support for russian units of length. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. @@ -612,6 +613,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-for`]: https://github.com/antyakushev/postcss-for [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-svg`]: https://github.com/Pavliko/postcss-svg +[`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets [`postcss-url`]: https://github.com/postcss/postcss-url [`stylehacks`]: https://github.com/ben-eb/stylehacks [`css-byebye`]: https://github.com/AoDev/css-byebye From 837f5f3a6c2b00831009141f53a8d60de3b18436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Rudge?= Date: Wed, 2 Sep 2015 20:37:25 -0300 Subject: [PATCH 0694/3047] adding postcss-flexbugs-fixes plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d30435a06..cd0050583 100644 --- a/README.md +++ b/README.md @@ -439,6 +439,7 @@ See also plugins in modular minifier [`cssnano`]. * [`cssfmt`] formats CSS source code automatically inspired by Gofmt. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. +* [`postcss-flexbugs-fixes`] fixes to some of known [flexbox bugs](https://github.com/philipwalton/flexbugs) ### Analysis @@ -625,6 +626,7 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost +[`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes ## How to Develop for PostCSS From 53eec39e2f4df6863675ac68ab34fa2fa30d3f0c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 3 Sep 2015 02:41:09 +0300 Subject: [PATCH 0695/3047] Fix links order --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cd0050583..2371235b6 100644 --- a/README.md +++ b/README.md @@ -426,6 +426,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-currency`] replaces name of currency with symbols. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-flexboxfixer`] unprefixes `-webkit-` only flexbox in legacy CSS. +* [`postcss-flexbugs-fixes`] fixes some of known [flexbox bugs]. * [`postcss-gradientfixer`] unprefixes `-webkit-` only gradients in legacy CSS. * [`postcss-increase-specificity`] increases the specificity of your selectors. * [`postcss-mq-keyframes`] moves any animation keyframes in media queries @@ -439,7 +440,8 @@ See also plugins in modular minifier [`cssnano`]. * [`cssfmt`] formats CSS source code automatically inspired by Gofmt. * [`perfectionist`] formats poorly written CSS and renders a “pretty” result. * [`rtlcss`] mirrors styles for right-to-left locales. -* [`postcss-flexbugs-fixes`] fixes to some of known [flexbox bugs](https://github.com/philipwalton/flexbugs) + +[flexbox bugs]: https://github.com/philipwalton/flexbugs ### Analysis @@ -475,6 +477,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity +[`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets @@ -505,6 +508,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset +[`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette [`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone [`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables @@ -614,7 +618,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-for`]: https://github.com/antyakushev/postcss-for [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-svg`]: https://github.com/Pavliko/postcss-svg -[`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets [`postcss-url`]: https://github.com/postcss/postcss-url [`stylehacks`]: https://github.com/ben-eb/stylehacks [`css-byebye`]: https://github.com/AoDev/css-byebye @@ -626,7 +629,6 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`lost`]: https://github.com/corysimmons/lost -[`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes ## How to Develop for PostCSS From e148b879eacb90614213d6461327ea041638d661 Mon Sep 17 00:00:00 2001 From: dlunny Date: Wed, 2 Sep 2015 22:12:15 -0400 Subject: [PATCH 0696/3047] adds postcss-round-subpixels to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2371235b6..dc112ffdf 100644 --- a/README.md +++ b/README.md @@ -289,6 +289,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`cssgrace`] provides various helpers and transpiles CSS 3 for IE and other old browsers. * [`pixrem`] generates pixel fallbacks for `rem` units. +* [`postcss-round-subpixels`] plugin that rounds sub-pixel values to the nearest full pixel. ### Language Extensions @@ -503,6 +504,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-local-constants`]: https://github.com/macropodhq/postcss-local-constants [`postcss-remove-prefixes`]: https://github.com/johnotander/postcss-remove-prefixes [`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type +[`postcss-round-subpixels`]: https://github.com/himynameisdave/postcss-round-subpixels [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values From 39a76fbfcda683ee236b610c21d1eb0869fffc0f Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Thu, 3 Sep 2015 01:12:33 -0500 Subject: [PATCH 0697/3047] Update TypeScript definitions --- d.ts/at-rule.d.ts | 4 +- d.ts/comment.d.ts | 2 +- d.ts/container.d.ts | 35 ++++---- d.ts/css-syntax-error.d.ts | 108 ++++++++++++----------- d.ts/input.d.ts | 4 +- d.ts/lazy-result.d.ts | 38 ++++---- d.ts/node.d.ts | 24 ++--- d.ts/postcss.d.ts | 176 +++++++++++++++++++------------------ d.ts/processor.d.ts | 2 +- d.ts/result.d.ts | 12 +-- d.ts/root.d.ts | 18 ++-- d.ts/rule.d.ts | 5 ++ d.ts/stringify.d.ts | 2 +- d.ts/warning.d.ts | 14 +-- 14 files changed, 236 insertions(+), 208 deletions(-) diff --git a/d.ts/at-rule.d.ts b/d.ts/at-rule.d.ts index 3eb993431..ffefec8ad 100644 --- a/d.ts/at-rule.d.ts +++ b/d.ts/at-rule.d.ts @@ -21,8 +21,8 @@ export default class AtRule extends Container implements postcss.AtRule { */ params: string; /** - * Represents an at-rule. This node will have a nodes property, - * representing its children, if it is followed in the CSS by a {} block. + * Represents an at-rule. If it's followed in the CSS by a {} block, this + * node will have a nodes property representing its children. */ constructor(defaults?: postcss.AtRuleNewProps); /** diff --git a/d.ts/comment.d.ts b/d.ts/comment.d.ts index 5e341835c..8ab56e699 100644 --- a/d.ts/comment.d.ts +++ b/d.ts/comment.d.ts @@ -12,7 +12,7 @@ export default class Comment extends Node implements postcss.Comment { text: string; /** * Represents a comment between declarations or statements (rule and at-rules). - * Comments inside selectors, at-rules parameters, or declaration values will + * Comments inside selectors, at-rule parameters, or declaration values will * be stored in the Node#raws properties. */ constructor(defaults?: postcss.CommentNewProps); diff --git a/d.ts/container.d.ts b/d.ts/container.d.ts index d30ab4a44..b51b02b5f 100644 --- a/d.ts/container.d.ts +++ b/d.ts/container.d.ts @@ -20,20 +20,18 @@ export default class Container extends Node implements postcss.Container { */ clone(overrides?: Object): any; toJSON(): postcss.JsonContainer; - cleanRaws(keepBetween?: boolean): void; push(child: any): Container; /** * Iterates through the container's immediate children, calling the * callback function for each child. If you need to recursively iterate - * through all the container's nodes, use container.walk(). Unlike - * the for {} -cycle or Array#forEach() this iterator is safe if you are - * mutating the array of child nodes during iteration. + * through all the container's descendant nodes, use container.walk(). + * Unlike the for {} -cycle or Array#forEach() this iterator is safe if you + * are mutating the array of child nodes during iteration. * @param callback Iterator. Returning false will break iteration. Safe * if you are mutating the array of child nodes during iteration. PostCSS * will adjust the current index to match the mutations. */ each(callback: (node: Node, index: number) => any): boolean | void; - eachInside(callback: any): any; /** * Traverses the container's descendant nodes, calling `callback` for each * node. Like container.each(), this method is safe to use if you are @@ -42,7 +40,6 @@ export default class Container extends Node implements postcss.Container { * @param callback Iterator. */ walk(callback: (node: Node, index: number) => any): boolean | void; - eachDecl(propFilter: any, callback?: any): any; /** * Traverses the container's descendant nodes, calling `callback` for each * declaration. Like container.each(), this method is safe to use if you @@ -53,31 +50,28 @@ export default class Container extends Node implements postcss.Container { */ walkDecls(propFilter: string | RegExp, callback?: (decl: postcss.Declaration, index: number) => any): boolean | void; walkDecls(callback: (decl: postcss.Declaration, index: number) => any): boolean | void; - eachRule(selectorFilter: any, callback?: any): any; /** * Traverses the container's descendant nodes, calling `callback` for each * rule. Like container.each(), this method is safe to use if you are * mutating arrays during iteration. - * @param selectorFilter Filters rules by selector. Only those rules whose - * name matches the filter will be iterated over. + * @param selectorFilter Filters rules by selector. If provided, iteration + * will only happen over rules that have matching names. * @param callback Iterator called for each rule node within the * container. */ walkRules(selectorFilter: string | RegExp, callback: (atRule: Rule, index: number) => any): boolean | void; walkRules(callback: (atRule: Rule, index: number) => any): boolean | void; - eachAtRule(nameFilter: any, callback?: any): any; /** * Traverses the container's descendant nodes, calling `callback` for each * at-rule. Like container.each(), this method is safe to use if you are * mutating arrays during iteration. - * @param nameFilter Filters at-rules by name. Only those at-rules whose - * name matches filter will be iterated over. + * @param nameFilter Filters at-rules by name. If provided, iteration will + * only happen over at-rules that have matching names. * @param callback Iterator called for each at-rule node within the * container. */ walkAtRules(nameFilter: string | RegExp, callback: (atRule: AtRule, index: number) => any): boolean | void; walkAtRules(callback: (atRule: AtRule, index: number) => any): boolean | void; - eachComment(selectorFilter: any, callback?: any): any; /** * Traverses the container's descendant nodes, calling `callback` for each * commennt. Like container.each(), this method is safe to use if you are @@ -117,6 +111,7 @@ export default class Container extends Node implements postcss.Container { * @returns This container for chaining. */ prepend(...nodes: (Node | Object | string)[]): Container; + cleanRaws(keepBetween?: boolean): void; /** * Insert newNode before oldNode within the container. * @param oldNode Child or child's index. @@ -136,8 +131,8 @@ export default class Container extends Node implements postcss.Container { */ remove(): any; /** - * Removes child from the container, and the parent properties of node and - * its children. + * Removes child from the container and clean the parent properties from the + * node and its children. * @param child Child or child's index. * @returns This container for chaining. */ @@ -198,12 +193,12 @@ export default class Container extends Node implements postcss.Container { * @param thisArg An object to which the this keyword can refer in the * callback function. If thisArg is omitted, undefined is used as the * this value. - * @returns True if callback returns a true value for (at least) one of the + * @returns True if callback returns true for (at least) one of the * container's children. */ some(callback: (node: Node, index: number, nodes: Node[]) => boolean, thisArg?: any): boolean; /** - * @param child Child of current container. + * @param child Child of the current container. * @returns The child's index within the container's "nodes" array. */ index(child: Node | number): number; @@ -217,6 +212,12 @@ export default class Container extends Node implements postcss.Container { last: Node; protected normalize(node: Node | string, sample?: Node, type?: string | boolean): Node[]; protected normalize(props: postcss.AtRuleNewProps | postcss.RuleNewProps | postcss.DeclarationNewProps | postcss.CommentNewProps, sample?: Node, type?: string | boolean): Node[]; + rebuild(node: Node, parent?: Container): any; + eachInside(callback: any): any; + eachDecl(propFilter: any, callback?: any): any; + eachRule(selectorFilter: any, callback?: any): any; + eachAtRule(nameFilter: any, callback?: any): any; + eachComment(selectorFilter: any, callback?: any): any; semicolon: boolean; after: string; } diff --git a/d.ts/css-syntax-error.d.ts b/d.ts/css-syntax-error.d.ts index d213c0c85..ebff5d098 100644 --- a/d.ts/css-syntax-error.d.ts +++ b/d.ts/css-syntax-error.d.ts @@ -1,46 +1,49 @@ import postcss from './postcss'; export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxError { /** - * Contains full error text by GNU error format. + * Contains full error text in the GNU error format. */ message: string; /** - * Contains source line of error. PostCSS will use the input source map - * to detect the original error location. If you wrote a Sass file, then - * compiled it to CSS and parsed it with PostCSS, PostCSS will show the - * original position in the Sass file. If you need position in PostCSS - * input (e.g., to debug previous compiler), use error.generated.line. + * Contains the source line of the error. PostCSS will use the input + * source map to detect the original error location. If you wrote a + * Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you need + * position in PostCSS input (e.g., to debug previous compiler), use + * error.generated.line. */ line: number; /** - * Contains the source column of the error. PostCSS will use input - * source map to detect the original error location. If you wrote a Sass - * file, then compiled it to CSS and parsed it with PostCSS, PostCSS - * will show the original position in the Sass file. If you need - * position in PostCSS input (e.g., to debug previous compiler), use - * error.generated.column. + * Contains the source column of the error. PostCSS will use the input + * source map to detect the original error location. If you wrote a + * Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you + * need position in PostCSS input (e.g., to debug previous compiler), + * use error.generated.column. */ column: number; /** - * Contains source code of broken file. PostCSS will use input source - * map to detect the original error location. If you wrote a Sass file, - * then compiled it to CSS and parsed it with PostCSS, PostCSS will show - * the original position in the Sass file. If you need position in - * PostCSS input (e.g., to debug previous compiler), use - * error.generated.source. + * Contains the source code of the broken file. PostCSS will use the + * input source map to detect the original error location. If you wrote + * a Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you + * need position in PostCSS input (e.g., to debug previous compiler), + * use error.generated.source. */ source: string; /** - * If parser's from option is set, contains absolute path to broken file. - * PostCSS will use the input source map to detect the original error - * location. If you wrote a Sass file, then compiled it to CSS and - * parsed it with PostCSS, PostCSS will show the original position in - * the Sass file. If you need the position in PostCSS input - * (e.g., to debug previous compiler), use error.generated.file. + * If parser's from option is set, contains the absolute path to the + * broken file. PostCSS will use the input source map to detect the + * original error location. If you wrote a Sass file, compiled it + * to CSS and then parsed it with PostCSS, PostCSS will show the + * original position in the Sass file. If you need the position in + * PostCSS input (e.g., to debug previous compiler), use + * error.generated.file. */ file: string; /** - * Contains PostCSS plugin name if error did not come from CSS parser. + * Contains the PostCSS plugin name if the error didn't come from the + * CSS parser. */ plugin: string; name: string; @@ -53,52 +56,54 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr private lineNumber; private fileName; input: postcss.InputOrigin; - generated: postcss.InputOrigin; /** * The CSS parser throws this error for broken CSS. */ constructor( /** - * Contains full error text by GNU error format. + * Contains full error text in the GNU error format. */ message: string, /** - * Contains source line of error. PostCSS will use the input source map - * to detect the original error location. If you wrote a Sass file, then - * compiled it to CSS and parsed it with PostCSS, PostCSS will show the - * original position in the Sass file. If you need position in PostCSS - * input (e.g., to debug previous compiler), use error.generated.line. + * Contains the source line of the error. PostCSS will use the input + * source map to detect the original error location. If you wrote a + * Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you need + * position in PostCSS input (e.g., to debug previous compiler), use + * error.generated.line. */ line?: number, /** - * Contains the source column of the error. PostCSS will use input - * source map to detect the original error location. If you wrote a Sass - * file, then compiled it to CSS and parsed it with PostCSS, PostCSS - * will show the original position in the Sass file. If you need - * position in PostCSS input (e.g., to debug previous compiler), use - * error.generated.column. + * Contains the source column of the error. PostCSS will use the input + * source map to detect the original error location. If you wrote a + * Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you + * need position in PostCSS input (e.g., to debug previous compiler), + * use error.generated.column. */ column?: number, /** - * Contains source code of broken file. PostCSS will use input source - * map to detect the original error location. If you wrote a Sass file, - * then compiled it to CSS and parsed it with PostCSS, PostCSS will show - * the original position in the Sass file. If you need position in - * PostCSS input (e.g., to debug previous compiler), use - * error.generated.source. + * Contains the source code of the broken file. PostCSS will use the + * input source map to detect the original error location. If you wrote + * a Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you + * need position in PostCSS input (e.g., to debug previous compiler), + * use error.generated.source. */ source?: string, /** - * If parser's from option is set, contains absolute path to broken file. - * PostCSS will use the input source map to detect the original error - * location. If you wrote a Sass file, then compiled it to CSS and - * parsed it with PostCSS, PostCSS will show the original position in - * the Sass file. If you need the position in PostCSS input - * (e.g., to debug previous compiler), use error.generated.file. + * If parser's from option is set, contains the absolute path to the + * broken file. PostCSS will use the input source map to detect the + * original error location. If you wrote a Sass file, compiled it + * to CSS and then parsed it with PostCSS, PostCSS will show the + * original position in the Sass file. If you need the position in + * PostCSS input (e.g., to debug previous compiler), use + * error.generated.file. */ file?: string, /** - * Contains PostCSS plugin name if error did not come from CSS parser. + * Contains the PostCSS plugin name if the error didn't come from the + * CSS parser. */ plugin?: string); private setMessage(); @@ -117,4 +122,5 @@ export default class CssSyntaxError implements postcss.CssSyntaxError, SyntaxErr * @returns Error position, message and source code of broken part. */ toString(): string; + generated: postcss.InputOrigin; } diff --git a/d.ts/input.d.ts b/d.ts/input.d.ts index ea49ef7b9..558a63dbd 100644 --- a/d.ts/input.d.ts +++ b/d.ts/input.d.ts @@ -15,7 +15,7 @@ export default class Input implements postcss.Input { id: string; /** * Represents the input source map passed from a compilation step before - * PostCSS (for example, from the Sass compiler). + * PostCSS (e.g., from the Sass compiler). */ map: PreviousMap; css: string; @@ -30,7 +30,7 @@ export default class Input implements postcss.Input { }); /** * The CSS source identifier. Contains input.file if the user set the "from" - * option, or input.id if he/she did not. + * option, or input.id if they did not. */ from: string; error(message: string, line: number, column: number, opts?: { diff --git a/d.ts/lazy-result.d.ts b/d.ts/lazy-result.d.ts index f984b2e58..1a963b63f 100644 --- a/d.ts/lazy-result.d.ts +++ b/d.ts/lazy-result.d.ts @@ -10,9 +10,9 @@ export default class LazyResult implements postcss.LazyResult { private plugin; private processing; /** - * Promise proxy for result of PostCSS transformations. + * A promise proxy for the result of PostCSS transformations. */ - constructor(processor: Processor, + constructor(processor: Processor, /** * String with input CSS or any object with toString() method, like file stream. * Optionally, send Result instance and the processor will take the existing @@ -31,10 +31,10 @@ export default class LazyResult implements postcss.LazyResult { */ opts: postcss.ResultOptions; /** - * Processes input CSS through synchronous plugins and converts Root to - * CSS string. This property will work only with synchronous plugins. If - * processor contains any asynchronous plugins it will throw a error. You - * should use LazyResult#then() instead. + * Processes input CSS through synchronous plugins and converts Root to a + * CSS string. This property will only work with synchronous plugins. If + * the processor contains any asynchronous plugins it will throw an error. + * In this case, you should use LazyResult#then() instead. */ css: string; /** @@ -43,28 +43,30 @@ export default class LazyResult implements postcss.LazyResult { content: string; /** * Processes input CSS through synchronous plugins. This property will - * work only with synchronous plugins. If processor contains any - * asynchronous plugins it will throw an error. You should use - * LazyResult#then() instead. + * only work with synchronous plugins. If the processor contains any + * asynchronous plugins it will throw an error. In this case, you should + * use LazyResult#then() instead. */ map: postcss.ResultMap; /** - * Processes input CSS through synchronous plugins. This property will work - * only with synchronous plugins. If processor contains any asynchronous - * plugins it will throw an error. You should use LazyResult#then() instead. + * Processes input CSS through synchronous plugins. This property will only + * work with synchronous plugins. If the processor contains any asynchronous + * plugins it will throw an error. In this case, you should use + * LazyResult#then() instead. */ root: Root; /** - * Processes input CSS through synchronous plugins. This property will work - * only with synchronous plugins. If processor contains any asynchronous - * plugins it will throw an error. You should use LazyResult#then() instead. + * Processes input CSS through synchronous plugins. This property will only + * work with synchronous plugins. If the processor contains any asynchronous + * plugins it will throw an error. In this case, you should use + * LazyResult#then() instead. */ messages: postcss.ResultMessage[]; /** * Processes input CSS through synchronous plugins and calls Result#warnings(). - * This property will work only with synchronous plugins. If processor - * contains any asynchronous plugins it will throw a error. You should use - * LazyResult#then() instead. + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. In this case, you + * You should use LazyResult#then() instead. */ warnings(): postcss.ResultMessage[]; /** diff --git a/d.ts/node.d.ts b/d.ts/node.d.ts index e13797f84..c43634a65 100644 --- a/d.ts/node.d.ts +++ b/d.ts/node.d.ts @@ -20,12 +20,12 @@ export default class Node implements postcss.Node { parent: Container; /** * Returns the input source of the node. The property is used in source map - * generation. If you create a node manually (for example, with - * postcss.decl() ), that node will not have a source property and will - * be absent from the source map. For this reason, the plugin developer - * should consider cloning nodes to create new ones (in which case the new - * node's source will reference the original, cloned node) or setting the - * source property manually. + * generation. If you create a node manually (e.g., with postcss.decl() ), + * that node will not have a source property and will be absent from the + * source map. For this reason, the plugin developer should consider cloning + * nodes to create new ones (in which case the new node's source will + * reference the original, cloned node) or setting the source property + * manually. */ source: postcss.NodeSource; constructor(defaults?: Object); @@ -42,8 +42,8 @@ export default class Node implements postcss.Node { */ message: string, options?: postcss.NodeErrorOptions): CssSyntaxError; /** - * Creates a Warning and adds it to messages. This method is provided as - * a convenience wrapper for Result#warn. + * Creates an instance of Warning and adds it to messages. This method is + * provided as a convenience wrapper for Result#warn. * @param result The result that will receive the warning. * @param message Error description. */ @@ -84,14 +84,14 @@ export default class Node implements postcss.Node { */ cloneAfter(overrides?: Object): Node; /** - * Inserts nodes before the current node and removes the current node. + * Inserts node(s) before the current node and removes the current node. * @returns This node for chaining. */ replaceWith(...nodes: (Node | Object)[]): Node; /** * Removes the node from its current parent and inserts it at the end of * newParent. This will clean the before and after code style properties - * from the node, and replace them with the indentation style of newParent. + * from the node and replace them with the indentation style of newParent. * It will also clean the between property if newParent is in another Root. * @param newParent Where the current node will be moved. * @returns This node for chaining. @@ -100,7 +100,7 @@ export default class Node implements postcss.Node { /** * Removes the node from its current parent and inserts it into a new * parent before otherNode. This will also clean the node's code style - * properties just as node.moveTo(newParent) does. + * properties just as it would in node.moveTo(newParent). * @param otherNode Will be after the current node after moving. * @returns This node for chaining. */ @@ -108,7 +108,7 @@ export default class Node implements postcss.Node { /** * Removes the node from its current parent and inserts it into a new * parent after otherNode. This will also clean the node's code style - * properties just as node.moveTo(newParent) does. + * properties just as it would in node.moveTo(newParent). * @param otherNode Will be before the current node after moving. * @returns This node for chaining. */ diff --git a/d.ts/postcss.d.ts b/d.ts/postcss.d.ts index 3888ad39a..4e1150f43 100644 --- a/d.ts/postcss.d.ts +++ b/d.ts/postcss.d.ts @@ -44,7 +44,7 @@ declare module postcss { */ var vendor: typeof _vendor; /** - * Default function to convert nodes tree to CSS string. + * Default function to convert a node tree into a CSS string. */ function stringify(node: Node, builder: Stringifier.Builder): void; /** @@ -66,31 +66,31 @@ declare module postcss { var list: typeof _list; /** * Creates a new Comment node. - * @param defaults Properties for the new node. + * @param defaults Properties for the new Comment node. * @returns The new node. */ function comment(defaults?: CommentNewProps): Comment; /** * Creates a new AtRule node. - * @param defaults Properties for the new node. + * @param defaults Properties for the new AtRule node. * @returns The new node. */ function atRule(defaults?: AtRuleNewProps): AtRule; /** * Creates a new Declaration node. - * @param defaults Properties for the new node. + * @param defaults Properties for the new Declaration node. * @returns The new node. */ function decl(defaults?: DeclarationNewProps): Declaration; /** * Creates a new Rule node. - * @param defaults Properties for the new node. + * @param defaults Properties for the new Rule node. * @returns The new node. */ function rule(defaults?: RuleNewProps): Rule; /** * Creates a new Root node. - * @param defaults Properties for the new node. + * @param defaults Properties for the new Root node. * @returns The new node. */ function root(defaults?: Object): Root; @@ -106,14 +106,14 @@ declare module postcss { */ inline?: boolean; /** - * Source map content from a previous processing step (for example, Sass compilation). + * Source map content from a previous processing step (e.g., Sass compilation). * PostCSS will try to read the previous source map automatically (based on comments * within the source CSS), but you can use this option to identify it manually. * If desired, you can omit the previous map with prev: false. */ prev?: any; /** - * Indicates that PostCSS should set the origin content (for example, Sass source) + * Indicates that PostCSS should set the origin content (e.g., Sass source) * of the source map. By default, it is true. But if all previous maps do not * contain sources content, PostCSS will also leave it out even if you do not set * this option. @@ -141,7 +141,7 @@ declare module postcss { /** * A Processor instance contains plugins to process CSS. Create one * Processor instance, initialize its plugins, and then use that instance - * on many CSS files. + * on numerous CSS files. */ interface Processor { /** @@ -165,7 +165,7 @@ declare module postcss { */ plugins: Plugin[]; /** - * Contains current version of PostCSS (e.g., "4.0.5"). + * Contains the current version of PostCSS (e.g., "4.0.5"). */ version: string; } @@ -212,7 +212,7 @@ declare module postcss { (node?: postcss.Node, builder?: any): postcss.Result | void; } /** - * Promise proxy for result of PostCSS transformations. + * A promise proxy for the result of PostCSS transformations. */ interface LazyResult { /** @@ -231,9 +231,9 @@ declare module postcss { toString(): string; /** * Processes input CSS through synchronous plugins and converts Root to - * CSS string. This property will work only with synchronous plugins. If - * processor contains any asynchronous plugins it will throw a error. You - * should use LazyResult#then() instead. + * CSS string. This property will only work with synchronous plugins. If + * the processor contains any asynchronous plugins it will throw an error. + * In this case, you should use LazyResult#then() instead. * @returns Result#css. */ css: string; @@ -256,9 +256,9 @@ declare module postcss { root: Root; /** * Processes input CSS through synchronous plugins and calls Result#warnings(). - * This property will work only with synchronous plugins. If processor - * contains any asynchronous plugins it will throw a error. You should use - * LazyResult#then() instead. + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. In this case, + * you should use LazyResult#then() instead. */ warnings(): ResultMessage[]; /** @@ -286,7 +286,7 @@ declare module postcss { */ toString(): string; /** - * Creates a Warning and adds it to messages. + * Creates an instance of Warning and adds it to messages. * @param message Used in the text property of the message object. * @param options Properties for Message object. */ @@ -315,13 +315,13 @@ declare module postcss { */ map: ResultMap; /** - * Contains Root node after all transformations. + * Contains the Root node after all transformations. */ root: Root; /** - * Contains messages from plugins. For example, warnings or custom messages to - * plugins communication. Add a warning using Result#warn() and get all warnings - * using Result#warnings() method. + * Contains messages from plugins (e.g., warnings or custom messages). + * Add a warning using Result#warn() and get all warnings + * using the Result#warnings() method. */ messages: ResultMessage[]; /** @@ -407,7 +407,7 @@ declare module postcss { browsers?: string[]; } /** - * Warning from plugins. It can be created using Result#warn(). + * Represents a plugin warning. It can be created using Result#warn(). */ interface Warning { /** @@ -419,8 +419,8 @@ declare module postcss { */ text: string; /** - * Contains name of plugin that created this warning. When you call - * Result#warn(), it will fill this property automatically. + * Contains the name of the plugin that created this warning. When you + * call Result#warn(), it will fill this property automatically. */ plugin: string; /** @@ -428,11 +428,11 @@ declare module postcss { */ node: Node; /** - * Line in input file with this warning source. + * The line in the input file with this warning's source. */ line: number; /** - * Column in input file with this warning source. + * Column in the input file with this warning's source. */ column: number; } @@ -467,7 +467,7 @@ declare module postcss { */ showSourceCode(color?: boolean): string; /** - * Contains full error text by GNU error format. + * Contains full error text in the GNU error format. */ message: string; /** @@ -475,45 +475,47 @@ declare module postcss { */ reason: string; /** - * Contains PostCSS plugin name if error did not come from CSS parser. + * Contains the PostCSS plugin name if the error didn't come from the + * CSS parser. */ plugin?: string; input?: InputOrigin; } interface InputOrigin { /** - * If parser's from option is set, contains absolute path to broken file. - * PostCSS will use the input source map to detect the original error - * location. If you wrote a Sass file, then compiled it to CSS and - * parsed it with PostCSS, PostCSS will show the original position in - * the Sass file. If you need the position in PostCSS input - * (e.g., to debug previous compiler), use error.input.file. + * If parser's from option is set, contains the absolute path to the + * broken file. PostCSS will use the input source map to detect the + * original error location. If you wrote a Sass file, then compiled it + * to CSS and parsed it with PostCSS, PostCSS will show the original + * position in the Sass file. If you need the position in the PostCSS + * input (e.g., to debug the previous compiler), use error.input.file. */ file?: string; /** - * Contains source line of error. PostCSS will use the input source map - * to detect the original error location. If you wrote a Sass file, then - * compiled it to CSS and parsed it with PostCSS, PostCSS will show the - * original position in the Sass file. If you need position in PostCSS - * input (e.g., to debug previous compiler), use error.input.line. + * Contains the source line of the error. PostCSS will use the input + * source map to detect the original error location. If you wrote a Sass + * file, then compiled it to CSS and parsed it with PostCSS, PostCSS + * will show the original position in the Sass file. If you need the + * position in the PostCSS input (e.g., to debug the previous + * compiler), use error.input.line. */ line?: number; /** * Contains the source column of the error. PostCSS will use input - * source map to detect the original error location. If you wrote a Sass - * file, then compiled it to CSS and parsed it with PostCSS, PostCSS - * will show the original position in the Sass file. If you need - * position in PostCSS input (e.g., to debug previous compiler), use - * error.input.column. + * source map to detect the original error location. If you wrote a + * Sass file, then compiled it to CSS and parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you + * need the position in the PostCSS input (e.g., to debug the + * previous compiler), use error.input.column. */ column?: number; /** - * Contains source code of broken file. PostCSS will use input source - * map to detect the original error location. If you wrote a Sass file, - * then compiled it to CSS and parsed it with PostCSS, PostCSS will show - * the original position in the Sass file. If you need position in - * PostCSS input (e.g., to debug previous compiler), use - * error.input.source. + * Contains the source code of the broken file. PostCSS will use the + * input source map to detect the original error location. If you wrote + * a Sass file, then compiled it to CSS and parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. If you need + * the position in the PostCSS input (e.g., to debug the previous + * compiler), use error.input.source. */ source?: string; } @@ -532,12 +534,12 @@ declare module postcss { id: string; /** * The CSS source identifier. Contains input.file if the user set the - * "from" option, or input.id if he/she did not. + * "from" option, or input.id if they did not. */ from: string; /** * Represents the input source map passed from a compilation step before - * PostCSS (for example, from the Sass compiler). + * PostCSS (e.g., from the Sass compiler). */ map: PreviousMap; /** @@ -558,13 +560,13 @@ declare module postcss { */ parent: Container; /** - * Returns the input source of the node. The property is used in source map - * generation. If you create a node manually (for example, with - * postcss.decl() ), that node will not have a source property and will - * be absent from the source map. For this reason, the plugin developer - * should consider cloning nodes to create new ones (in which case the new - * node's source will reference the original, cloned node) or setting the - * source property manually. + * Returns the input source of the node. The property is used in source + * map generation. If you create a node manually + * (e.g., with postcss.decl() ), that node will not have a source + * property and will be absent from the source map. For this reason, the + * plugin developer should consider cloning nodes to create new ones + * (in which case the new node's source will reference the original, + * cloned node) or setting the source property manually. */ source: NodeSource; /** @@ -589,8 +591,8 @@ declare module postcss { */ message: string, options?: NodeErrorOptions): CssSyntaxError; /** - * Creates a Warning and adds it to messages. This method is provided as - * a convenience wrapper for Result#warn. + * Creates an instance of Warning and adds it to messages. This method is + * provided as a convenience wrapper for Result#warn. * @param result The result that will receive the warning. * @param message Error description. */ @@ -616,7 +618,7 @@ declare module postcss { */ remove(): Node; /** - * Inserts nodes before the current node and removes the current node. + * Inserts node(s) before the current node and removes the current node. * @returns This node for chaining. */ replaceWith(...nodes: (Node | Object)[]): Node; @@ -643,7 +645,7 @@ declare module postcss { /** * Removes the node from its current parent and inserts it at the end of * newParent. This will clean the before and after code style properties - * from the node, and replace them with the indentation style of newParent. + * from the node and replace them with the indentation style of newParent. * It will also clean the between property if newParent is in another Root. * @param newParent Where the current node will be moved. * @returns This node for chaining. @@ -652,7 +654,7 @@ declare module postcss { /** * Removes the node from its current parent and inserts it into a new * parent before otherNode. This will also clean the node's code style - * properties just as node.moveTo(newParent) does. + * properties just as it would in node.moveTo(newParent). * @param otherNode Will be after the current node after moving. * @returns This node for chaining. */ @@ -660,7 +662,7 @@ declare module postcss { /** * Removes the node from its current parent and inserts it into a new * parent after otherNode. This will also clean the node's code style - * properties just as node.moveTo(newParent) does. + * properties just as it would in node.moveTo(newParent). * @param otherNode Will be before the current node after moving. * @returns This node for chaining. */ @@ -759,13 +761,13 @@ declare module postcss { */ parent?: JsonContainer; /** - * Returns the input source of the node. The property is used in source map - * generation. If you create a node manually (for example, with - * postcss.decl() ), that node will not have a source property and will - * be absent from the source map. For this reason, the plugin developer - * should consider cloning nodes to create new ones (in which case the new - * node's source will reference the original, cloned node) or setting the - * source property manually. + * Returns the input source of the node. The property is used in source + * map generation. If you create a node manually (e.g., with + * postcss.decl() ), that node will not have a source property and + * will be absent from the source map. For this reason, the plugin + * developer should consider cloning nodes to create new ones (in which + * case the new node's source will reference the original, cloned node) + * or setting the source property manually. */ source?: NodeSource; /** @@ -802,7 +804,7 @@ declare module postcss { */ clone(overrides?: Object): Container; /** - * @param child Child of current container. + * @param child Child of the current container. * @returns The child's index within the container's "nodes" array. */ index(child: Node | number): number; @@ -823,16 +825,16 @@ declare module postcss { * @param thisArg An object to which the this keyword can refer in the * callback function. If thisArg is omitted, undefined is used as the * this value. - * @returns True if callback returns a true value for (at least) one of the + * @returns True if callback returns true for (at least) one of the * container's children. */ some(callback: (node: Node, index: number, nodes: Node[]) => boolean, thisArg?: any): boolean; /** * Iterates through the container's immediate children, calling the * callback function for each child. If you need to recursively iterate - * through all the container's nodes, use container.walk(). Unlike - * the for {} -cycle or Array#forEach() this iterator is safe if you are - * mutating the array of child nodes during iteration. + * through all the container's descendant nodes, use container.walk(). + * Unlike the for {} -cycle or Array#forEach() this iterator is safe if + * you are mutating the array of child nodes during iteration. * @param callback Iterator. Returning false will break iteration. Safe * if you are mutating the array of child nodes during iteration. PostCSS * will adjust the current index to match the mutations. @@ -861,8 +863,8 @@ declare module postcss { * Traverses the container's descendant nodes, calling `callback` for each * at-rule. Like container.each(), this method is safe to use if you are * mutating arrays during iteration. - * @param nameFilter Filters at-rules by name. Only those at-rules whose - * name matches filter will be iterated over. + * @param nameFilter Filters at-rules by name. If provided, iteration + * will only happen over at-rules that have matching names. * @param callback Iterator called for each at-rule node within the * container. */ @@ -872,8 +874,8 @@ declare module postcss { * Traverses the container's descendant nodes, calling `callback` for each * rule. Like container.each(), this method is safe to use if you are * mutating arrays during iteration. - * @param selectorFilter Filters rules by selector. Only those rules whose - * name matches the filter will be iterated over. + * @param selectorFilter Filters rules by selector. If provided, + * iteration will only happen over rules that have matching names. * @param callback Iterator called for each rule node within the * container. */ @@ -971,8 +973,8 @@ declare module postcss { */ remove(): Container; /** - * Removes child from the container, and the parent properties of node and - * its children. + * Removes child from the container and cleans the parent properties + * from the node and its children. * @param child Child or child's index. * @returns This container for chaining. */ @@ -1048,8 +1050,8 @@ declare module postcss { interface JsonRoot extends JsonContainer { } /** - * Represents an at-rule. This node will have a nodes property, - * representing its children, if it is followed in the CSS by a {} block. + * Represents an at-rule. If it's followed in the CSS by a {} block, this + * node will have a nodes property representing its children. */ interface AtRule extends Container { /** @@ -1200,7 +1202,7 @@ declare module postcss { } /** * Represents a comment between declarations or statements (rule and at-rules). - * Comments inside selectors, at-rules parameters, or declaration values will + * Comments inside selectors, at-rule parameters, or declaration values will * be stored in the Node#raws properties. */ interface Comment extends Node { diff --git a/d.ts/processor.d.ts b/d.ts/processor.d.ts index be60b7626..87c27f681 100644 --- a/d.ts/processor.d.ts +++ b/d.ts/processor.d.ts @@ -3,7 +3,7 @@ import postcss from './postcss'; import Result from './result'; export default class Processor implements postcss.Processor { /** - * Contains current version of PostCSS (e.g., "4.0.5"). + * Contains the current version of PostCSS (e.g., "4.0.5"). */ version: string; /** diff --git a/d.ts/result.d.ts b/d.ts/result.d.ts index 2e8156adb..be0e38d95 100644 --- a/d.ts/result.d.ts +++ b/d.ts/result.d.ts @@ -7,7 +7,7 @@ export default class Result implements postcss.Result { */ processor: Processor; /** - * Contains Root node after all transformations. + * Contains the Root node after all transformations. */ root: Root; /** @@ -31,9 +31,9 @@ export default class Result implements postcss.Result { */ map: postcss.ResultMap; /** - * Contains messages from plugins. For example, warnings or custom messages to - * plugins communication. Add a warning using Result#warn() and get all warnings - * using Result#warnings() method. + * Contains messages from plugins (e.g., warnings or custom messages). + * Add a warning using Result#warn() and get all warnings + * using the Result#warnings() method. */ messages: postcss.ResultMessage[]; lastPlugin: postcss.Transformer; @@ -46,7 +46,7 @@ export default class Result implements postcss.Result { */ processor?: Processor, /** - * Contains Root node after all transformations. + * Contains the Root node after all transformations. */ root?: Root, /** @@ -59,7 +59,7 @@ export default class Result implements postcss.Result { */ toString(): string; /** - * Creates a Warning and adds it to messages. + * Creates an instance of Warning and adds it to messages. * @param message Used in the text property of the message object. * @param options Properties for Message object. */ diff --git a/d.ts/root.d.ts b/d.ts/root.d.ts index e89705024..268c52d51 100644 --- a/d.ts/root.d.ts +++ b/d.ts/root.d.ts @@ -4,7 +4,11 @@ import postcss from './postcss'; import Result from './result'; import Node from './node'; export default class Root extends Container implements postcss.Root { - prevMap: PreviousMap; + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; rawCache: { [key: string]: any; }; @@ -19,10 +23,6 @@ export default class Root extends Container implements postcss.Root { */ clone(overrides?: Object): Root; toJSON(): postcss.JsonRoot; - /** - * Deprecated. Use Root#removeChild. - */ - remove(child?: Node | number): Root; /** * Removes child from the root node, and the parent properties of node and * its children. @@ -43,4 +43,12 @@ export default class Root extends Container implements postcss.Root { to?: string; map?: postcss.SourceMapOptions; }): Result; + /** + * Deprecated. Use Root#removeChild. + */ + remove(child?: Node | number): Root; + /** + * Deprecated. Use Root#source.input.map. + */ + prevMap(): PreviousMap; } diff --git a/d.ts/rule.d.ts b/d.ts/rule.d.ts index 3ea19759c..1d7377a3a 100644 --- a/d.ts/rule.d.ts +++ b/d.ts/rule.d.ts @@ -1,6 +1,11 @@ import Container from './container'; import postcss from './postcss'; export default class Rule extends Container implements postcss.Rule { + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ + type: string; /** * Contains information to generate byte-to-byte equal node string as it * was in origin input. diff --git a/d.ts/stringify.d.ts b/d.ts/stringify.d.ts index 0db21b71d..1e39b8d82 100644 --- a/d.ts/stringify.d.ts +++ b/d.ts/stringify.d.ts @@ -2,7 +2,7 @@ import Stringifier from './stringifier'; import postcss from './postcss'; import Node from './node'; /** - * Default function to convert nodes tree to CSS string. + * Default function to convert a node tree into a CSS string. */ declare function stringify(node: Node, builder: Stringifier.Builder): void; declare module stringify { diff --git a/d.ts/warning.d.ts b/d.ts/warning.d.ts index 075f892c1..4eaceaa20 100644 --- a/d.ts/warning.d.ts +++ b/d.ts/warning.d.ts @@ -5,10 +5,14 @@ export default class Warning implements postcss.Warning { * Contains the warning message. */ text: string; + /** + * Returns a string representing the node's type. Possible values are + * root, atrule, rule, decl or comment. + */ type: string; /** - * Contains name of plugin that created this warning. When you call - * Node#warn(), it will fill this property automatically. + * Contains the name of the plugin that created this warning. When you + * call Node#warn(), it will fill this property automatically. */ plugin: string; /** @@ -16,15 +20,15 @@ export default class Warning implements postcss.Warning { */ node: Node; /** - * Line in input file with this warning source. + * The line in the input file with this warning's source. */ line: number; /** - * Column in input file with this warning source. + * Column in the input file with this warning's source. */ column: number; /** - * Warning from plugins. It can be created using Node#warn(). + * Represents a plugin warning. It can be created using Node#warn(). */ constructor( /** From 71581e472060ef3d455db3c9d2866e57c87a6661 Mon Sep 17 00:00:00 2001 From: Sandra Date: Fri, 4 Sep 2015 11:58:12 +0200 Subject: [PATCH 0698/3047] Added lolcat style sheets :cat: --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dc112ffdf..54b0f845b 100644 --- a/README.md +++ b/README.md @@ -468,6 +468,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-german-stylesheets`] German Style Sheets. * [`postcss-swedish-stylesheets`] Swedish Style Sheets. +* [`postcss-lolcat-stylesheets`] Lolcat aka Lolspeak Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. * [`postcss-russian-units`] adds CSS support for russian units of length. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. @@ -479,6 +480,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets +[`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets From d5a33c65928ce74e6dada99340b0c6e41febac85 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 4 Sep 2015 13:00:15 +0300 Subject: [PATCH 0699/3047] Fix links order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54b0f845b..4c04452fa 100644 --- a/README.md +++ b/README.md @@ -480,9 +480,9 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets -[`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback +[`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets [`postcss-german-stylesheets`]: https://github.com/timche/postcss-german-stylesheets [`postcss-discard-duplicates`]: https://github.com/ben-eb/postcss-discard-duplicates [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight From 446e952ce2dd4119e3ca5e60faf80a496ae0b20c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 4 Sep 2015 13:02:34 +0300 Subject: [PATCH 0700/3047] Fix spellchecker --- .yaspellerrc | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index fc7500bf2..3d02c8140 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -63,6 +63,7 @@ "Flauros", "Josiah", "Lydell", + "Lolspeak", "Matija", "Marohnić", "Maxime", diff --git a/README.md b/README.md index 4c04452fa..79d8e737e 100644 --- a/README.md +++ b/README.md @@ -468,7 +468,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-german-stylesheets`] German Style Sheets. * [`postcss-swedish-stylesheets`] Swedish Style Sheets. -* [`postcss-lolcat-stylesheets`] Lolcat aka Lolspeak Style Sheets. +* [`postcss-lolcat-stylesheets`] Lolspeak Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. * [`postcss-russian-units`] adds CSS support for russian units of length. * [`postcss-pointer`] Replaces `pointer: cursor` with `cursor: pointer`. From 2365be86750e3bcba66a65088af81d50b41e6204 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Fri, 4 Sep 2015 18:55:56 -0400 Subject: [PATCH 0701/3047] Add unmq plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit postcss-unmq removes media queries while preserving desktop rules for IE≤8. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 79d8e737e..8f762e237 100644 --- a/README.md +++ b/README.md @@ -283,6 +283,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-opacity`] adds opacity filter for IE8. * [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors for IE 8 compatibility. +* [`postcss-unmq`] removes media queries while preserving desktop rules for IE≤8. * [`postcss-vmin`] generates `vm` fallback for `vmin` unit in IE9. * [`postcss-will-change`] inserts 3D hack before `will-change` property. * [`autoprefixer`] adds vendor prefixes for you, using data from Can I Use. @@ -615,6 +616,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-neat`]: https://github.com/jo-asakura/postcss-neat [`postcss-size`]: https://github.com/postcss/postcss-size [`postcss-svgo`]: https://github.com/ben-eb/postcss-svgo +[`postcss-unmq`]: https://github.com/jonathantneal/postcss-unmq [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`autoprefixer`]: https://github.com/postcss/autoprefixer [`css-mqpacker`]: https://github.com/hail2u/node-css-mqpacker From 556cc0be75b81b62ee3d03b63972e972fa4116db Mon Sep 17 00:00:00 2001 From: Aleksey Shvayka Date: Sat, 5 Sep 2015 19:31:29 +0300 Subject: [PATCH 0702/3047] added selector-matches to Future CSS Syntax --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8f762e237..0cfc997b5 100644 --- a/README.md +++ b/README.md @@ -270,6 +270,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-media-minmax`] adds `<=` and `=>` statements to media queries. * [`postcss-pseudo-class-any-link`] adds `:any-link` pseudo-class. * [`postcss-selector-not`] transforms CSS4 `:not()` to CSS3 `:not()`. +* [`postcss-selector-matches`] transforms CSS4 `:matches()` to more compatible CSS. * [`postcss-apply`] supports custom properties sets references * [`mq4-hover-shim`] supports the `@media (hover)` feature. @@ -497,6 +498,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-mqwidth-to-class`]: https://github.com/notacouch/postcss-mqwidth-to-class [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter +[`postcss-selector-matches`]: https://github.com/postcss/postcss-selector-matches [`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property From 845dc02500923b41569b7f67cdc1d9c1b72ad1bd Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Tue, 8 Sep 2015 13:06:12 -0500 Subject: [PATCH 0703/3047] Fix API docs to use Node#raws.before --- docs/api.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api.md b/docs/api.md index 448abe8c5..f33f9a426 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1167,9 +1167,9 @@ and code style properties. ```js var cloned = decl.clone({ prop: '-moz-' + decl.prop }); -cloned.before //=> undefined -cloned.parent //=> undefined -cloned.toString() //=> -moz-transform: scale(0) +cloned.raws.before //=> undefined +cloned.parent //=> undefined +cloned.toString() //=> -moz-transform: scale(0) ``` Arguments: @@ -1227,7 +1227,7 @@ to autodetect the code style property by looking at other nodes in the tree. ```js var root = postcss.parse('a { background: white }'); root.nodes[0].append({ prop: 'color', value: 'black' }); -root.nodes[0].nodes[1].style('before') //=> ' ' +root.nodes[0].nodes[1].raws.before //=> ' ' ``` Arguments: From c5e80d28e52698a79240fe02cd85fb41cc8ac049 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 8 Sep 2015 21:16:16 +0300 Subject: [PATCH 0704/3047] Clean up dirs in gulpfile --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 25459391c..7a6f56d2c 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -2,7 +2,7 @@ import gulp from 'gulp'; gulp.task('clean', () => { let del = require('del'); - return del(['postcss.js', 'build/', 'coverage']); + return del(['postcss.js', 'build/', 'coverage/']); }); // Build From 247fe014a79068d9281e3d12da6d231f3e03d791 Mon Sep 17 00:00:00 2001 From: Phillip Alexander Date: Tue, 8 Sep 2015 20:39:07 -0700 Subject: [PATCH 0705/3047] Add Node.js 4.0 stable to Travis config NodeJS v4 was just released [NodeJS v4 announcement](https://nodejs.org/en/blog/release/v4.0.0/). This updates the CI build script to accommodate the release. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e1bd77649..195afa0e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,3 +3,4 @@ language: node_js node_js: - iojs - "0.12" + - "4" From 479cf043706826a3ad7ca5062440273823d1a8c4 Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Wed, 9 Sep 2015 15:15:25 +0300 Subject: [PATCH 0706/3047] Add Node.js 4.0 stable to Travis config --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 195afa0e5..54832c650 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,4 @@ language: node_js node_js: - iojs - "0.12" - - "4" + - "stable" From 8338000618b3eb0fd3c9d75947bbc3c6b5756764 Mon Sep 17 00:00:00 2001 From: Mike Street Date: Thu, 10 Sep 2015 10:39:55 +0100 Subject: [PATCH 0707/3047] Add postcss-pseudo-content-insert --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0cfc997b5..2637e5476 100644 --- a/README.md +++ b/README.md @@ -435,7 +435,9 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-mq-keyframes`] moves any animation keyframes in media queries to the end of the file. * [`postcss-pseudo-elements-content`] automatically adds `content: ""` - to `:before` and `:after`. + to `:before` and `:after` with custom pseudo elements. +* [`postcss-pseudo-content-insert`] inserts an empty content block into your + `:before` and `:after` pseudo elements if it is missing * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-remove-prefixes`] removes vendor prefixes. * [`postcss-style-guide`] generates a style guide automatically. @@ -479,6 +481,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-pseudo-elements-content`]: https://github.com/omgovich/postcss-pseudo-elements-content [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link +[`postcss-pseudo-content-insert`]: https://github.com/liquidlight/postcss-pseudo-content-insert [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets From 2b36a6b297786a7953a351b5569dc19ea50b57df Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Sep 2015 13:06:04 +0300 Subject: [PATCH 0708/3047] Shorter plugin desc --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2637e5476..e60a1e44a 100644 --- a/README.md +++ b/README.md @@ -434,10 +434,10 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-increase-specificity`] increases the specificity of your selectors. * [`postcss-mq-keyframes`] moves any animation keyframes in media queries to the end of the file. -* [`postcss-pseudo-elements-content`] automatically adds `content: ""` - to `:before` and `:after` with custom pseudo elements. -* [`postcss-pseudo-content-insert`] inserts an empty content block into your - `:before` and `:after` pseudo elements if it is missing +* [`postcss-pseudo-elements-content`] adds `content: ""` to `:before-c` + and `:after-c`. +* [`postcss-pseudo-content-insert`] adds `content: ""` block into `:before` + and `:after` if it is missing. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-remove-prefixes`] removes vendor prefixes. * [`postcss-style-guide`] generates a style guide automatically. From 98b39782250f4b0893c87cb25e5afe8f92f734a4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Sep 2015 13:06:35 +0300 Subject: [PATCH 0709/3047] More shorter plugin desc --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e60a1e44a..795981db3 100644 --- a/README.md +++ b/README.md @@ -436,8 +436,8 @@ See also plugins in modular minifier [`cssnano`]. to the end of the file. * [`postcss-pseudo-elements-content`] adds `content: ""` to `:before-c` and `:after-c`. -* [`postcss-pseudo-content-insert`] adds `content: ""` block into `:before` - and `:after` if it is missing. +* [`postcss-pseudo-content-insert`] adds `content: ""` to :before` and `:after` + if it is missing. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-remove-prefixes`] removes vendor prefixes. * [`postcss-style-guide`] generates a style guide automatically. From 3d1b6d29932085b258da942c796bd0d73674d637 Mon Sep 17 00:00:00 2001 From: Mike Street Date: Thu, 10 Sep 2015 12:19:34 +0100 Subject: [PATCH 0710/3047] Add missing backtick to Readme and correct content quotes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 795981db3..0306e38f7 100644 --- a/README.md +++ b/README.md @@ -434,9 +434,9 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-increase-specificity`] increases the specificity of your selectors. * [`postcss-mq-keyframes`] moves any animation keyframes in media queries to the end of the file. -* [`postcss-pseudo-elements-content`] adds `content: ""` to `:before-c` +* [`postcss-pseudo-elements-content`] adds `content: ''` to `:before-c` and `:after-c`. -* [`postcss-pseudo-content-insert`] adds `content: ""` to :before` and `:after` +* [`postcss-pseudo-content-insert`] adds `content: ''` to `:before` and `:after` if it is missing. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-remove-prefixes`] removes vendor prefixes. From 9bcf24fe169b12710a980038156ee0d92785138c Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Fri, 11 Sep 2015 10:07:23 -0400 Subject: [PATCH 0711/3047] Add postcss-partial-import plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0306e38f7..bd4aa59a7 100644 --- a/README.md +++ b/README.md @@ -380,6 +380,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. +* [`postcss-partial-import`] inlines standard imports and Sass-like partials. * [`postcss-single-charset`] ensures that there is one and only one `@charset` rule at the top of file. * [`postcss-zindex`] rebases positive `z-index` values. @@ -516,6 +517,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values +[`postcss-partial-import`]: https://github.com/jonathantneal/postcss-partial-import [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes From 69dacaf9e4fd83dda80498251c43f2986c03711c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 11 Sep 2015 17:22:35 +0300 Subject: [PATCH 0712/3047] Add work to dictionary --- .yaspellerrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.yaspellerrc b/.yaspellerrc index 3d02c8140..e3776c2a9 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -100,6 +100,7 @@ "mixin", "multitool", "io", + "partials", "inlined", "inlines", "polyfill", From dfd666b0fdc25ff7b3facb53ab8e0b9a546df725 Mon Sep 17 00:00:00 2001 From: Matthew Drake Date: Fri, 11 Sep 2015 19:03:19 -0700 Subject: [PATCH 0713/3047] allow multiple words in property --- lib/parser.es6 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index 2c75a1aa4..bc98e0204 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -184,7 +184,11 @@ export default class Parser { } node.source.start = { line: tokens[0][2], column: tokens[0][3] }; - node.prop = tokens.shift()[1]; + node.prop = ''; + while ( tokens[0][0] === 'word' ) { + node.prop += tokens.shift()[1]; + } + node.raws.between = ''; let token; From 927f21c65b807a20a68e2f732269a274c5891be1 Mon Sep 17 00:00:00 2001 From: Alex McHardy Date: Fri, 11 Sep 2015 23:03:53 -0600 Subject: [PATCH 0714/3047] Add postcss-copy-assets plugin --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index bd4aa59a7..d8c9fbd6f 100644 --- a/README.md +++ b/README.md @@ -353,6 +353,8 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-assets`] allows you to simplify URLs, insert image dimensions, and inline files. * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. +* [`postcss-copy-assets`] copies assets referenced by relative `url()`s into a + build directory. * [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-image-set`] adds `background-image` with first image for `image-set()`. @@ -548,6 +550,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short +[`postcss-copy-assets`]: https://github.com/shutterstock/postcss-copy-assets [`postcss-data-packer`]: https://github.com/Ser-Gen/postcss-data-packer [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-simple-grid`]: https://github.com/admdh/postcss-simple-grid From bc7ad9471ffb3d028a0d865296281d21077954d3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 12:43:17 +0300 Subject: [PATCH 0715/3047] Update perfomance data --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bd4aa59a7..f6da83127 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ All code can only be in JS plugins. As a result, PostCSS offers three main benefits: -* **Performance:** PostCSS, written in JS, is [3 times faster] than libsass, +* **Performance:** PostCSS, written in JS, is [2 times faster] than libsass, which is written in C++. * **Future CSS:** PostCSS plugins can read and rebuild an entire document, meaning that they can provide new language features. For example, [cssnext] @@ -104,7 +104,7 @@ As a result, PostCSS offers three main benefits: It makes many new classes of tools possible. [Autoprefixer], [`rtlcss`], [`doiuse`] or [`postcss-colorblind`] are good examples. -[3 times faster]: https://github.com/postcss/benchmark +[2 times faster]: https://github.com/postcss/benchmark ## Usage From 5a513da2146d10bbe97c03155f398bf8d06fdca7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:03:17 +0300 Subject: [PATCH 0716/3047] Fix multitoken properties parsing --- lib/parser.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index bc98e0204..ae5249cf7 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -185,7 +185,7 @@ export default class Parser { node.source.start = { line: tokens[0][2], column: tokens[0][3] }; node.prop = ''; - while ( tokens[0][0] === 'word' ) { + while ( tokens[0][0] !== ':' ) { node.prop += tokens.shift()[1]; } From 5c69a23a18fb0b9090e356868471421d3ca6b954 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:09:39 +0300 Subject: [PATCH 0717/3047] Also add comment to property end --- lib/parser.es6 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index ae5249cf7..0316bf465 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -185,7 +185,11 @@ export default class Parser { node.source.start = { line: tokens[0][2], column: tokens[0][3] }; node.prop = ''; - while ( tokens[0][0] !== ':' ) { + while ( tokens.length ) { + let type = tokens[0][0]; + if ( type === ':' || type === 'space' || type === 'comment' ) { + break; + } node.prop += tokens.shift()[1]; } From 157b40a074d07273f641a10ac1859575f85aeaff Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:10:03 +0300 Subject: [PATCH 0718/3047] Update dependencies --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 4c077c002..329939464 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "license": "MIT", "repository": "postcss/postcss", "dependencies": { - "supports-color": "^3.1.0", - "source-map": "^0.4.4", - "babel-core": "5.8.23", + "supports-color": "^3.1.1", + "source-map": "^0.5.0", + "babel-core": "5.8.24", "js-base64": "^2.1.9" }, "devDependencies": { @@ -35,15 +35,15 @@ "strip-ansi": "3.0.0", "yaspeller": "2.5.0", "gulp-util": "3.0.6", - "gulp-run": "1.6.10", + "gulp-run": "1.6.11", "fs-extra": "0.24.0", "isparta": "3.0.4", - "eslint": "1.3.1", + "eslint": "1.4.1", "sinon": "1.16.1", - "mocha": "2.3.0", + "mocha": "2.3.2", "gulp": "3.9.0", "chai": "3.2.0", - "del": "2.0.0" + "del": "2.0.2" }, "scripts": { "test": "gulp" From ab2862f67362eccd9460922a5b99b598728eb8a9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:19:59 +0300 Subject: [PATCH 0719/3047] Update parser test --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 329939464..352c47601 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "5.0.2", + "postcss-parser-tests": "5.0.3", "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.2", From 6302c11ce332b6dd41ec2df132289141e4dfd557 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:26:57 +0300 Subject: [PATCH 0720/3047] Use gulp-shell instead of deprecated gulp-run --- gulpfile.babel.js | 15 ++++----------- package.json | 3 +-- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 7a6f56d2c..e731a4aa5 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -48,17 +48,10 @@ gulp.task('lint', () => { .pipe(eslint.failAfterError()); }); -gulp.task('spellcheck', (done) => { - let gutil = require('gulp-util'); - let run = require('gulp-run'); - run('yaspeller .').exec() - .on('error', (err) => { - done(new gutil.PluginError('spellcheck', { - showStack: false, - message: err.message - })); - }) - .on('finish', done); +gulp.task('spellcheck', () => { + let shell = require('gulp-shell'); + return gulp.src(['*.md', 'docs/**/*.md'], { read: false }) + .pipe(shell('yaspeller <%= file.path %>')); }); // Tests diff --git a/package.json b/package.json index 352c47601..7c5443869 100644 --- a/package.json +++ b/package.json @@ -33,9 +33,8 @@ "gulp-mocha": "2.1.3", "gulp-babel": "5.2.1", "strip-ansi": "3.0.0", + "gulp-shell": "0.4.3", "yaspeller": "2.5.0", - "gulp-util": "3.0.6", - "gulp-run": "1.6.11", "fs-extra": "0.24.0", "isparta": "3.0.4", "eslint": "1.4.1", From cdc44bc05c9c75bb65fbf10588bb5884eec3bbe2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:29:26 +0300 Subject: [PATCH 0721/3047] Remove iojs from Travis because it is not Node.js 4 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 54832c650..e7b077034 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ sudo: false language: node_js node_js: - - iojs - "0.12" - "stable" From a0252fa8d762d6d96bea8f3b6ca92806ccfe2781 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 12 Sep 2015 13:30:55 +0300 Subject: [PATCH 0722/3047] Release 5.0.5 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b78bd612c..18a1466b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 5.0.5 +* Fix multi-tokens property parsing (by Matt Drake). + ## 5.0.4 * Fix start position in `Root#source`. * Fix source map annotation, when CSS uses `\r\n` (by Mohammad Younes). diff --git a/package.json b/package.json index 7c5443869..0b6eb2069 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.4", + "version": "5.0.5", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", From 665f9c1874082fa07c0d7e803af57d647eefbc47 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Sat, 12 Sep 2015 13:46:22 -0400 Subject: [PATCH 0723/3047] Add postcss-write-svg --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1152fcd41..d960e6221 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-svgo`] processes inline SVG through [SVGO]. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-urlrev`] adds MD5 hash strings to `url()`s. +* [`postcss-write-svg`] write inline SVGs in CSS. * [`webpcss`] adds URLs for WebP images for browsers that support WebP. ### Grids @@ -572,6 +573,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-image-set`]: https://github.com/alex499/postcss-image-set +[`postcss-write-svg`]: https://github.com/jonathantneal/postcss-write-svg [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats From 432a6e6492614fbd2504c634b767297885fbb151 Mon Sep 17 00:00:00 2001 From: Maxim Koretskiy Date: Sat, 12 Sep 2015 23:19:20 +0300 Subject: [PATCH 0724/3047] Add postcss-alias-atrules plugin to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d960e6221..84b95c776 100644 --- a/README.md +++ b/README.md @@ -398,6 +398,7 @@ See also plugins in modular minifier [`cssnano`]. ### Shortcuts * [`postcss-alias`] creates shorter aliases for properties. +* [`postcss-alias-atrules`] creates shorter aliases for at-rules. * [`postcss-all-link-colors`] insert colors for link-related pseudo-classes. * [`postcss-border`] adds shorthand for width and color of all borders in `border` property. @@ -524,6 +525,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes +[`postcss-alias-atrules`]: https://github.com/maximkoretskiy/postcss-alias-atrules [`postcss-color-palette`]: https://github.com/zaim/postcss-color-palette [`postcss-color-pantone`]: https://github.com/longdog/postcss-color-pantone [`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables From 0961ed9d1eedc71c03665bf49435e12e9afbb9c7 Mon Sep 17 00:00:00 2001 From: Dmitry Semigradsky Date: Mon, 14 Sep 2015 15:14:58 +0300 Subject: [PATCH 0725/3047] Add `postcss-russian-stylesheets` to plugin list --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 84b95c776..c35aeadf5 100644 --- a/README.md +++ b/README.md @@ -476,6 +476,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-australian-stylesheets`] Australian Style Sheets. * [`postcss-canadian-stylesheets`] Canadian Style Sheets. * [`postcss-german-stylesheets`] German Style Sheets. +* [`postcss-russian-stylesheets`] Russian Style Sheets. * [`postcss-swedish-stylesheets`] Swedish Style Sheets. * [`postcss-lolcat-stylesheets`] Lolspeak Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. @@ -490,6 +491,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets +[`postcss-russian-stylesheets`]: https://github.com/Semigradsky/postcss-russian-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets From 5ee45c46c3e8217b54b60c6bef87e416d65e73fb Mon Sep 17 00:00:00 2001 From: Jed Mao Date: Tue, 15 Sep 2015 23:39:29 -0500 Subject: [PATCH 0726/3047] Add postcss-nested-vars to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c35aeadf5..7423bd6c4 100644 --- a/README.md +++ b/README.md @@ -313,6 +313,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-modular-scale`] adds a modular scale `ms()` function. * [`postcss-nested`] unwraps nested rules. * [`postcss-nested-props`] unwraps nested properties. +* [`postcss-nested-vars`] supports nested Sass-style variables. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. * [`postcss-sassy-mixins`] enables mixins with Sass keywords. @@ -552,6 +553,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not [`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback [`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props +[`postcss-nested-vars`]: https://github.com/jedmao/postcss-nested-vars [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha [`postcss-color-scale`]: https://github.com/kristoferjoseph/postcss-color-scale [`postcss-color-short`]: https://github.com/andrepolischuk/postcss-color-short From dbdd456f27055b0dcd950b7e49058fce2f9d6b90 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 17 Sep 2015 17:29:44 +0300 Subject: [PATCH 0727/3047] Fix examples --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7423bd6c4..c87bc8ddd 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ There are plugins for [Grunt], [Gulp], [webpack], [Broccoli], gulp.task('css', function () { var postcss = require('gulp-postcss'); return gulp.src('src/**/*.css') - .pipe( postcss([ require('cssnext')(), require('cssnano')() ]) ) + .pipe( postcss([ require('autoprefixer'), require('cssnano') ]) ) .pipe( gulp.dest('build/') ); }); ``` @@ -129,7 +129,7 @@ For other environments, you can use the [CLI tool] or the JS API: ```js var postcss = require('postcss'); -postcss([ require('cssnext')(), require('cssnano')() ]) +postcss([ require('autoprefixer'), require('cssnano') ]) .process(css, { from: 'src/app.css', to: 'app.css' }) .then(function (result) { fs.writeFileSync('app.css', result.css); From a5178a07d608972322a614a70a8813f8b141bd16 Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Sat, 19 Sep 2015 20:10:21 +0300 Subject: [PATCH 0728/3047] Fix untrimmed decl.value --- lib/parser.es6 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index 0316bf465..4c32600bc 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -352,8 +352,9 @@ export default class Parser { let token; let value = ''; let clean = true; - for ( token of tokens ) { - if ( token[0] === 'comment' ) { + for ( let i = 0, length = tokens.length; i < length; i += 1 ) { + let token = tokens[i]; + if ( token[0] === 'comment' || token[0] === 'space' && i === length - 1 ) { clean = false; } else { value += token[1]; From 95d969de3f854de8d871b79495f9058d863f2bed Mon Sep 17 00:00:00 2001 From: Bogdan Chadkin Date: Sat, 19 Sep 2015 20:25:47 +0300 Subject: [PATCH 0729/3047] fix lint --- lib/parser.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index 4c32600bc..6d670c975 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -353,7 +353,7 @@ export default class Parser { let value = ''; let clean = true; for ( let i = 0, length = tokens.length; i < length; i += 1 ) { - let token = tokens[i]; + token = tokens[i]; if ( token[0] === 'comment' || token[0] === 'space' && i === length - 1 ) { clean = false; } else { From 97334f8f0b9383bc6804cb82de992fa8f2cfb0ac Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 20 Sep 2015 16:28:42 +0500 Subject: [PATCH 0730/3047] Clean up code --- lib/parser.es6 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/parser.es6 b/lib/parser.es6 index 6d670c975..63c0152e9 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -349,12 +349,14 @@ export default class Parser { } raw(node, prop, tokens) { - let token; - let value = ''; - let clean = true; - for ( let i = 0, length = tokens.length; i < length; i += 1 ) { + let token, type; + let length = tokens.length; + let value = ''; + let clean = true; + for ( let i = 0; i < length; i += 1 ) { token = tokens[i]; - if ( token[0] === 'comment' || token[0] === 'space' && i === length - 1 ) { + type = token[0]; + if ( type === 'comment' || type === 'space' && i === length - 1 ) { clean = false; } else { value += token[1]; From 52812efa625fc9cdac7731a28930815a449793d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ben=20Z=C3=B6rb?= Date: Sun, 20 Sep 2015 22:29:03 +0200 Subject: [PATCH 0731/3047] Added postcss-image-inliner to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c87bc8ddd..d87fb38a1 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-image-set`] adds `background-image` with first image for `image-set()`. +* [`postcss-image-inliner`] inlines local and remote images. * [`postcss-font-pack`] simplifies font declarations and validates they match configured font packs. * [`postcss-fontpath`] adds font links for different browsers. @@ -539,6 +540,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units +[`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix From 317c6d81a8a14ae8ef9359c55cabba3927e34ff2 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 21 Sep 2015 08:25:45 +0300 Subject: [PATCH 0732/3047] Added postcss-atroot to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d87fb38a1..f5a211a83 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. ### Language Extensions +* [`postcss-atroot`] place rules directly at the root node. * [`postcss-bem`] adds at-rules for BEM and SUIT style classes. * [`postcss-conditionals`] adds `@if` statements. * [`postcss-css-variables`] supports variables for selectors, and at-rules @@ -617,6 +618,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex [`list-selectors`]: https://github.com/davidtheclark/list-selectors [`mq4-hover-shim`]: https://github.com/twbs/mq4-hover-shim +[`postcss-atroot`]: https://github.com/OEvgeny/postcss-atroot [`postcss-focus`]: https://github.com/postcss/postcss-focus [`postcss-apply`]: https://github.com/pascalduez/postcss-apply [`css2modernizr`]: https://github.com/vovanbo/css2modernizr From b035fc181f14d04600e75e8351a005e49a01bec1 Mon Sep 17 00:00:00 2001 From: Azat S Date: Mon, 21 Sep 2015 11:34:03 +0300 Subject: [PATCH 0733/3047] Add postcss-tatar-stylesheets to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d87fb38a1..06640bded 100644 --- a/README.md +++ b/README.md @@ -480,6 +480,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-german-stylesheets`] German Style Sheets. * [`postcss-russian-stylesheets`] Russian Style Sheets. * [`postcss-swedish-stylesheets`] Swedish Style Sheets. +* [`postcss-tatar-stylesheets`] Tatar Style Sheets * [`postcss-lolcat-stylesheets`] Lolspeak Style Sheets. * [`postcss-imperial`] adds CSS support for Imperial and US customary units of length. * [`postcss-russian-units`] adds CSS support for russian units of length. @@ -494,6 +495,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets [`postcss-russian-stylesheets`]: https://github.com/Semigradsky/postcss-russian-stylesheets +[`postcss-tatar-stylesheets`]: https://github.com/azat-io/postcss-tatar-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets From 6cbb135820acdac01b7d3c7ada7aaa4c55d18b51 Mon Sep 17 00:00:00 2001 From: Azat S Date: Mon, 21 Sep 2015 11:38:04 +0300 Subject: [PATCH 0734/3047] Add postcss-instagram to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 06640bded..20f102378 100644 --- a/README.md +++ b/README.md @@ -360,6 +360,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-image-set`] adds `background-image` with first image for `image-set()`. * [`postcss-image-inliner`] inlines local and remote images. +* [`postcss-instagram`] adds instagram filters to your photos via CSS * [`postcss-font-pack`] simplifies font declarations and validates they match configured font packs. * [`postcss-fontpath`] adds font links for different browsers. @@ -584,6 +585,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-write-svg`]: https://github.com/jonathantneal/postcss-write-svg +[`postcss-instagram`]: https://github.com/azat-io/postcss-instagram [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin [`postcss-cssstats`]: https://github.com/cssstats/postcss-cssstats From 3261822dda913c0ba2f7c3cace609571d8632a63 Mon Sep 17 00:00:00 2001 From: Azat S Date: Mon, 21 Sep 2015 12:33:12 +0300 Subject: [PATCH 0735/3047] Add postcss-responsive-images to readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 20f102378..a4f58109f 100644 --- a/README.md +++ b/README.md @@ -364,6 +364,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-font-pack`] simplifies font declarations and validates they match configured font packs. * [`postcss-fontpath`] adds font links for different browsers. +* [`postcss-responsive-images`] adds stylesheets for making your images responsive * [`postcss-sprites`] generates CSS sprites from stylesheets. * [`postcss-svg`] insert inline SVG to CSS and allows to manage it colors. * [`postcss-svg-fallback`] converts SVG in your CSS to PNG files for IE 8. @@ -496,7 +497,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets [`postcss-russian-stylesheets`]: https://github.com/Semigradsky/postcss-russian-stylesheets -[`postcss-tatar-stylesheets`]: https://github.com/azat-io/postcss-tatar-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets @@ -505,6 +505,8 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight [`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter [`postcss-transform-shortcut`]: https://github.com/jonathantneal/postcss-transform-shortcut +[`postcss-responsive-images`]: https://github.com/azat-io/postcss-responsive-images +[`postcss-tatar-stylesheets`]: https://github.com/azat-io/postcss-tatar-stylesheets [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties [`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors From c73443b6c8dd34553eb1ce316766b84f315da638 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 21 Sep 2015 12:52:38 +0300 Subject: [PATCH 0736/3047] Fix plugin desc --- .yaspellerrc | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index e3776c2a9..200837e6e 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -20,6 +20,7 @@ "PostCSS’s", "postcss", "Shopify", + "Instagram", "Travis", "poststylus", "Gofmt", diff --git a/README.md b/README.md index bc1aad236..b6c24f86a 100644 --- a/README.md +++ b/README.md @@ -361,7 +361,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-image-set`] adds `background-image` with first image for `image-set()`. * [`postcss-image-inliner`] inlines local and remote images. -* [`postcss-instagram`] adds instagram filters to your photos via CSS +* [`postcss-instagram`] adds Instagram filters to `filter`. * [`postcss-font-pack`] simplifies font declarations and validates they match configured font packs. * [`postcss-fontpath`] adds font links for different browsers. From c6b73150a52a271bfbcdbee3a8b667d7a18ade16 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 21 Sep 2015 12:58:04 +0300 Subject: [PATCH 0737/3047] Update dependencies --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0b6eb2069..6c95510d7 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "dependencies": { "supports-color": "^3.1.1", "source-map": "^0.5.0", - "babel-core": "5.8.24", + "babel-core": "5.8.25", "js-base64": "^2.1.9" }, "devDependencies": { @@ -27,8 +27,8 @@ "postcss-parser-tests": "5.0.3", "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", - "run-sequence": "1.1.2", - "babel-eslint": "4.1.1", + "run-sequence": "1.1.3", + "babel-eslint": "4.1.3", "gulp-eslint": "1.0.0", "gulp-mocha": "2.1.3", "gulp-babel": "5.2.1", @@ -37,11 +37,11 @@ "yaspeller": "2.5.0", "fs-extra": "0.24.0", "isparta": "3.0.4", - "eslint": "1.4.1", + "eslint": "1.5.0", "sinon": "1.16.1", - "mocha": "2.3.2", + "mocha": "2.3.3", "gulp": "3.9.0", - "chai": "3.2.0", + "chai": "3.3.0", "del": "2.0.2" }, "scripts": { From 46c9375e92c9a2b3d6064014c7a2789bfe8266dc Mon Sep 17 00:00:00 2001 From: Matt Drake Date: Mon, 21 Sep 2015 06:40:56 -0700 Subject: [PATCH 0738/3047] parse nested at-rules without trailing semicolon --- lib/parser.es6 | 3 +++ test/parse.es6 | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/lib/parser.es6 b/lib/parser.es6 index 63c0152e9..1fe747dd6 100644 --- a/lib/parser.es6 +++ b/lib/parser.es6 @@ -275,6 +275,9 @@ export default class Parser { } else if ( token[0] === '{' ) { open = true; break; + } else if ( token[0] === '}') { + this.end(token); + break; } else { params.push(token); } diff --git a/test/parse.es6 b/test/parse.es6 index 98d502a6f..0c5c022ce 100644 --- a/test/parse.es6 +++ b/test/parse.es6 @@ -63,6 +63,12 @@ describe('postcss.parse()', () => { expect(root.first.first.value).to.eql('())'); }); + it('parses nested at-rules without trailing semicolon', () => { + let root = parse('a { @import "a.css" }'); + expect(root.first.first.name).to.eql('import'); + expect(root.first.first.params).to.eql('"a.css"'); + }); + describe('errors', () => { it('throws on unclosed blocks', () => { From a45b47f8f8ab34c5402022ef06629567593d4391 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Mon, 21 Sep 2015 09:46:38 -0400 Subject: [PATCH 0739/3047] Update short plugin pack --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b6c24f86a..53ed9d89e 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`precss`] contains plugins that allow you to use Sass-like CSS. * [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. +* [`short`] adds and extends numerous shorthand properties. * [`stylelint`] contains plugins that lint your stylesheets. [`stylelint`]: https://github.com/stylelint/stylelint @@ -424,7 +425,6 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-property-lookup`] allows referencing property values without a variable. * [`postcss-responsive-type`] changes `font-size` depends on screen size. -* [`postcss-short`] adds and extends numerous shorthand properties. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-transform-shortcut`] allows shorthand transform properties in CSS. @@ -630,7 +630,6 @@ See also plugins in modular minifier [`cssnano`]. [`css2modernizr`]: https://github.com/vovanbo/css2modernizr [`font-magician`]: https://github.com/jonathantneal/postcss-font-magician [`postcss-match`]: https://github.com/rtsao/postcss-match -[`postcss-short`]: https://github.com/jonathantneal/postcss-short [`postcss-alias`]: https://github.com/seaneking/postcss-alias [`perfectionist`]: https://github.com/ben-eb/perfectionist [`immutable-css`]: https://github.com/johnotander/immutable-css @@ -662,6 +661,7 @@ See also plugins in modular minifier [`cssnano`]. [`doiuse`]: https://github.com/anandthakker/doiuse [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`short`]: https://github.com/jonathantneal/postcss-short [`lost`]: https://github.com/corysimmons/lost ## How to Develop for PostCSS From fdbfdf4a6fa216f065a4a6cc9d04f50cc0a1802d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Galv=C3=A3o?= Date: Mon, 21 Sep 2015 17:29:27 +0100 Subject: [PATCH 0740/3047] README.md: use cssnano's homepage, instead of github repo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53ed9d89e..7351d0b72 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: [`stylelint`]: https://github.com/stylelint/stylelint [`rucksack`]: http://simplaio.github.io/rucksack -[`cssnano`]: https://github.com/ben-eb/cssnano +[`cssnano`]: http://cssnano.co/ [`cssnext`]: http://cssnext.io/ [`precss`]: https://github.com/jonathantneal/precss [`atcss`]: https://github.com/morishitter/atcss From b76b28cab1ceddedd13ddf9daa21c28cf9534421 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 21 Sep 2015 19:32:32 +0300 Subject: [PATCH 0741/3047] Move at-rule test to postcss-parser-test --- package.json | 2 +- test/parse.es6 | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/package.json b/package.json index 6c95510d7..a2d2e48e3 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "5.0.3", + "postcss-parser-tests": "5.0.4", "gulp-json-editor": "2.2.1", "gulp-istanbul": "0.10.0", "run-sequence": "1.1.3", diff --git a/test/parse.es6 b/test/parse.es6 index 0c5c022ce..98d502a6f 100644 --- a/test/parse.es6 +++ b/test/parse.es6 @@ -63,12 +63,6 @@ describe('postcss.parse()', () => { expect(root.first.first.value).to.eql('())'); }); - it('parses nested at-rules without trailing semicolon', () => { - let root = parse('a { @import "a.css" }'); - expect(root.first.first.name).to.eql('import'); - expect(root.first.first.params).to.eql('"a.css"'); - }); - describe('errors', () => { it('throws on unclosed blocks', () => { From f2a78af88e405419a4974a2cbb21293a41fa6108 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 21 Sep 2015 19:38:05 +0300 Subject: [PATCH 0742/3047] Release 5.0.6 version --- CHANGELOG.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18a1466b4..c6a3e7bc2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.6 +* Fix parsing nested at-rule without semicolon (by Matt Drake). +* Trim `Declaration#value` (by Bogdan Chadkin). + ## 5.0.5 * Fix multi-tokens property parsing (by Matt Drake). diff --git a/package.json b/package.json index a2d2e48e3..bbe34d01d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.5", + "version": "5.0.6", "description": "Tool for transforming styles with JS plugins", "keywords": [ "css", From f032a3d1f58a24969e121ab06ab6bff688ddb552 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Thu, 24 Sep 2015 00:45:04 +0100 Subject: [PATCH 0743/3047] Add colorguard to the readme. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7351d0b72..ae2d6bcb8 100644 --- a/README.md +++ b/README.md @@ -350,6 +350,7 @@ See also [`precss`] plugins pack to add them by one line of code. colorblindness. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. * [`postcss-rgb-plz`] converts 3 or 6 digit hex values to `rgb`. +* [`colorguard`] helps maintain a consistent color palette. ### Images and Fonts @@ -652,6 +653,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-map`]: https://github.com/pascalduez/postcss-map [`postcss-svg`]: https://github.com/Pavliko/postcss-svg [`postcss-url`]: https://github.com/postcss/postcss-url +[`colorguard`]: https://github.com/SlexAxton/css-colorguard [`stylehacks`]: https://github.com/ben-eb/stylehacks [`css-byebye`]: https://github.com/AoDev/css-byebye [`cssgrace`]: https://github.com/cssdream/cssgrace From 82bec098d96e972cd51f523de6d6cf096d60a8c2 Mon Sep 17 00:00:00 2001 From: Henry Snopek Date: Wed, 23 Sep 2015 19:29:51 -0500 Subject: [PATCH 0744/3047] Add duo plugin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ae2d6bcb8..ad9854f86 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ Start using PostCSS in just two steps: 2. Select plugins from the list below and add them to your PostCSS process. There are plugins for [Grunt], [Gulp], [webpack], [Broccoli], -[Brunch], [ENB], [Fly], [Stylus] and [Connect/Express]. +[Brunch], [ENB], [Fly], [Stylus], [Duo] and [Connect/Express]. ```js gulp.task('css', function () { @@ -158,6 +158,7 @@ Read the [PostCSS API] for more details about the JS API. [Gulp]: https://github.com/postcss/gulp-postcss [ENB]: https://github.com/theprotein/enb-postcss [Fly]: https://github.com/postcss/fly-postcss +[Duo]: https://github.com/duojs/duo ## Custom Syntaxes From 0580c6ff2e2dc97dbb2bef297c75afc6af9fdab5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 24 Sep 2015 01:30:58 +0100 Subject: [PATCH 0745/3047] Fix link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ad9854f86..80ed89e9a 100644 --- a/README.md +++ b/README.md @@ -158,7 +158,7 @@ Read the [PostCSS API] for more details about the JS API. [Gulp]: https://github.com/postcss/gulp-postcss [ENB]: https://github.com/theprotein/enb-postcss [Fly]: https://github.com/postcss/fly-postcss -[Duo]: https://github.com/duojs/duo +[Duo]: https://github.com/duojs/duo ## Custom Syntaxes From 5cf59cc8ec8b2c49d0fd9a6c2804a49495d48b15 Mon Sep 17 00:00:00 2001 From: "Howard.Zuo" Date: Fri, 25 Sep 2015 17:43:47 +0800 Subject: [PATCH 0746/3047] add engine restriction since native Promise is used --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index bbe34d01d..3d4ef17cc 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,9 @@ "name": "postcss", "version": "5.0.6", "description": "Tool for transforming styles with JS plugins", + "engines": { + "node": ">=0.12" + }, "keywords": [ "css", "postcss", From 9c94147166f000969fd45c2af288b33e901f053f Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Fri, 25 Sep 2015 11:32:23 +0100 Subject: [PATCH 0747/3047] Update changelog. --- .yaspellerrc | 1 + CHANGELOG.md | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/.yaspellerrc b/.yaspellerrc index 200837e6e..135e3aee0 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -51,6 +51,7 @@ "Andromalius", "Andrealphus", "Andras", + "Zuo", "Jed", "Neal", "Valac", diff --git a/CHANGELOG.md b/CHANGELOG.md index c6a3e7bc2..67453d88c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.7 +* PostCSS now requires that node 0.12 is installed via the engines property + in package.json (by Howard Zuo). + ## 5.0.6 * Fix parsing nested at-rule without semicolon (by Matt Drake). * Trim `Declaration#value` (by Bogdan Chadkin). From d3f1ea2ceb7a327f90034e607e061bf836e3bed6 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Fri, 25 Sep 2015 11:33:25 +0100 Subject: [PATCH 0748/3047] 5.0.7 --- package.json | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 3d4ef17cc..21fae077b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.6", + "version": "5.0.7", "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=0.12" @@ -21,31 +21,31 @@ "repository": "postcss/postcss", "dependencies": { "supports-color": "^3.1.1", - "source-map": "^0.5.0", - "babel-core": "5.8.25", - "js-base64": "^2.1.9" + "source-map": "^0.5.0", + "babel-core": "5.8.25", + "js-base64": "^2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.2", - "postcss-parser-tests": "5.0.4", - "gulp-json-editor": "2.2.1", - "gulp-istanbul": "0.10.0", - "run-sequence": "1.1.3", - "babel-eslint": "4.1.3", - "gulp-eslint": "1.0.0", - "gulp-mocha": "2.1.3", - "gulp-babel": "5.2.1", - "strip-ansi": "3.0.0", - "gulp-shell": "0.4.3", - "yaspeller": "2.5.0", - "fs-extra": "0.24.0", - "isparta": "3.0.4", - "eslint": "1.5.0", - "sinon": "1.16.1", - "mocha": "2.3.3", - "gulp": "3.9.0", - "chai": "3.3.0", - "del": "2.0.2" + "postcss-parser-tests": "5.0.4", + "gulp-json-editor": "2.2.1", + "gulp-istanbul": "0.10.0", + "run-sequence": "1.1.3", + "babel-eslint": "4.1.3", + "gulp-eslint": "1.0.0", + "gulp-mocha": "2.1.3", + "gulp-babel": "5.2.1", + "strip-ansi": "3.0.0", + "gulp-shell": "0.4.3", + "yaspeller": "2.5.0", + "fs-extra": "0.24.0", + "isparta": "3.0.4", + "eslint": "1.5.0", + "sinon": "1.16.1", + "mocha": "2.3.3", + "gulp": "3.9.0", + "chai": "3.3.0", + "del": "2.0.2" }, "scripts": { "test": "gulp" From 978756dc8352c1a20281663c4f83114bbb3ebf61 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Fri, 25 Sep 2015 12:15:37 +0100 Subject: [PATCH 0749/3047] Release 5.0.8 version. --- CHANGELOG.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67453d88c..354b9f3e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.8 +* Fixed a missed step in `5.0.7` that caused the module to be published as + ES6 code. + ## 5.0.7 * PostCSS now requires that node 0.12 is installed via the engines property in package.json (by Howard Zuo). diff --git a/package.json b/package.json index 21fae077b..396161111 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.7", + "version": "5.0.8", "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=0.12" From b5fe552d84a0bbee04e444f73d5a077976c98864 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 26 Sep 2015 17:05:13 +0100 Subject: [PATCH 0750/3047] Update postcss-remove documentation. --- docs/api.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api.md b/docs/api.md index f33f9a426..cc3447c7f 100644 --- a/docs/api.md +++ b/docs/api.md @@ -79,6 +79,7 @@ Creates a PostCSS plugin with a standard API. ```js var remove = postcss.plugin('postcss-remove', function (opts) { + opts = opts || {}; var filter = opts.prop || 'z-index'; return function (css, result) { css.walkDecls(filter, function (decl) { From f0b25b96da56dc95f96c37754f1a188d0a9f0626 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 26 Sep 2015 17:15:58 +0100 Subject: [PATCH 0751/3047] Update use() documentation. --- docs/api.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api.md b/docs/api.md index cc3447c7f..0a2c9601d 100644 --- a/docs/api.md +++ b/docs/api.md @@ -88,8 +88,8 @@ var remove = postcss.plugin('postcss-remove', function (opts) { }; }); -postcss().use(remove) // with default options -postcss().use(remove({ prop: 'color' })) // with options +postcss([ remove ]) // with default options +postcss([ remove({ prop: 'color' })]) // with options ``` Arguments: @@ -259,7 +259,7 @@ Adds a plugin to be used as a CSS processor. ```js var processor = postcss(); -processor.use(autoprefixer).use(cssnext).use(cssgrace); +processor.use(autoprefixer()).use(cssnext()).use(cssgrace()); ``` Arguments: From 8116c1f3c843ae4ecc639e77d575fb2d031ffacf Mon Sep 17 00:00:00 2001 From: Scrum Date: Sat, 26 Sep 2015 19:17:19 +0300 Subject: [PATCH 0752/3047] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80ed89e9a..b8d81c855 100644 --- a/README.md +++ b/README.md @@ -305,6 +305,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. +* [`postcss-for-variables`] adds support custom property in at-rules `@for` loops * [`postcss-functions`] enables exposure of JavaScript functions. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. @@ -548,7 +549,8 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units -[`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner +[`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner` +[`postcss-for-variables`]: https://github.com/GitScrum/postcss-for-variables [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix From 29c232042c2ec8fbd47b98cd90c24b7ee81b8dbc Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 26 Sep 2015 20:41:39 +0100 Subject: [PATCH 0753/3047] Tidy up readme. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b8d81c855..1a2ceaac2 100644 --- a/README.md +++ b/README.md @@ -305,7 +305,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. -* [`postcss-for-variables`] adds support custom property in at-rules `@for` loops +* [`postcss-for-variables`] adds support for custom properties in at-rules + `@for` loops. * [`postcss-functions`] enables exposure of JavaScript functions. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. @@ -549,7 +550,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units -[`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner` +[`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner [`postcss-for-variables`]: https://github.com/GitScrum/postcss-for-variables [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors From 860f4ee13f513c9fa4abb2bd308fb6a48fab61b9 Mon Sep 17 00:00:00 2001 From: Ben Briggs Date: Sat, 26 Sep 2015 22:58:06 +0100 Subject: [PATCH 0754/3047] Add postcss-color-yiq to the readme. --- .yaspellerrc | 3 ++- README.md | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 135e3aee0..0b194aa66 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -119,6 +119,7 @@ "JS", "js", "vs", - "pantone" + "pantone", + "YIQ" ] } diff --git a/README.md b/README.md index 1a2ceaac2..4ce9be7bb 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-color-pantone`] transforms pantone color to RGB. * [`postcss-color-scale`] adds a color scale `cs()` function. * [`postcss-color-short`] adds shorthand color declarations. +* [`postcss-color-yiq`] sets foreground colors using the YIQ color space. * [`postcss-colorblind`] transforms colors using filters to simulate colorblindness. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. @@ -591,6 +592,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl [`postcss-color-hwb`]: https://github.com/postcss/postcss-color-hwb [`postcss-color-mix`]: https://github.com/iamstarkov/postcss-color-mix +[`postcss-color-yiq`]: https://github.com/ben-eb/postcss-color-yiq [`postcss-image-set`]: https://github.com/alex499/postcss-image-set [`postcss-write-svg`]: https://github.com/jonathantneal/postcss-write-svg [`postcss-instagram`]: https://github.com/azat-io/postcss-instagram From f19a73f481c29826c8685c05c4aa0e12529f06a0 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Sun, 27 Sep 2015 19:09:34 -0500 Subject: [PATCH 0755/3047] Add postcss-reverse-media to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4ce9be7bb..d32afd72c 100644 --- a/README.md +++ b/README.md @@ -321,6 +321,7 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-nested-vars`] supports nested Sass-style variables. * [`postcss-pseudo-class-enter`] transforms `:enter` into `:hover` and `:focus`. * [`postcss-quantity-queries`] enables quantity queries. +* [`postcss-reverse-media`] reverse/Invert media query parameters. * [`postcss-sassy-mixins`] enables mixins with Sass keywords. * [`postcss-simple-extend`] lightweight extending of silent classes, like Sass’ `@extend`. @@ -557,6 +558,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals +[`postcss-reverse-media`]: https://github.com/MadLittleMods/postcss-reverse-media [`postcss-sassy-mixins`]: https://github.com/andyjansson/postcss-sassy-mixins [`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit From bcd668479e5b4475bba786062d5c85fee579cf70 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Tue, 29 Sep 2015 09:57:56 -0400 Subject: [PATCH 0756/3047] Adds unique short plugins --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index d32afd72c..06cf5139c 100644 --- a/README.md +++ b/README.md @@ -431,6 +431,10 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-property-lookup`] allows referencing property values without a variable. * [`postcss-responsive-type`] changes `font-size` depends on screen size. +* [`postcss-short-font-size`] extends `font-size` to define line-height as a second value. +* [`postcss-short-position`] extends `position` to define edges as additional values. +* [`postcss-short-spacing`] extends `margin` and `padding` to allow for omitted edges. +* [`postcss-short-text`] adds a `text` shortcut property for several text-related properties. * [`postcss-size`] adds a `size` shortcut that sets width and height with one declaration. * [`postcss-transform-shortcut`] allows shorthand transform properties in CSS. @@ -534,11 +538,13 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-remove-prefixes`]: https://github.com/johnotander/postcss-remove-prefixes [`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type [`postcss-round-subpixels`]: https://github.com/himynameisdave/postcss-round-subpixels +[`postcss-short-font-size`]: https://github.com/jonathantneal/postcss-short-font-size [`postcss-color-function`]: https://github.com/postcss/postcss-color-function [`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-partial-import`]: https://github.com/jonathantneal/postcss-partial-import [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements +[`postcss-short-position`]: https://github.com/jonathantneal/postcss-short-position [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes [`postcss-alias-atrules`]: https://github.com/maximkoretskiy/postcss-alias-atrules @@ -550,6 +556,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-modular-scale`]: https://github.com/kristoferjoseph/postcss-modular-scale [`postcss-normalize-url`]: https://github.com/ben-eb/postcss-normalize-url [`postcss-reduce-idents`]: https://github.com/ben-eb/postcss-reduce-idents +[`postcss-short-spacing`]: https://github.com/jonathantneal/postcss-short-spacing [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units [`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner @@ -588,6 +595,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-color-gray`]: https://github.com/postcss/postcss-color-gray [`postcss-colorblind`]: https://github.com/btholt/postcss-colorblind [`postcss-color-hexa`]: https://github.com/nicksheffield/postcss-color-hexa +[`postcss-short-text`]: https://github.com/jonathantneal/postcss-short-text [`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset [`postcss-font-pack`]: https://github.com/jedmao/postcss-font-pack [`postcss-functions`]: https://github.com/andyjansson/postcss-functions From 2e3313475d462a05fa271ca704de045eeccb8aa9 Mon Sep 17 00:00:00 2001 From: Dmitry Semigradsky Date: Wed, 30 Sep 2015 20:58:44 +0300 Subject: [PATCH 0757/3047] Add 'gitter' to .yaspellerrc Fix build error in #589 --- .yaspellerrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index 0b194aa66..dcf486f15 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -120,6 +120,7 @@ "js", "vs", "pantone", - "YIQ" + "YIQ", + "gitter" ] } From 77d80ef830f5e822e8fdc1aaed0a98f51ffb8cc5 Mon Sep 17 00:00:00 2001 From: Samuel Allen Date: Wed, 30 Sep 2015 08:52:12 -0500 Subject: [PATCH 0758/3047] Adding support / discussion link so new users know where to ask questions --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 06cf5139c..9bc7a850f 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ But PostCSS is modular, 3-30 times faster, and much more powerful. Twitter account: [@postcss](https://twitter.com/postcss). VK.com page: [postcss](https://vk.com/postcss). +Support / Discussion: [gitter](https://gitter.im/postcss/postcss). + [appveyor-img]: https://img.shields.io/appveyor/ci/ai/postcss.svg?label=windows [travis-img]: https://img.shields.io/travis/postcss/postcss.svg?label=unix [chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg From 6706d7558870d2cbeb43eee4e5c6ed8364b0d74a Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Mon, 5 Oct 2015 10:28:39 -0400 Subject: [PATCH 0759/3047] Add oldie plugin pack --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9bc7a850f..7bde70047 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: to special annotation comments. * [`cssnano`] contains plugins that optimize CSS size for use in production. * [`cssnext`] contains plugins that allow you to use future CSS features today. +* [`oldie`] contains plugins that transform your CSS for older Internet Explorer compatibility. * [`precss`] contains plugins that allow you to use Sass-like CSS. * [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. @@ -249,6 +250,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: [`rucksack`]: http://simplaio.github.io/rucksack [`cssnano`]: http://cssnano.co/ [`cssnext`]: http://cssnext.io/ +[`oldie`]: https://github.com/jonathantneal/oldie [`precss`]: https://github.com/jonathantneal/precss [`atcss`]: https://github.com/morishitter/atcss From 22992140bb97a398452b41a3e6af58c4bd1e8ac3 Mon Sep 17 00:00:00 2001 From: John Otander Date: Mon, 5 Oct 2015 16:51:00 -0600 Subject: [PATCH 0760/3047] Add postcss-shorthand-expand plugin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7bde70047..d1c0eb03b 100644 --- a/README.md +++ b/README.md @@ -463,6 +463,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pseudo-content-insert`] adds `content: ''` to `:before` and `:after` if it is missing. * [`postcss-pxtorem`] converts pixel units to `rem`. +* [`postcss-shorthand-expand`] expands shorthand properties. * [`postcss-remove-prefixes`] removes vendor prefixes. * [`postcss-style-guide`] generates a style guide automatically. * [`postcss-scopify`] adds a user input scope to each selector. @@ -531,6 +532,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-quantity-queries`]: https://github.com/pascalduez/postcss-quantity-queries [`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter [`postcss-selector-matches`]: https://github.com/postcss/postcss-selector-matches +[`postcss-shorthand-expand`]: https://github.com/johnotander/postcss-shorthand-expand [`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha [`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property From 489a0a67c9ed25f6cb24530185a064fd83dc0339 Mon Sep 17 00:00:00 2001 From: discopalevo Date: Tue, 29 Sep 2015 13:05:00 +0300 Subject: [PATCH 0761/3047] Detect source-maps created by mozilla/source-map fix #583 --- lib/previous-map.es6 | 12 +++++++++++- test/previous-map.es6 | 12 ++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/previous-map.es6 b/lib/previous-map.es6 index ebbdf4d8d..4f9ae8cbe 100644 --- a/lib/previous-map.es6 +++ b/lib/previous-map.es6 @@ -67,7 +67,7 @@ export default class PreviousMap { .fromSourceMap(prev).toString(); } else if ( prev instanceof mozilla.SourceMapGenerator ) { return prev.toString(); - } else if ( typeof prev === 'object' && prev.mappings ) { + } else if ( this.looksLikeMap(prev) ) { return JSON.stringify(prev); } else { throw new Error('Unsupported previous source map format: ' + @@ -90,4 +90,14 @@ export default class PreviousMap { } } + looksLikeMap(map) { + if ( typeof map !== 'object' ) return false; + + if (map.mappings || map._mappings) { + return true; + } else { + return false; + } + + } } diff --git a/test/previous-map.es6 b/test/previous-map.es6 index 4197c1963..2ca5d85ce 100644 --- a/test/previous-map.es6 +++ b/test/previous-map.es6 @@ -1,18 +1,21 @@ import parse from '../lib/parse'; import mozilla from 'source-map'; +import mozilla2 from 'isparta/node_modules/source-map'; import fs from 'fs-extra'; import path from 'path'; import { expect } from 'chai'; let dir = path.join(__dirname, 'fixtures'); -let map = JSON.stringify({ +let mapObj = { version: 3, file: null, sources: [], names: [], mappings: [] -}); +}; +let map = JSON.stringify(mapObj); +let mapMoz = new mozilla2.SourceMapGenerator(mapObj); describe('PreviousMap', () => { afterEach( () => { @@ -28,6 +31,11 @@ describe('PreviousMap', () => { expect(root.source.input.map.text).to.eql(map); }); + it('works with source-map from different package', () => { + let parsing = () => parse('a{}', { map: { prev: mapMoz } }); + expect(parsing).not.to.throw(); + }); + it('returns consumer', () => { expect(parse('a{}', { map: { prev: map } }).source.input.map.consumer()) .to.be.a.instanceOf(mozilla.SourceMapConsumer); From 0ead2031973c2a09288ee73d2ae26933ce191270 Mon Sep 17 00:00:00 2001 From: Scrum Date: Thu, 8 Oct 2015 18:05:51 +0300 Subject: [PATCH 0762/3047] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d1c0eb03b..6a4c84205 100644 --- a/README.md +++ b/README.md @@ -309,8 +309,8 @@ See also [`cssnext`] plugins pack to add future CSS syntax by one line of code. * [`postcss-define-property`] to define properties shortcut. * [`postcss-each`] adds `@each` statement. * [`postcss-for`] adds `@for` loops. -* [`postcss-for-variables`] adds support for custom properties in at-rules - `@for` loops. +* [`postcss-at-rules-variables`] adds support for custom properties in at-rules + `@for`, `@each`, `@if` and more. * [`postcss-functions`] enables exposure of JavaScript functions. * [`postcss-local-constants`] adds support for localized constants. * [`postcss-map`] enables configuration maps. @@ -521,6 +521,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight [`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter [`postcss-transform-shortcut`]: https://github.com/jonathantneal/postcss-transform-shortcut +[`postcss-at-rules-variables`]: https://github.com/GitScrum/postcss-at-rules-variables [`postcss-responsive-images`]: https://github.com/azat-io/postcss-responsive-images [`postcss-tatar-stylesheets`]: https://github.com/azat-io/postcss-tatar-stylesheets [`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties @@ -566,7 +567,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units [`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner -[`postcss-for-variables`]: https://github.com/GitScrum/postcss-for-variables [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix From 83b4008e9ac0a9f637188b6b877a35f1d14a95f9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 8 Oct 2015 18:40:44 +0100 Subject: [PATCH 0763/3047] Update npm dependencies --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 396161111..c0e138d31 100644 --- a/package.json +++ b/package.json @@ -21,27 +21,27 @@ "repository": "postcss/postcss", "dependencies": { "supports-color": "^3.1.1", - "source-map": "^0.5.0", + "source-map": "^0.5.1", "babel-core": "5.8.25", "js-base64": "^2.1.9" }, "devDependencies": { - "concat-with-sourcemaps": "1.0.2", + "concat-with-sourcemaps": "1.0.4", "postcss-parser-tests": "5.0.4", "gulp-json-editor": "2.2.1", - "gulp-istanbul": "0.10.0", - "run-sequence": "1.1.3", + "gulp-istanbul": "0.10.1", + "run-sequence": "1.1.4", "babel-eslint": "4.1.3", "gulp-eslint": "1.0.0", "gulp-mocha": "2.1.3", "gulp-babel": "5.2.1", "strip-ansi": "3.0.0", - "gulp-shell": "0.4.3", + "gulp-shell": "0.5.0", "yaspeller": "2.5.0", "fs-extra": "0.24.0", - "isparta": "3.0.4", - "eslint": "1.5.0", - "sinon": "1.16.1", + "isparta": "3.1.0", + "eslint": "1.6.0", + "sinon": "1.17.1", "mocha": "2.3.3", "gulp": "3.9.0", "chai": "3.3.0", From a581f68783c853dd159885b1f918707526fa6bbf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 8 Oct 2015 18:40:51 +0100 Subject: [PATCH 0764/3047] Clean up code --- lib/previous-map.es6 | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/previous-map.es6 b/lib/previous-map.es6 index 4f9ae8cbe..c5118b95d 100644 --- a/lib/previous-map.es6 +++ b/lib/previous-map.es6 @@ -67,7 +67,7 @@ export default class PreviousMap { .fromSourceMap(prev).toString(); } else if ( prev instanceof mozilla.SourceMapGenerator ) { return prev.toString(); - } else if ( this.looksLikeMap(prev) ) { + } else if ( this.isMap(prev) ) { return JSON.stringify(prev); } else { throw new Error('Unsupported previous source map format: ' + @@ -90,14 +90,8 @@ export default class PreviousMap { } } - looksLikeMap(map) { + isMap(map) { if ( typeof map !== 'object' ) return false; - - if (map.mappings || map._mappings) { - return true; - } else { - return false; - } - + return map.mappings || map._mappings; } } From 9b9e7464f36d8b56614c529347f999a791ef56bb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 8 Oct 2015 19:23:37 +0100 Subject: [PATCH 0765/3047] I so love ASCII art :D --- package.json | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index c0e138d31..0a96b473f 100644 --- a/package.json +++ b/package.json @@ -21,31 +21,31 @@ "repository": "postcss/postcss", "dependencies": { "supports-color": "^3.1.1", - "source-map": "^0.5.1", - "babel-core": "5.8.25", - "js-base64": "^2.1.9" + "source-map": "^0.5.1", + "babel-core": "5.8.25", + "js-base64": "^2.1.9" }, "devDependencies": { "concat-with-sourcemaps": "1.0.4", - "postcss-parser-tests": "5.0.4", - "gulp-json-editor": "2.2.1", - "gulp-istanbul": "0.10.1", - "run-sequence": "1.1.4", - "babel-eslint": "4.1.3", - "gulp-eslint": "1.0.0", - "gulp-mocha": "2.1.3", - "gulp-babel": "5.2.1", - "strip-ansi": "3.0.0", - "gulp-shell": "0.5.0", - "yaspeller": "2.5.0", - "fs-extra": "0.24.0", - "isparta": "3.1.0", - "eslint": "1.6.0", - "sinon": "1.17.1", - "mocha": "2.3.3", - "gulp": "3.9.0", - "chai": "3.3.0", - "del": "2.0.2" + "postcss-parser-tests": "5.0.4", + "gulp-json-editor": "2.2.1", + "gulp-istanbul": "0.10.1", + "run-sequence": "1.1.4", + "babel-eslint": "4.1.3", + "gulp-eslint": "1.0.0", + "gulp-mocha": "2.1.3", + "gulp-babel": "5.2.1", + "strip-ansi": "3.0.0", + "gulp-shell": "0.5.0", + "yaspeller": "2.5.0", + "fs-extra": "0.24.0", + "isparta": "3.1.0", + "eslint": "1.6.0", + "sinon": "1.17.1", + "mocha": "2.3.3", + "gulp": "3.9.0", + "chai": "3.3.0", + "del": "2.0.2" }, "scripts": { "test": "gulp" From a7614776e94b31cf54e8bc6738266886cd83ce4a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 8 Oct 2015 19:30:09 +0100 Subject: [PATCH 0766/3047] Release 5.0.9 version --- .yaspellerrc | 1 + CHANGELOG.md | 3 +++ package.json | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.yaspellerrc b/.yaspellerrc index dcf486f15..103e47744 100644 --- a/.yaspellerrc +++ b/.yaspellerrc @@ -51,6 +51,7 @@ "Andromalius", "Andrealphus", "Andras", + "asan", "Zuo", "Jed", "Neal", diff --git a/CHANGELOG.md b/CHANGELOG.md index 354b9f3e7..20aec0868 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 5.0.9 +* Fix source map type detection (by @asan). + ## 5.0.8 * Fixed a missed step in `5.0.7` that caused the module to be published as ES6 code. diff --git a/package.json b/package.json index 0a96b473f..60d3cbb12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "5.0.8", + "version": "5.0.9", "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=0.12" From 457f97b6628f9659f11d4b300b67ebbaef68f86c Mon Sep 17 00:00:00 2001 From: Alessandro Zanardi Date: Sun, 11 Oct 2015 16:06:12 +0200 Subject: [PATCH 0767/3047] Update README.md Added html-postcss reference, to process CSS within HTML files. Closes #596. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 6a4c84205..e494edac4 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,9 @@ var postcss = require('postcss'); Read the [PostCSS API] for more details about the JS API. +To process CSS within the `') + * document.type //=> 'document' + * document.nodes.length //=> 2 + * ``` + */ +export default class Document extends Container { + type: 'document' + parent: undefined + + constructor(defaults?: DocumentProps) + + /** + * Returns a `Result` instance representing the document’s CSS roots. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * const document = postcss.document() + * document.append(root1) + * document.append(root2) + * const result = document.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param opts Options. + * @return Result with current document’s CSS. + */ + toResult(options?: ProcessOptions): Result + + /** + * An array containing the container’s children. + * + * ```js + * const root = postcss.parse('a { color: black }') + * root.nodes.length //=> 1 + * root.nodes[0].selector //=> 'a' + * root.nodes[0].nodes[0].prop //=> 'color' + * ``` + */ + // @ts-expect-error + nodes: Root[] + + /** + * The container’s first child. + * + * ```js + * rule.first === rules.nodes[0] + * ``` + */ + // @ts-expect-error + get first(): ChildNode | undefined + + /** + * The container’s last child. + * + * ```js + * rule.last === rule.nodes[rule.nodes.length - 1] + * ``` + */ + // @ts-expect-error + get last(): ChildNode | undefined + + /** + * Iterates through the container’s immediate children, + * calling `callback` for each child. + * + * Returning `false` in the callback will break iteration. + * + * This method only iterates through the container’s immediate children. + * If you need to recursively iterate through all the container’s descendant + * nodes, use `Container#walk`. + * + * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe + * if you are mutating the array of child nodes during iteration. + * PostCSS will adjust the current index to match the mutations. + * + * ```js + * const root = postcss.parse('a { color: black; z-index: 1 }') + * const rule = root.first + * + * for (const decl of rule.nodes) { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Cycle will be infinite, because cloneBefore moves the current node + * // to the next index + * } + * + * rule.each(decl => { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Will be executed only for color and z-index + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + // @ts-expect-error + each( + callback: (node: ChildNode, index: number) => false | void + ): false | undefined + + /** + * Inserts new nodes to the end of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.append(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + append(...nodes: (ChildProps | ChildProps[])[]): this + + /** + * Inserts new nodes to the start of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.prepend(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + prepend(...nodes: (ChildProps | ChildProps[])[]): this + + /** + * Add child to the end of the node. + * + * ```js + * rule.push(new Declaration({ prop: 'color', value: 'black' })) + * ``` + * + * @param child New node. + * @return This node for methods chain. + */ + // @ts-expect-error + push(child: ChildNode): this + + /** + * Insert new node before old node within the container. + * + * ```js + * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) + * ``` + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + // @ts-expect-error + insertBefore( + oldNode: ChildNode | number, + newNode: ChildNode | ChildProps | ChildNode[] | ChildProps[] + ): this + + /** + * Insert new node after old node within the container. + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + // @ts-expect-error + insertAfter( + oldNode: ChildNode | number, + newNode: ChildNode | ChildProps | ChildNode[] | ChildProps[] + ): this + + /** + * Removes node from the container and cleans the parent properties + * from the node and its children. + * + * ```js + * rule.nodes.length //=> 5 + * rule.removeChild(decl) + * rule.nodes.length //=> 4 + * decl.parent //=> undefined + * ``` + * + * @param child Child or child’s index. + * @return This node for methods chain. + */ + // @ts-expect-error + removeChild(child: ChildNode | number): this + + /** + * Returns `true` if callback returns `true` + * for all of the container’s children. + * + * ```js + * const noPrefixes = rule.every(i => i.prop[0] !== '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is every child pass condition. + */ + // @ts-expect-error + every( + condition: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean + ): boolean + + /** + * Returns `true` if callback returns `true` for (at least) one + * of the container’s children. + * + * ```js + * const hasPrefix = rule.some(i => i.prop[0] === '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is some child pass condition. + */ + // @ts-expect-error + some( + condition: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean + ): boolean + + /** + * Returns a `child`’s index within the `Container#nodes` array. + * + * ```js + * rule.index( rule.nodes[2] ) //=> 2 + * ``` + * + * @param child Child of the current container. + * @return Child index. + */ + // @ts-expect-error + index(child: ChildNode | number): number +} diff --git a/lib/document.js b/lib/document.js new file mode 100644 index 000000000..44689917f --- /dev/null +++ b/lib/document.js @@ -0,0 +1,33 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Document extends Container { + constructor(defaults) { + // type needs to be passed to super, otherwise child roots won't be normalized correctly + super({ type: 'document', ...defaults }) + + if (!this.nodes) { + this.nodes = [] + } + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + + return lazy.stringify() + } +} + +Document.registerLazyResult = dependant => { + LazyResult = dependant +} + +Document.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Document +Document.default = Document diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 6d9674969..d5503f335 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -7,8 +7,10 @@ let warnOnce = require('./warn-once') let Result = require('./result') let parse = require('./parse') let Root = require('./root') +let Document = require('./document') const TYPE_TO_CLASS_NAME = { + document: 'Document', root: 'Root', atrule: 'AtRule', rule: 'Rule', @@ -20,6 +22,7 @@ const PLUGIN_PROPS = { postcssPlugin: true, prepare: true, Once: true, + Document: true, Root: true, Declaration: true, Rule: true, @@ -30,6 +33,7 @@ const PLUGIN_PROPS = { AtRuleExit: true, CommentExit: true, RootExit: true, + DocumentExit: true, OnceExit: true } @@ -73,7 +77,9 @@ function getEvents(node) { function toStack(node) { let events - if (node.type === 'root') { + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit'] + } else if (node.type === 'root') { events = ['Root', CHILDREN, 'RootExit'] } else { events = getEvents(node) @@ -103,7 +109,11 @@ class LazyResult { this.processed = false let root - if (typeof css === 'object' && css !== null && css.type === 'root') { + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { root = cleanMarks(css) } else if (css instanceof LazyResult || css instanceof Result) { root = cleanMarks(css.root) @@ -231,7 +241,13 @@ class LazyResult { this.walkSync(root) } if (this.listeners.OnceExit) { - this.visitSync(this.listeners.OnceExit, root) + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot) + } + } else { + this.visitSync(this.listeners.OnceExit, root) + } } } @@ -287,7 +303,9 @@ class LazyResult { } catch (e) { throw this.handleError(e, node.proxyOf) } - if (node.type !== 'root' && !node.parent) return true + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } if (isPromise(promise)) { throw this.getAsyncError() } @@ -298,6 +316,18 @@ class LazyResult { this.result.lastPlugin = plugin try { if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ) + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + return plugin.Once(this.result.root, this.helpers) } else if (typeof plugin === 'function') { return plugin(this.result.root, this.result) @@ -385,7 +415,15 @@ class LazyResult { for (let [plugin, visitor] of this.listeners.OnceExit) { this.result.lastPlugin = plugin try { - await visitor(root, this.helpers) + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ) + + await Promise.all(roots) + } else { + await visitor(root, this.helpers) + } } catch (e) { throw this.handleError(e) } @@ -439,7 +477,7 @@ class LazyResult { let visit = stack[stack.length - 1] let { node, visitors } = visit - if (node.type !== 'root' && !node.parent) { + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { stack.pop() return } @@ -501,3 +539,4 @@ module.exports = LazyResult LazyResult.default = LazyResult Root.registerLazyResult(LazyResult) +Document.registerLazyResult(LazyResult) diff --git a/lib/node.d.ts b/lib/node.d.ts index 466058506..e9773913d 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -9,6 +9,7 @@ import Container from './container.js' import Result from './result.js' import Input from './input.js' import Root from './root.js' +import Document from './document.js' export type ChildNode = AtRule | Rule | Declaration | Comment @@ -381,6 +382,17 @@ export default abstract class Node { */ root(): Root + /** + * Finds the Document instance of the node’s tree. + * + * ```js + * document.nodes[0].nodes[0].document() === document + * ``` + * + * @return Document parent. + */ + document(): Document + /** * Returns a `Node#raws` value. If the node is missing * the code style property (because the node was manually built or cloned), diff --git a/lib/node.js b/lib/node.js index 5ea7de8e1..443281932 100644 --- a/lib/node.js +++ b/lib/node.js @@ -151,7 +151,18 @@ class Node { root() { let result = this - while (result.parent) result = result.parent + while (result.parent && result.parent.type !== 'document') { + result = result.parent + } + return result + } + + document() { + let result = this + while (result.parent) { + result = result.parent + } + return result } diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index dd1f116a9..980707ecb 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -11,6 +11,7 @@ import Node, { } from './node.js' import Declaration, { DeclarationProps } from './declaration.js' import Root, { RootProps } from './root.js' +import Document, { DocumentProps } from './document.js' import Comment, { CommentProps } from './comment.js' import AtRule, { AtRuleProps } from './at-rule.js' import Result, { Message } from './result.js' @@ -50,6 +51,7 @@ export { AtRule, Rule, Root, + Document, Result, LazyResult, Input @@ -74,6 +76,20 @@ type CommentProcessor = ( ) => Promise | void interface Processors { + /** + * Will be called on `Document` node. + * + * Will be called again on children changes. + */ + Document?: RootProcessor + + /** + * Will be called on `Document` node, when all children will be processed. + * + * Will be called again on children changes. + */ + DocumentExit?: RootProcessor + /** * Will be called on `Root` node once. */ @@ -347,7 +363,7 @@ export interface Postcss { stringify: Stringifier /** - * Parses source css and returns a new `Root` node, + * Parses source css and returns a new `Root` or `Document` node, * which contains the source CSS nodes. * * ```js @@ -415,6 +431,14 @@ export interface Postcss { */ root(defaults?: RootProps): Root + /** + * Creates a new `Document` node. + * + * @param defaults Properties for the new node. + * @return New document node. + */ + document(defaults?: DocumentProps): Document + CssSyntaxError: typeof CssSyntaxError Declaration: typeof Declaration Container: typeof Container diff --git a/lib/postcss.js b/lib/postcss.js index ce177a814..b03bb1803 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -7,6 +7,7 @@ let Container = require('./container') let Processor = require('./processor') let stringify = require('./stringify') let fromJSON = require('./fromJSON') +let Document = require('./document') let Warning = require('./warning') let Comment = require('./comment') let AtRule = require('./at-rule') @@ -73,10 +74,12 @@ postcss.atRule = defaults => new AtRule(defaults) postcss.decl = defaults => new Declaration(defaults) postcss.rule = defaults => new Rule(defaults) postcss.root = defaults => new Root(defaults) +postcss.document = defaults => new Document(defaults) postcss.CssSyntaxError = CssSyntaxError postcss.Declaration = Declaration postcss.Container = Container +postcss.Document = Document postcss.Comment = Comment postcss.Warning = Warning postcss.AtRule = AtRule diff --git a/lib/postcss.mjs b/lib/postcss.mjs index e6360c495..a8b633830 100644 --- a/lib/postcss.mjs +++ b/lib/postcss.mjs @@ -13,10 +13,12 @@ export const atRule = postcss.atRule export const rule = postcss.rule export const decl = postcss.decl export const root = postcss.root +export const document = postcss.document export const CssSyntaxError = postcss.CssSyntaxError export const Declaration = postcss.Declaration export const Container = postcss.Container +export const Document = postcss.Document export const Comment = postcss.Comment export const Warning = postcss.Warning export const AtRule = postcss.AtRule diff --git a/lib/processor.js b/lib/processor.js index 7fea35703..5d08513d6 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -2,6 +2,7 @@ let LazyResult = require('./lazy-result') let Root = require('./root') +let Document = require('./document') class Processor { constructor(plugins = []) { @@ -68,3 +69,4 @@ module.exports = Processor Processor.default = Processor Root.registerProcessor(Processor) +Document.registerProcessor(Processor) diff --git a/lib/root.d.ts b/lib/root.d.ts index 37d948f71..d8ee39531 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -3,6 +3,11 @@ import { ProcessOptions } from './postcss.js' import Result from './result.js' interface RootRaws { + /** + * The symbols before the first child to the start of file. + */ + before?: string + /** * The space symbols after the last child to the end of file. */ @@ -29,7 +34,7 @@ export interface RootProps extends ContainerProps { */ export default class Root extends Container { type: 'root' - parent: undefined + // parent: Document | undefined raws: RootRaws constructor(defaults?: RootProps) diff --git a/lib/stringifier.js b/lib/stringifier.js index a34394640..81e125182 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -37,6 +37,10 @@ class Stringifier { this[node.type](node, semicolon) } + document(node) { + this.body(node) + } + root(node) { this.body(node) if (node.raws.after) this.builder(node.raws.after) @@ -129,11 +133,16 @@ class Stringifier { let parent = node.parent - // Hack for first rule in CSS if (detect === 'before') { + // Hack for first rule in CSS if (!parent || (parent.type === 'root' && parent.first === node)) { return '' } + + // `root` nodes in `document` should use only their own raws + if (parent && parent.type === 'document') { + return '' + } } // Floating child without parent diff --git a/test/document.test.ts b/test/document.test.ts new file mode 100644 index 000000000..0d1253043 --- /dev/null +++ b/test/document.test.ts @@ -0,0 +1,26 @@ +import { Result, parse } from '../lib/postcss.js' +import Document from '../lib/document.js' + +it('generates result without map', () => { + let root = parse('a {}') + let document = new Document() + + document.append(root) + + let result = document.toResult() + + expect(result instanceof Result).toBe(true) + expect(result.css).toBe('a {}') +}) + +it('generates result with map', () => { + let root = parse('a {}') + let document = new Document() + + document.append(root) + + let result = document.toResult({ map: true }) + + expect(result instanceof Result).toBe(true) + expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) +}) diff --git a/test/node.test.ts b/test/node.test.ts index d60141408..780c175a1 100644 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -9,7 +9,8 @@ import postcss, { Declaration, parse, Result, - Plugin + Plugin, + Document } from '../lib/postcss.js' function stringify(node: AnyNode, builder: (str: string) => void): void { @@ -321,6 +322,49 @@ it('root() returns self on root', () => { expect(rule.root()).toBe(rule) }) +it('root() returns root in document', () => { + let css = new Document({ nodes: [parse('@page{a{color:black}}')] }) + + let root = css.first as Root + let page = root.first as AtRule + let a = page.first as Rule + let color = a.first as Declaration + expect(color.root()).toBe(root) +}) + +it('root() on root in document returns same root', () => { + let document = new Document() + let root = new Root() + document.append(root) + + expect(document.first?.root()).toBe(root) +}) + +it('root() returns self on document', () => { + let document = new Document() + expect(document.root()).toBe(document) +}) + +it('document() returns document', () => { + let css = new Document({ nodes: [parse('@page{a{color:black}}')] }) + + let root = css.first as Root + let page = root.first as AtRule + let a = page.first as Rule + let color = a.first as Declaration + expect(color.document()).toBe(css) +}) + +it('document() returns self on root', () => { + let rule = new Rule({ selector: 'a' }) + expect(rule.document()).toBe(rule) +}) + +it('document() returns self on document', () => { + let document = new Document() + expect(document.document()).toBe(document) +}) + it('cleanRaws() cleans style recursivelly', () => { let css = parse('@page{a{color:black}}') css.cleanRaws() diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 7dd35e2df..8d3dd4a2e 100644 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -135,6 +135,30 @@ it('allows to build own CSS', () => { ) }) +it('allows to build own CSS with Document', () => { + let document = postcss.document() + let root = postcss.root({ raws: { after: '\n' } }) + let comment = postcss.comment({ text: 'Example' }) + let media = postcss.atRule({ name: 'media', params: 'screen' }) + let rule = postcss.rule({ selector: 'a' }) + let decl = postcss.decl({ prop: 'color', value: 'black' }) + + root.append(comment) + rule.append(decl) + media.append(rule) + root.append(media) + document.append(root) + + expect(document.toString()).toEqual( + '/* Example */\n' + + '@media screen {\n' + + ' a {\n' + + ' color: black\n' + + ' }\n' + + '}\n' + ) +}) + it('contains list module', () => { expect(postcss.list.space('a b')).toEqual(['a', 'b']) }) diff --git a/test/stringifier.test.js b/test/stringifier.test.js index f293bf2bf..c199ded1b 100644 --- a/test/stringifier.test.js +++ b/test/stringifier.test.js @@ -1,4 +1,4 @@ -let { Declaration, AtRule, Node, Root, Rule, parse } = require('..') +let { Declaration, AtRule, Node, Root, Rule, Document, parse } = require('..') let Stringifier = require('../lib/stringifier') let str @@ -172,3 +172,115 @@ it('handles nested roots', () => { expect(root.toString()).toEqual('@foo') }) + +it('handles root', () => { + let root = new Root() + root.append(new AtRule({ name: 'foo' })) + + let s = root.toString() + + expect(s).toEqual('@foo') +}) + +it('handles root with after', () => { + let root = new Root({ raws: { after: ' ' } }) + root.append(new AtRule({ name: 'foo' })) + + let s = root.toString() + + expect(s).toEqual('@foo ') +}) + +it('pass nodes to document', () => { + let root = new Root() + let document = new Document({ nodes: [root] }) + + expect(document.toString()).toEqual('') +}) + +it('handles document with one root', () => { + let root = new Root() + root.append(new AtRule({ name: 'foo' })) + + let document = new Document() + document.append(root) + + let s = document.toString() + + expect(s).toEqual('@foo') +}) + +it('handles document with one root and after raw', () => { + let document = new Document() + let root = new Root({ raws: { after: ' ' } }) + root.append(new AtRule({ name: 'foo' })) + document.append(root) + + let s = document.toString() + + expect(s).toEqual('@foo ') +}) + +it('handles document with one root and before raw', () => { + let document = new Document() + let root = new Root({ raws: { before: ' ' } }) + root.append(new AtRule({ name: 'foo' })) + document.append(root) + + let s = document.toString() + + expect(s).toEqual(' @foo') +}) + +it('handles document with one root and before and after', () => { + let document = new Document() + let root = new Root({ raws: { before: 'BEFORE', after: 'AFTER' } }) + root.append(new AtRule({ name: 'foo' })) + document.append(root) + + let s = document.toString() + + expect(s).toEqual('BEFORE@fooAFTER') +}) + +it('handles document with three roots without raws', () => { + let root1 = new Root() + root1.append(new AtRule({ name: 'foo' })) + + let root2 = new Root() + root2.append(new Rule({ selector: 'a' })) + + let root3 = new Root() + root3.append(new Declaration({ prop: 'color', value: 'black' })) + + let document = new Document() + document.append(root1) + document.append(root2) + document.append(root3) + + let s = document.toString() + + expect(s).toEqual('@fooa {}color: black') +}) + +it('handles document with three roots, with before and after raws', () => { + let root1 = new Root({ raws: { before: 'BEFORE_ONE', after: 'AFTER_ONE' } }) + root1.append(new Rule({ selector: 'a.one' })) + + let root2 = new Root({ raws: { after: 'AFTER_TWO' } }) + root2.append(new Rule({ selector: 'a.two' })) + + let root3 = new Root({ raws: { after: 'AFTER_THREE' } }) + root3.append(new Rule({ selector: 'a.three' })) + + let document = new Document() + document.append(root1) + document.append(root2) + document.append(root3) + + let s = document.toString() + + expect(s).toEqual( + 'BEFORE_ONEa.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE' + ) +}) diff --git a/test/visitor.test.ts b/test/visitor.test.ts index 76102847c..5a45992ac 100644 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -29,6 +29,9 @@ function buildVisitor(): [[string, string][], Plugin] { let visits: [string, string][] = [] let visitor: Plugin = { postcssPlugin: 'visitor', + Document(i) { + visits.push(['Document', `${i.nodes.length}`]) + }, Once(i) { visits.push(['Once', `${i.nodes.length}`]) }, @@ -64,6 +67,9 @@ function buildVisitor(): [[string, string][], Plugin] { }, OnceExit(i) { visits.push(['OnceExit', `${i.nodes.length}`]) + }, + DocumentExit(i) { + visits.push(['DocumentExit', `${i.nodes.length}`]) } } return [visits, visitor] @@ -255,9 +261,10 @@ it('works classic plugin replace-color', async () => { }) it('works visitor plugin will-change', async () => { - let { css } = postcss([ - willChangeVisitor - ]).process('.foo { will-change: transform; }', { from: 'a.css' }) + let { css } = postcss([willChangeVisitor]).process( + '.foo { will-change: transform; }', + { from: 'a.css' } + ) expect(css).toEqual( '.foo { backface-visibility: hidden; will-change: transform; }' ) @@ -276,11 +283,39 @@ it('works visitor plugin add-prop', async () => { ) }) +it('works visitor plugin add-prop in document with single root', async () => { + let document = postcss.document({ + nodes: [postcss.parse('.a{ color: red; } .b{ will-change: transform; }')] + }) + + let { css } = await postcss([addPropsVisitor]).process(document, { + from: 'a.css' + }) + expect(css).toEqual( + '.a{ will-change: transform; color: red; } ' + + '.b{ will-change: transform; }' + ) +}) + +it('works visitor plugin add-prop in document with two roots', async () => { + let document = postcss.document({ + nodes: [ + postcss.parse('.a{ color: red; }'), + postcss.parse('.b{ will-change: transform; }') + ] + }) + + let { css } = await postcss([addPropsVisitor]).process(document, { + from: 'a.css' + }) + expect(css).toEqual('.a{ color: red; }' + '.b{ will-change: transform; }') +}) + it('works with at-rule params', () => { - let { css } = postcss([ - replacePrintToMobile, - replaceScreenToPrint - ]).process('@media (screen) {}', { from: 'a.css' }) + let { css } = postcss([replacePrintToMobile, replaceScreenToPrint]).process( + '@media (screen) {}', + { from: 'a.css' } + ) expect(css).toEqual('@media (mobile) {}') }) @@ -338,6 +373,35 @@ it('work of three plug-ins; sequence 2', async () => { expect(css).toEqual(expectedThree) }) +const cssThreeDocument = postcss.document({ + nodes: [ + postcss.parse('.a{ color: red; }'), + postcss.parse('.b{ will-change: transform; }') + ] +}) + +const expectedThreeDocument = + '.a{ color: green; }' + + '.b{ backface-visibility: hidden; will-change: transform; }' + +it('work of three plug-ins in a document; sequence 1', async () => { + let { css } = await postcss([ + replaceColorGreenClassic, + willChangeVisitor, + addPropsVisitor + ]).process(cssThreeDocument, { from: 'a.css' }) + expect(css).toEqual(expectedThreeDocument) +}) + +it('work of three plug-ins in a document; sequence 2', async () => { + let { css } = await postcss([ + addPropsVisitor, + replaceColorGreenClassic, + willChangeVisitor + ]).process(cssThreeDocument, { from: 'a.css' }) + expect(css).toEqual(expectedThreeDocument) +}) + const cssThroughProps = '.a{color: yellow;}' const expectedThroughProps = '.a{color: red;}' @@ -586,6 +650,49 @@ it('passes helpers', async () => { await postcss([asyncPlugin]).process('a{}', { from: 'a.css' }) }) +it('passes helpers in a document', async () => { + function check(node: AnyNode, helpers: Helpers): void { + expect(helpers.result.messages).toEqual([]) + expect(typeof helpers.postcss).toEqual('function') + expect(helpers.comment().type).toEqual('comment') + expect(new helpers.Comment().type).toEqual('comment') + expect(helpers.list).toBe(postcss.list) + } + + let syncPlugin: Plugin = { + postcssPlugin: 'syncPlugin', + Once: check, + Rule: check, + RuleExit: check, + OnceExit: check + } + + let asyncPlugin: Plugin = { + postcssPlugin: 'syncPlugin', + async Once(node, helpers) { + await delay(1) + check(node, helpers) + }, + async Rule(node, helpers) { + await delay(1) + check(node, helpers) + }, + async OnceExit(node, helpers) { + await delay(1) + check(node, helpers) + } + } + + postcss([syncPlugin]).process( + postcss.document({ nodes: [postcss.parse('a{}')] }), + { from: 'a.css' } + ).css + await postcss([asyncPlugin]).process( + postcss.document({ nodes: [postcss.parse('a{}')] }), + { from: 'a.css' } + ) +}) + it('detects non-changed values', () => { let plugin: Plugin = { postcssPlugin: 'test', @@ -766,6 +873,56 @@ for (let type of ['sync', 'async']) { ) }) + it(`walks ${type} through tree in a document`, async () => { + let document = postcss.document({ + nodes: [ + postcss.parse(`@media screen { + body { + /* comment */ + background: white; + padding: 10px; + } + a { + color: blue; + } + }`) + ] + }) + + let [visits, visitor] = buildVisitor() + let processor = postcss([visitor]).process(document, { from: 'a.css' }) + if (type === 'sync') { + processor.css + } else { + await processor + } + + expect(addIndex(visits)).toEqual( + addIndex([ + ['Once', '1'], + ['Document', '1'], + ['Root', '1'], + ['AtRule', 'media'], + ['Rule', 'body'], + ['Comment', 'comment'], + ['CommentExit', 'comment'], + ['Declaration', 'background: white'], + ['DeclarationExit', 'background: white'], + ['Declaration', 'padding: 10px'], + ['DeclarationExit', 'padding: 10px'], + ['RuleExit', 'body'], + ['Rule', 'a'], + ['Declaration', 'color: blue'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', 'a'], + ['AtRuleExit', 'media'], + ['RootExit', '1'], + ['DocumentExit', '1'], + ['OnceExit', '1'] + ]) + ) + }) + it(`walks ${type} during transformations`, async () => { let [visits, visitor] = buildVisitor() let result = postcss([ @@ -882,6 +1039,136 @@ for (let type of ['sync', 'async']) { ) }) + it(`walks ${type} during transformations in a document`, async () => { + let document = postcss.document({ + nodes: [ + postcss.parse( + `.first { + color: red; + } + @define-mixin { + b { + color: red; + } + } + a { + color: red; + } + @media (screen) { + @insert-first; + } + .foo { + background: red; + } + @apply-mixin;` + ) + ] + }) + + let [visits, visitor] = buildVisitor() + let result = postcss([ + visitor, + redToGreen, + greenToBlue, + mixins, + fooToBar, + insertFirst + ]).process(document, { from: 'a.css' }) + let output + if (type === 'sync') { + output = result.css + } else { + output = (await result).css + } + + expect(output).toEqual( + `a { + color: blue; + } + @media (screen) {.first { + color: blue; + } + } + .bar { + background: red; + } + b { + color: blue; + }` + ) + expect(addIndex(visits)).toEqual( + addIndex([ + ['Once', '6'], + ['Document', '1'], + ['Root', '6'], + ['Rule', '.first'], + ['Declaration', 'color: red'], + ['DeclarationExit', 'color: green'], + ['RuleExit', '.first'], + ['AtRule', 'define-mixin'], + ['Rule', 'a'], + ['Declaration', 'color: red'], + ['DeclarationExit', 'color: green'], + ['RuleExit', 'a'], + ['AtRule', 'media'], + ['AtRule', 'insert-first'], + ['AtRuleExit', 'media'], + ['Rule', '.foo'], + ['Declaration', 'background: red'], + ['DeclarationExit', 'background: red'], + ['RuleExit', '.bar'], + ['AtRule', 'apply-mixin'], + ['RootExit', '4'], + ['DocumentExit', '1'], + ['Document', '1'], + ['Root', '4'], + ['Rule', 'a'], + ['Declaration', 'color: green'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', 'a'], + ['AtRule', 'media'], + ['Rule', '.first'], + ['Declaration', 'color: green'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', '.first'], + ['AtRuleExit', 'media'], + ['Rule', 'b'], + ['Declaration', 'color: red'], + ['DeclarationExit', 'color: green'], + ['RuleExit', 'b'], + ['RootExit', '4'], + ['DocumentExit', '1'], + ['Document', '1'], + ['Root', '4'], + ['Rule', 'a'], + ['Declaration', 'color: blue'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', 'a'], + ['AtRule', 'media'], + ['Rule', '.first'], + ['Declaration', 'color: blue'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', '.first'], + ['AtRuleExit', 'media'], + ['Rule', 'b'], + ['Declaration', 'color: green'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', 'b'], + ['RootExit', '4'], + ['DocumentExit', '1'], + ['Document', '1'], + ['Root', '4'], + ['Rule', 'b'], + ['Declaration', 'color: blue'], + ['DeclarationExit', 'color: blue'], + ['RuleExit', 'b'], + ['RootExit', '4'], + ['DocumentExit', '1'], + ['OnceExit', '4'] + ]) + ) + }) + it(`has ${type} property and at-rule name filters`, async () => { let filteredDecls: string[] = [] let allDecls: string[] = [] @@ -918,9 +1205,7 @@ for (let type of ['sync', 'async']) { } } - let result = postcss([ - scanner - ]).process( + let result = postcss([scanner]).process( `@charset "UTF-8"; @media (screen) { COLOR: black; z-index: 1 }`, { from: 'a.css' } ) @@ -938,6 +1223,65 @@ for (let type of ['sync', 'async']) { expect(allAtRules).toEqual(['charset', 'media']) }) + it(`has ${type} property and at-rule name filters in a document`, async () => { + let filteredDecls: string[] = [] + let allDecls: string[] = [] + let filteredAtRules: string[] = [] + let allAtRules: string[] = [] + let allExits: string[] = [] + let filteredExits: string[] = [] + + let scanner: Plugin = { + postcssPlugin: 'test', + Declaration: { + 'color': decl => { + filteredDecls.push(decl.prop) + }, + '*': decl => { + allDecls.push(decl.prop) + } + }, + DeclarationExit: { + 'color': decl => { + filteredExits.push(decl.prop) + }, + '*': decl => { + allExits.push(decl.prop) + } + }, + AtRule: { + 'media': atRule => { + filteredAtRules.push(atRule.name) + }, + '*': atRule => { + allAtRules.push(atRule.name) + } + } + } + + let document = postcss.document({ + nodes: [ + postcss.parse( + `@charset "UTF-8"; @media (screen) { COLOR: black; z-index: 1 }` + ) + ] + }) + + let result = postcss([scanner]).process(document, { from: 'a.css' }) + if (type === 'sync') { + result.css + } else { + await result + } + + expect(filteredDecls).toEqual(['COLOR']) + expect(allDecls).toEqual(['COLOR', 'z-index']) + expect(filteredExits).toEqual(['COLOR']) + expect(allExits).toEqual(['COLOR', 'z-index']) + expect(filteredAtRules).toEqual(['media']) + expect(allAtRules).toEqual(['charset', 'media']) + }) + it(`has ${type} OnceExit listener`, async () => { let rootExit = 0 let OnceExit = 0 @@ -966,6 +1310,82 @@ for (let type of ['sync', 'async']) { expect(rootExit).toBe(2) expect(OnceExit).toBe(1) }) + + it(`has ${type} OnceExit listener in a document with one root`, async () => { + let RootExit = 0 + let OnceExit = 0 + let DocumentExit = 0 + + let plugin: Plugin = { + postcssPlugin: 'test', + Rule(rule) { + rule.remove() + }, + RootExit() { + RootExit += 1 + }, + DocumentExit() { + DocumentExit += 1 + }, + OnceExit() { + OnceExit += 1 + } + } + + let document = postcss.document({ + nodes: [postcss.parse('a{}')] + }) + + let result = postcss([plugin]).process(document, { from: 'a.css' }) + + if (type === 'sync') { + result.css + } else { + await result + } + + expect(RootExit).toBe(2) + expect(DocumentExit).toBe(2) + expect(OnceExit).toBe(1) + }) + + it(`has ${type} OnceExit listener in a document with two roots`, async () => { + let RootExit = 0 + let OnceExit = 0 + let DocumentExit = 0 + + let plugin: Plugin = { + postcssPlugin: 'test', + Rule(rule) { + rule.remove() + }, + RootExit() { + RootExit += 1 + }, + DocumentExit() { + DocumentExit += 1 + }, + OnceExit() { + OnceExit += 1 + } + } + + let document = postcss.document({ + nodes: [postcss.parse('a{}'), postcss.parse('b{}')] + }) + + let result = postcss([plugin]).process(document, { from: 'a.css' }) + + if (type === 'sync') { + result.css + } else { + await result + } + + expect(RootExit).toBe(4) + expect(DocumentExit).toBe(2) + expect(OnceExit).toBe(2) // 2 roots === 2 OnceExit + }) } it('throws error from async OnceExit', async () => { @@ -1009,6 +1429,28 @@ it('rescan Root in another processor', () => { ]) }) +it('rescan Root in another processor in a document', () => { + let [visits, visitor] = buildVisitor() + let root = postcss([visitor]).process('a{z-index:1}', { from: 'a.css' }).root + let document = postcss.document({ nodes: [root] }) + + visits.splice(0, visits.length) + postcss([visitor]).process(document, { from: 'a.css' }).root + + expect(visits).toEqual([ + ['Once', '1'], + ['Document', '1'], + ['Root', '1'], + ['Rule', 'a'], + ['Declaration', 'z-index: 1'], + ['DeclarationExit', 'z-index: 1'], + ['RuleExit', 'a'], + ['RootExit', '1'], + ['DocumentExit', '1'], + ['OnceExit', '1'] + ]) +}) + it('marks cleaned nodes as dirty on moving', () => { let mover: Plugin = { postcssPlugin: 'mover', @@ -1046,3 +1488,49 @@ it('marks cleaned nodes as dirty on moving', () => { ['OnceExit', '1'] ]) }) + +it('marks cleaned nodes as dirty on moving in a document', () => { + let mover: Plugin = { + postcssPlugin: 'mover', + Rule(rule) { + if (rule.selector === 'b') { + let a = rule.prev() + if (a) rule.append(a) + } + } + } + let [visits, visitor] = buildVisitor() + + let document = postcss.document({ + nodes: [postcss.parse('a { color: black } b { }')] + }) + + postcss([mover, visitor]).process(document, { + from: 'a.css' + }).root + + expect(visits).toEqual([ + ['Once', '2'], + ['Document', '1'], + ['Root', '2'], + ['Rule', 'a'], + ['Declaration', 'color: black'], + ['DeclarationExit', 'color: black'], + ['RuleExit', 'a'], + ['Rule', 'b'], + ['Rule', 'a'], + ['Declaration', 'color: black'], + ['DeclarationExit', 'color: black'], + ['RuleExit', 'a'], + ['RuleExit', 'b'], + ['RootExit', '1'], + ['DocumentExit', '1'], + ['Document', '1'], + ['Root', '1'], + ['Rule', 'b'], + ['RuleExit', 'b'], + ['RootExit', '1'], + ['DocumentExit', '1'], + ['OnceExit', '1'] + ]) +}) From aa25ce040ac18e9286e438c0edd513acb2d5870a Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Mon, 17 May 2021 01:58:03 +0200 Subject: [PATCH 2271/3047] Narrow Document nodes type --- lib/at-rule.d.ts | 2 ++ lib/container.d.ts | 3 ++- lib/document.d.ts | 14 +------------- lib/root.d.ts | 2 ++ lib/rule.d.ts | 2 ++ 5 files changed, 9 insertions(+), 14 deletions(-) diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index 74ecfb430..bbbbe630b 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -1,4 +1,5 @@ import Container, { ContainerProps } from './container.js' +import { ChildNode } from './node.js' interface AtRuleRaws { /** @@ -70,6 +71,7 @@ export interface AtRuleProps extends ContainerProps { export default class AtRule extends Container { type: 'atrule' raws: AtRuleRaws + nodes: ChildNode[] /** * The at-rule’s name immediately follows the `@`. diff --git a/lib/container.d.ts b/lib/container.d.ts index c69f84a15..5958249a6 100644 --- a/lib/container.d.ts +++ b/lib/container.d.ts @@ -3,6 +3,7 @@ import Declaration from './declaration.js' import Comment from './comment.js' import AtRule from './at-rule.js' import Rule from './rule.js' +import Root from './root.js' interface ValueOptions { /** @@ -38,7 +39,7 @@ export default abstract class Container extends Node { * root.nodes[0].nodes[0].prop //=> 'color' * ``` */ - nodes: ChildNode[] + nodes: (ChildNode | Root)[] /** * The container’s first child. diff --git a/lib/document.d.ts b/lib/document.d.ts index 7b05fc8a8..9cbfb5859 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -22,6 +22,7 @@ type ChildProps = RootProps export default class Document extends Container { type: 'document' parent: undefined + nodes: Root[] constructor(defaults?: DocumentProps) @@ -42,19 +43,6 @@ export default class Document extends Container { */ toResult(options?: ProcessOptions): Result - /** - * An array containing the container’s children. - * - * ```js - * const root = postcss.parse('a { color: black }') - * root.nodes.length //=> 1 - * root.nodes[0].selector //=> 'a' - * root.nodes[0].nodes[0].prop //=> 'color' - * ``` - */ - // @ts-expect-error - nodes: Root[] - /** * The container’s first child. * diff --git a/lib/root.d.ts b/lib/root.d.ts index d8ee39531..69f26dc32 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -1,4 +1,5 @@ import Container, { ContainerProps } from './container.js' +import { ChildNode } from './node.js' import { ProcessOptions } from './postcss.js' import Result from './result.js' @@ -36,6 +37,7 @@ export default class Root extends Container { type: 'root' // parent: Document | undefined raws: RootRaws + nodes: ChildNode[] constructor(defaults?: RootProps) diff --git a/lib/rule.d.ts b/lib/rule.d.ts index 8243c3666..d34a8a9f8 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -1,4 +1,5 @@ import Container, { ContainerProps } from './container.js' +import { ChildNode } from './node.js' interface RuleRaws { /** @@ -63,6 +64,7 @@ export interface RuleProps extends ContainerProps { export default class Rule extends Container { type: 'rule' raws: RuleRaws + nodes: ChildNode[] /** * The rule’s full selector represented as a string. From 39d2a84150cf3855ee38d908f6d39d938692b089 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Mon, 17 May 2021 02:12:28 +0200 Subject: [PATCH 2272/3047] Specify parent type on a Root node --- lib/at-rule.d.ts | 1 + lib/comment.d.ts | 2 ++ lib/declaration.d.ts | 2 ++ lib/node.d.ts | 3 +-- lib/root.d.ts | 3 ++- lib/rule.d.ts | 1 + 6 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index bbbbe630b..40880c848 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -70,6 +70,7 @@ export interface AtRuleProps extends ContainerProps { */ export default class AtRule extends Container { type: 'atrule' + parent: Container | undefined raws: AtRuleRaws nodes: ChildNode[] diff --git a/lib/comment.d.ts b/lib/comment.d.ts index d1b6a4f91..c4ae906cc 100644 --- a/lib/comment.d.ts +++ b/lib/comment.d.ts @@ -1,3 +1,4 @@ +import Container from './container.js' import Node, { NodeProps } from './node.js' interface CommentRaws { @@ -37,6 +38,7 @@ export interface CommentProps extends NodeProps { */ export default class Comment extends Node { type: 'comment' + parent: Container | undefined raws: CommentRaws /** diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index 0be0d2822..a3e3d8f33 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -1,3 +1,4 @@ +import Container from './container.js' import Node from './node.js' interface DeclarationRaws { @@ -51,6 +52,7 @@ export interface DeclarationProps { */ export default class Declaration extends Node { type: 'decl' + parent: Container | undefined raws: DeclarationRaws /** diff --git a/lib/node.d.ts b/lib/node.d.ts index e9773913d..aa38d7bff 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -5,7 +5,6 @@ import AtRule, { AtRuleProps } from './at-rule.js' import Rule, { RuleProps } from './rule.js' import { WarningOptions } from './warning.js' import CssSyntaxError from './css-syntax-error.js' -import Container from './container.js' import Result from './result.js' import Input from './input.js' import Root from './root.js' @@ -98,7 +97,7 @@ export default abstract class Node { * root.nodes[0].parent === root * ``` */ - parent: Container | undefined + parent: any /** * The input source of the node. diff --git a/lib/root.d.ts b/lib/root.d.ts index 69f26dc32..4df44efde 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -1,4 +1,5 @@ import Container, { ContainerProps } from './container.js' +import Document from './document.js' import { ChildNode } from './node.js' import { ProcessOptions } from './postcss.js' import Result from './result.js' @@ -35,7 +36,7 @@ export interface RootProps extends ContainerProps { */ export default class Root extends Container { type: 'root' - // parent: Document | undefined + parent: Document | undefined raws: RootRaws nodes: ChildNode[] diff --git a/lib/rule.d.ts b/lib/rule.d.ts index d34a8a9f8..897829337 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -63,6 +63,7 @@ export interface RuleProps extends ContainerProps { */ export default class Rule extends Container { type: 'rule' + parent: Container | undefined raws: RuleRaws nodes: ChildNode[] From fca648b5196ff06c7a85cb6f76a52c4b00111cb8 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Mon, 17 May 2021 10:56:37 +0200 Subject: [PATCH 2273/3047] Fix types --- lib/container.d.ts | 43 ++++------ lib/document.d.ts | 210 +-------------------------------------------- lib/node.d.ts | 3 +- 3 files changed, 19 insertions(+), 237 deletions(-) diff --git a/lib/container.d.ts b/lib/container.d.ts index 5958249a6..3005a1614 100644 --- a/lib/container.d.ts +++ b/lib/container.d.ts @@ -3,7 +3,6 @@ import Declaration from './declaration.js' import Comment from './comment.js' import AtRule from './at-rule.js' import Rule from './rule.js' -import Root from './root.js' interface ValueOptions { /** @@ -28,7 +27,9 @@ export interface ContainerProps extends NodeProps { * Note that all containers can store any content. If you write a rule inside * a rule, PostCSS will parse it. */ -export default abstract class Container extends Node { +export default abstract class Container< + Child extends Node = ChildNode +> extends Node { /** * An array containing the container’s children. * @@ -39,7 +40,7 @@ export default abstract class Container extends Node { * root.nodes[0].nodes[0].prop //=> 'color' * ``` */ - nodes: (ChildNode | Root)[] + nodes: Child[] /** * The container’s first child. @@ -48,7 +49,7 @@ export default abstract class Container extends Node { * rule.first === rules.nodes[0] * ``` */ - get first(): ChildNode | undefined + get first(): Child | undefined /** * The container’s last child. @@ -57,7 +58,7 @@ export default abstract class Container extends Node { * rule.last === rule.nodes[rule.nodes.length - 1] * ``` */ - get last(): ChildNode | undefined + get last(): Child | undefined /** * Iterates through the container’s immediate children, @@ -93,7 +94,7 @@ export default abstract class Container extends Node { * @return Returns `false` if iteration was broke. */ each( - callback: (node: ChildNode, index: number) => false | void + callback: (node: Child, index: number) => false | void ): false | undefined /** @@ -305,7 +306,7 @@ export default abstract class Container extends Node { * @param child New node. * @return This node for methods chain. */ - push(child: ChildNode): this + push(child: Child): this /** * Insert new node before old node within the container. @@ -319,14 +320,8 @@ export default abstract class Container extends Node { * @return This node for methods chain. */ insertBefore( - oldNode: ChildNode | number, - newNode: - | ChildNode - | ChildProps - | string - | ChildNode[] - | ChildProps[] - | string[] + oldNode: Child | number, + newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[] ): this /** @@ -337,14 +332,8 @@ export default abstract class Container extends Node { * @return This node for methods chain. */ insertAfter( - oldNode: ChildNode | number, - newNode: - | ChildNode - | ChildProps - | string - | ChildNode[] - | ChildProps[] - | string[] + oldNode: Child | number, + newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[] ): this /** @@ -361,7 +350,7 @@ export default abstract class Container extends Node { * @param child Child or child’s index. * @return This node for methods chain. */ - removeChild(child: ChildNode | number): this + removeChild(child: Child | number): this /** * Removes all children from the container @@ -421,7 +410,7 @@ export default abstract class Container extends Node { * @return Is every child pass condition. */ every( - condition: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean + condition: (node: Child, index: number, nodes: Child[]) => boolean ): boolean /** @@ -436,7 +425,7 @@ export default abstract class Container extends Node { * @return Is some child pass condition. */ some( - condition: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean + condition: (node: Child, index: number, nodes: Child[]) => boolean ): boolean /** @@ -449,5 +438,5 @@ export default abstract class Container extends Node { * @param child Child of the current container. * @return Child index. */ - index(child: ChildNode | number): number + index(child: Child | number): number } diff --git a/lib/document.d.ts b/lib/document.d.ts index 9cbfb5859..7274b7eba 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -19,10 +19,9 @@ type ChildProps = RootProps * document.nodes.length //=> 2 * ``` */ -export default class Document extends Container { +export default class Document extends Container { type: 'document' parent: undefined - nodes: Root[] constructor(defaults?: DocumentProps) @@ -42,211 +41,4 @@ export default class Document extends Container { * @return Result with current document’s CSS. */ toResult(options?: ProcessOptions): Result - - /** - * The container’s first child. - * - * ```js - * rule.first === rules.nodes[0] - * ``` - */ - // @ts-expect-error - get first(): ChildNode | undefined - - /** - * The container’s last child. - * - * ```js - * rule.last === rule.nodes[rule.nodes.length - 1] - * ``` - */ - // @ts-expect-error - get last(): ChildNode | undefined - - /** - * Iterates through the container’s immediate children, - * calling `callback` for each child. - * - * Returning `false` in the callback will break iteration. - * - * This method only iterates through the container’s immediate children. - * If you need to recursively iterate through all the container’s descendant - * nodes, use `Container#walk`. - * - * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe - * if you are mutating the array of child nodes during iteration. - * PostCSS will adjust the current index to match the mutations. - * - * ```js - * const root = postcss.parse('a { color: black; z-index: 1 }') - * const rule = root.first - * - * for (const decl of rule.nodes) { - * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) - * // Cycle will be infinite, because cloneBefore moves the current node - * // to the next index - * } - * - * rule.each(decl => { - * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) - * // Will be executed only for color and z-index - * }) - * ``` - * - * @param callback Iterator receives each node and index. - * @return Returns `false` if iteration was broke. - */ - // @ts-expect-error - each( - callback: (node: ChildNode, index: number) => false | void - ): false | undefined - - /** - * Inserts new nodes to the end of the container. - * - * ```js - * const decl1 = new Declaration({ prop: 'color', value: 'black' }) - * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) - * rule.append(decl1, decl2) - * - * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule - * root.append({ selector: 'a' }) // rule - * rule.append({ prop: 'color', value: 'black' }) // declaration - * rule.append({ text: 'Comment' }) // comment - * - * root.append('a {}') - * root.first.append('color: black; z-index: 1') - * ``` - * - * @param nodes New nodes. - * @return This node for methods chain. - */ - append(...nodes: (ChildProps | ChildProps[])[]): this - - /** - * Inserts new nodes to the start of the container. - * - * ```js - * const decl1 = new Declaration({ prop: 'color', value: 'black' }) - * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) - * rule.prepend(decl1, decl2) - * - * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule - * root.append({ selector: 'a' }) // rule - * rule.append({ prop: 'color', value: 'black' }) // declaration - * rule.append({ text: 'Comment' }) // comment - * - * root.append('a {}') - * root.first.append('color: black; z-index: 1') - * ``` - * - * @param nodes New nodes. - * @return This node for methods chain. - */ - prepend(...nodes: (ChildProps | ChildProps[])[]): this - - /** - * Add child to the end of the node. - * - * ```js - * rule.push(new Declaration({ prop: 'color', value: 'black' })) - * ``` - * - * @param child New node. - * @return This node for methods chain. - */ - // @ts-expect-error - push(child: ChildNode): this - - /** - * Insert new node before old node within the container. - * - * ```js - * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) - * ``` - * - * @param oldNode Child or child’s index. - * @param newNode New node. - * @return This node for methods chain. - */ - // @ts-expect-error - insertBefore( - oldNode: ChildNode | number, - newNode: ChildNode | ChildProps | ChildNode[] | ChildProps[] - ): this - - /** - * Insert new node after old node within the container. - * - * @param oldNode Child or child’s index. - * @param newNode New node. - * @return This node for methods chain. - */ - // @ts-expect-error - insertAfter( - oldNode: ChildNode | number, - newNode: ChildNode | ChildProps | ChildNode[] | ChildProps[] - ): this - - /** - * Removes node from the container and cleans the parent properties - * from the node and its children. - * - * ```js - * rule.nodes.length //=> 5 - * rule.removeChild(decl) - * rule.nodes.length //=> 4 - * decl.parent //=> undefined - * ``` - * - * @param child Child or child’s index. - * @return This node for methods chain. - */ - // @ts-expect-error - removeChild(child: ChildNode | number): this - - /** - * Returns `true` if callback returns `true` - * for all of the container’s children. - * - * ```js - * const noPrefixes = rule.every(i => i.prop[0] !== '-') - * ``` - * - * @param condition Iterator returns true or false. - * @return Is every child pass condition. - */ - // @ts-expect-error - every( - condition: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean - ): boolean - - /** - * Returns `true` if callback returns `true` for (at least) one - * of the container’s children. - * - * ```js - * const hasPrefix = rule.some(i => i.prop[0] === '-') - * ``` - * - * @param condition Iterator returns true or false. - * @return Is some child pass condition. - */ - // @ts-expect-error - some( - condition: (node: ChildNode, index: number, nodes: ChildNode[]) => boolean - ): boolean - - /** - * Returns a `child`’s index within the `Container#nodes` array. - * - * ```js - * rule.index( rule.nodes[2] ) //=> 2 - * ``` - * - * @param child Child of the current container. - * @return Child index. - */ - // @ts-expect-error - index(child: ChildNode | number): number } diff --git a/lib/node.d.ts b/lib/node.d.ts index aa38d7bff..8718c94d8 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -9,6 +9,7 @@ import Result from './result.js' import Input from './input.js' import Root from './root.js' import Document from './document.js' +import Container from './container.js' export type ChildNode = AtRule | Rule | Declaration | Comment @@ -97,7 +98,7 @@ export default abstract class Node { * root.nodes[0].parent === root * ``` */ - parent: any + parent: Document | Container | undefined /** * The input source of the node. From da90932a9c9f930ec9c68cd9023e25b4f8c54b71 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Mon, 17 May 2021 10:58:54 +0200 Subject: [PATCH 2274/3047] Add experimental warning --- lib/document.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/document.d.ts b/lib/document.d.ts index 7274b7eba..a81acdfe3 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -13,6 +13,8 @@ type ChildProps = RootProps /** * Represents a file and contains all its parsed nodes. * + * **Experimental!** Some aspects of this node could change within minor or patch version releases. + * * ```js * const document = postcss.parse('') * document.type //=> 'document' From da163886b49acb8504376d3e7fd0cae3c012b3c9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 May 2021 08:43:25 -0400 Subject: [PATCH 2275/3047] Update dependencies --- package.json | 6 +- yarn.lock | 310 +++++++++++++++++++++++++++------------------------ 2 files changed, 170 insertions(+), 146 deletions(-) diff --git a/package.json b/package.json index fbdb057d2..f45f10a4f 100644 --- a/package.json +++ b/package.json @@ -69,11 +69,11 @@ "source-map": "^0.6.1" }, "devDependencies": { - "@logux/eslint-config": "^45.4.2", + "@logux/eslint-config": "^45.4.3", "@size-limit/preset-small-lib": "^4.10.2", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", - "@types/node": "^15.0.2", + "@types/node": "^15.3.0", "@typescript-eslint/eslint-plugin": "^4.23.0", "@typescript-eslint/parser": "^4.23.0", "check-dts": "^0.4.4", @@ -82,7 +82,7 @@ "concat-with-sourcemaps": "^1.1.0", "eslint": "^7.26.0", "eslint-config-standard": "^16.0.2", - "eslint-plugin-import": "^2.22.1", + "eslint-plugin-import": "^2.23.2", "eslint-plugin-jest": "^24.3.6", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index 902c31660..f03e52677 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,19 +22,19 @@ integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== "@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.5": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz#47299ff3ec8d111b493f1a9d04bf88c04e728d88" - integrity sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.2.tgz#54e45334ffc0172048e5c93ded36461d3ad4c417" + integrity sha512-OgC1mON+l4U4B4wiohJlQNUU3H73mpTyYY3j/c8U9dr9UagGGSm+WFpzjy/YLdoyjiG++c1kIDgxCo/mLwQJeQ== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.0" + "@babel/generator" "^7.14.2" "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.0" + "@babel/helper-module-transforms" "^7.14.2" "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.0" + "@babel/parser" "^7.14.2" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -43,20 +43,20 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz#f80fd23bdd839537221914cb5d17720a5ea6ba3a" - integrity sha512-I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.2.tgz#aa6fe7b76378397d643f14dfa8bf920cb6fbddab" + integrity sha512-g1YXHASb84MvEkReG/nZ74emTPAMjip1Ey6azZqKTEWidpgEzPGl/uoc6IPJjaMGw424u40sNm1V70tuYOQmeA== dependencies: eslint-scope "^5.1.0" - eslint-visitor-keys "^1.3.0" + eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz#1f99331babd65700183628da186f36f63d615c93" - integrity sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ== +"@babel/generator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.2.tgz#d5773e8b557d421fd6ce0d5efa5fd7fc22567c30" + integrity sha512-OnADYbKrffDVai5qcpkMxQ7caomHOoEwjkouqnN2QhydAjowFAZcsdecFIRUBdb+ZcruwYE4ythYmF1UBZU5xQ== dependencies: - "@babel/types" "^7.14.1" + "@babel/types" "^7.14.2" jsesc "^2.5.1" source-map "^0.5.0" @@ -70,14 +70,14 @@ browserslist "^4.14.5" semver "^6.3.0" -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== +"@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== dependencies: "@babel/helper-get-function-arity" "^7.12.13" "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/types" "^7.14.2" "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" @@ -100,10 +100,10 @@ dependencies: "@babel/types" "^7.13.12" -"@babel/helper-module-transforms@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz#8fcf78be220156f22633ee204ea81f73f826a8ad" - integrity sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw== +"@babel/helper-module-transforms@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" + integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== dependencies: "@babel/helper-module-imports" "^7.13.12" "@babel/helper-replace-supers" "^7.13.12" @@ -111,8 +111,8 @@ "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-validator-identifier" "^7.14.0" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" @@ -178,10 +178,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.1.tgz#1bd644b5db3f5797c4479d89ec1817fe02b84c47" - integrity sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.2.tgz#0c1680aa44ad4605b16cbdcc5c341a61bde9c746" + integrity sha512-IoVDIHpsgE/fu7eXBeRWt8zLbDrSvD7H1gpomOkPpBoEN8KCruCqSDdqo8dddwQQrui30KSvQBaMUOJiuFu6QQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -276,24 +276,24 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz#cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef" - integrity sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.0" - "@babel/helper-function-name" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.14.0" - "@babel/types" "^7.14.0" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.1", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz#095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db" - integrity sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA== +"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" + integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== dependencies: "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" @@ -513,10 +513,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@logux/eslint-config@^45.4.2": - version "45.4.2" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.2.tgz#667f9d8d8f9f22d675fb8a5b3adfedd8c25ab3c0" - integrity sha512-8S5nkjTIprIlutZNXBXI4cNU7IpEiWYbidZejtQjxaBkBZycnnFLic+GG+ulkxFP8Apglm2sDlOCthd/VCt5LA== +"@logux/eslint-config@^45.4.3": + version "45.4.3" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.3.tgz#301cd72062d6ef5736da3fbd88407f4d92eec61e" + integrity sha512-c5KU180ZskqGeLhsOhTzKskHSFzbB2LFVAUSzGMbeBqIfVoFJeqZTLLz8bNU0AHCl1qtoUj0WvHLNnuNkemUIA== dependencies: globals "^13.8.0" @@ -676,10 +676,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" - integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== +"@types/node@*", "@types/node@^15.3.0": + version "15.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" + integrity sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1015,9 +1015,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c" - integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== + version "8.4.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.4.0.tgz#48984fdb2ce225cab15795f0772a8d85669075e4" + integrity sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1108,7 +1108,7 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-includes@^3.1.1: +array-includes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== @@ -1129,7 +1129,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.3: +array.prototype.flat@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== @@ -1941,10 +1941,13 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= +contains-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-1.0.0.tgz#3458b332185603e8eed18f518d4a10888a3abc91" + integrity sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE= + dependencies: + normalize-path "^2.1.1" + path-starts-with "^1.0.0" convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" @@ -2266,6 +2269,13 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" @@ -2378,13 +2388,12 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" - isarray "^1.0.0" doctrine@^3.0.0: version "3.0.0" @@ -2462,9 +2471,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.3.723: - version "1.3.727" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf" - integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg== + version "1.3.728" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.728.tgz#dbedd6373f595ae10a13d146b66bece4c1afa5bd" + integrity sha512-SHv4ziXruBpb1Nz4aTuqEHBYi/9GNCJMYIJgDEXrp/2V01nFXMNFUTli5Z85f5ivSkioLilQatqBYFB44wNJrA== elliptic@^6.5.3: version "6.5.4" @@ -2534,7 +2543,7 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -2622,12 +2631,12 @@ eslint-import-resolver-node@^0.3.4: debug "^2.6.9" resolve "^1.13.1" -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== +eslint-module-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" + integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: @@ -2638,23 +2647,26 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.22.1: - version "2.22.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" - integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== +eslint-plugin-import@^2.23.2: + version "2.23.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz#ee15dd68fc7a1a1ba4c653c734e0d01c100d3484" + integrity sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg== dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" + contains-path "^1.0.0" debug "^2.6.9" - doctrine "1.5.0" + doctrine "^2.1.0" eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.0" + eslint-module-utils "^2.6.1" + find-up "^2.0.0" has "^1.0.3" + is-core-module "^2.4.0" minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" + object.values "^1.1.3" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" tsconfig-paths "^3.9.0" eslint-plugin-jest@^24.3.6: @@ -2753,7 +2765,7 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== @@ -3700,7 +3712,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.2.0: +is-core-module@^2.2.0, is-core-module@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== @@ -4591,14 +4603,14 @@ listr2@^3.8.2: through "^2.3.8" wrap-ansi "^7.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" + parse-json "^4.0.0" + pify "^3.0.0" strip-bom "^3.0.0" loader-runner@^2.4.0: @@ -4941,6 +4953,11 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multimap@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" @@ -5050,9 +5067,9 @@ node-notifier@^8.0.0: which "^2.0.2" node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -5169,7 +5186,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1: +object.values@^1.1.0, object.values@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== @@ -5199,9 +5216,9 @@ opener@^1.5.2: integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + version "5.0.6" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e" + integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" @@ -5344,13 +5361,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -5419,12 +5429,19 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= +path-starts-with@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-starts-with/-/path-starts-with-1.0.0.tgz#b28243015e8b138de572682ac52da42e646ad84e" + integrity sha1-soJDAV6LE43lcmgqxS2kLmRq2E4= + dependencies: + normalize-path "^2.1.1" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: - pify "^2.0.0" + pify "^3.0.0" path-type@^4.0.0: version "4.0.0" @@ -5452,10 +5469,10 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" @@ -5490,6 +5507,13 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -5789,9 +5813,9 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz#042d74e137db83e6f294712096cb413f5aa612c4" - integrity sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg== + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -5834,12 +5858,12 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: supports-color "^6.1.0" postcss@^8.2.10: - version "8.2.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.14.tgz#dcf313eb8247b3ce8078d048c0e8262ca565ad2b" - integrity sha512-+jD0ZijcvyCqPQo/m/CW0UcARpdFylq04of+Q7RKX6f/Tu+dvpUI/9Sp81+i6/vJThnOBX09Quw0ZLOVwpzX3w== + version "8.2.15" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" + integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== dependencies: colorette "^1.2.2" - nanoid "^3.1.22" + nanoid "^3.1.23" source-map "^0.6.1" prelude-ls@^1.2.1: @@ -6002,13 +6026,13 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" - read-pkg "^2.0.0" + read-pkg "^3.0.0" read-pkg-up@^7.0.1: version "7.0.1" @@ -6019,14 +6043,14 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: - load-json-file "^2.0.0" + load-json-file "^4.0.0" normalize-package-data "^2.3.2" - path-type "^2.0.0" + path-type "^3.0.0" read-pkg@^5.2.0: version "5.2.0" @@ -6203,7 +6227,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.18.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6611,9 +6635,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.8" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf" + integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g== spinnies@^0.5.1: version "0.5.1" @@ -6886,9 +6910,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^6.0.4: - version "6.7.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" - integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw== + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: ajv "^8.0.1" lodash.clonedeep "^4.5.0" From ab60e0d2963aa0e3fa879a83ecdb5bd607375c6c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 May 2021 08:46:48 -0400 Subject: [PATCH 2276/3047] Use Node.js 16 on CI --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d13f171b1..3a707bfa4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,7 +6,7 @@ env: FORCE_COLOR: 2 jobs: full: - name: Node.js 15 Full + name: Node.js 16 Full runs-on: ubuntu-latest steps: - name: Checkout the repository @@ -14,7 +14,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v2 with: - node-version: 15 + node-version: 16 - name: Install dependencies uses: bahmutov/npm-install@v1 - name: Run tests From 251d385435dcbc437226cd6e99f77c321e46829c Mon Sep 17 00:00:00 2001 From: Valentin Semirulnik Date: Sat, 16 Jan 2021 02:47:56 +0300 Subject: [PATCH 2277/3047] Use @7rulnik/source-map fork --- package.json | 2 +- yarn.lock | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f45f10a4f..7d0a35f3d 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "dependencies": { "colorette": "^1.2.2", "nanoid": "^3.1.23", - "source-map": "^0.6.1" + "source-map": "7rulnik/source-map#03378502bc3d8c8a71ada20ef199b2f469fae514" }, "devDependencies": { "@logux/eslint-config": "^45.4.3", diff --git a/yarn.lock b/yarn.lock index f03e52677..df3166bcf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6598,6 +6598,10 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== +source-map@7rulnik/source-map#03378502bc3d8c8a71ada20ef199b2f469fae514: + version "0.6.3" + resolved "https://codeload.github.com/7rulnik/source-map/tar.gz/03378502bc3d8c8a71ada20ef199b2f469fae514" + source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" From 407d0e90143c24efd55cb437abdb1c2a876de079 Mon Sep 17 00:00:00 2001 From: Valentin Semirulnik Date: Mon, 8 Feb 2021 01:06:17 +0300 Subject: [PATCH 2278/3047] move from source-map to source-map-js --- lib/map-generator.js | 4 ++++ lib/postcss.d.ts | 2 +- lib/previous-map.d.ts | 2 +- lib/previous-map.js | 2 +- package.json | 2 +- test/lazy-result.test.ts | 2 +- test/map.test.ts | 2 +- test/previous-map.test.ts | 2 +- yarn.lock | 9 +++++---- 9 files changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index e9afd39b1..37ff3c07c 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -2,10 +2,14 @@ let { dirname, resolve, relative, sep } = require('path') let { pathToFileURL } = require('url') +<<<<<<< HEAD let { SourceMapConsumer, SourceMapGenerator } = require('source-map') let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(dirname && resolve && relative && sep) +======= +let mozilla = require('source-map-js') +>>>>>>> a0eb4c0 (move from source-map to source-map-js) class MapGenerator { constructor(stringify, root, opts) { diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index dd1f116a9..6e0f16dd8 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -1,4 +1,4 @@ -import { SourceMapGenerator, RawSourceMap } from 'source-map' +import { SourceMapGenerator, RawSourceMap } from 'source-map-js' import Node, { Position, diff --git a/lib/previous-map.d.ts b/lib/previous-map.d.ts index 053691942..490d885fa 100644 --- a/lib/previous-map.d.ts +++ b/lib/previous-map.d.ts @@ -1,4 +1,4 @@ -import { SourceMapConsumer } from 'source-map' +import { SourceMapConsumer } from 'source-map-js' import { ProcessOptions } from './postcss.js' diff --git a/lib/previous-map.js b/lib/previous-map.js index 7269c27db..779a4b375 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -2,7 +2,7 @@ let { existsSync, readFileSync } = require('fs') let { dirname, join } = require('path') -let { SourceMapConsumer, SourceMapGenerator } = require('source-map') +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') function fromBase64(str) { if (Buffer) { diff --git a/package.json b/package.json index 7d0a35f3d..751544892 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "dependencies": { "colorette": "^1.2.2", "nanoid": "^3.1.23", - "source-map": "7rulnik/source-map#03378502bc3d8c8a71ada20ef199b2f469fae514" + "source-map-js": "^0.6.2" }, "devDependencies": { "@logux/eslint-config": "^45.4.3", diff --git a/test/lazy-result.test.ts b/test/lazy-result.test.ts index 50af1de9f..ac7042bbb 100644 --- a/test/lazy-result.test.ts +++ b/test/lazy-result.test.ts @@ -1,4 +1,4 @@ -import mozilla from 'source-map' +import mozilla from 'source-map-js' import LazyResult from '../lib/lazy-result.js' import Processor from '../lib/processor.js' diff --git a/test/map.test.ts b/test/map.test.ts index b7a065c91..6c0a57c7c 100644 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -1,4 +1,4 @@ -import { SourceMapConsumer, SourceMapGenerator } from 'source-map' +import { SourceMapConsumer, SourceMapGenerator } from 'source-map-js' import { removeSync, outputFileSync } from 'fs-extra' import { join, resolve, parse } from 'path' import { existsSync } from 'fs' diff --git a/test/previous-map.test.ts b/test/previous-map.test.ts index 585253d43..dff70a29f 100644 --- a/test/previous-map.test.ts +++ b/test/previous-map.test.ts @@ -1,5 +1,5 @@ import { removeSync, outputFileSync } from 'fs-extra' -import { SourceMapConsumer } from 'source-map' +import { SourceMapConsumer } from 'source-map-js' import { pathToFileURL } from 'url' import { existsSync } from 'fs' import { join } from 'path' diff --git a/yarn.lock b/yarn.lock index df3166bcf..e807d520c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6574,6 +6574,11 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -6598,10 +6603,6 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@7rulnik/source-map#03378502bc3d8c8a71ada20ef199b2f469fae514: - version "0.6.3" - resolved "https://codeload.github.com/7rulnik/source-map/tar.gz/03378502bc3d8c8a71ada20ef199b2f469fae514" - source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" From 42e60ae7f55cf345319d3b1bf553af9e1d9064e2 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Thu, 6 May 2021 13:01:16 -0400 Subject: [PATCH 2279/3047] feat: Node#assign The `assign` function lets authors assign multiple properties to a node from a single object. This can improve code clarity when updating multiple properties while offering a helpful typing experience. --- lib/at-rule.d.ts | 4 ++++ lib/comment.d.ts | 3 +++ lib/declaration.d.ts | 6 ++++++ lib/node.d.ts | 12 ++++++++++++ lib/node.js | 7 +++++++ lib/root.d.ts | 6 ++++-- lib/rule.d.ts | 4 ++++ 7 files changed, 40 insertions(+), 2 deletions(-) diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index 74ecfb430..6e988071d 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -37,8 +37,11 @@ interface AtRuleRaws { } export interface AtRuleProps extends ContainerProps { + /** Name of the at-rule. */ name: string + /** Parameters following the name of the at-rule. */ params?: string | number + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: AtRuleRaws } @@ -95,6 +98,7 @@ export default class AtRule extends Container { params: string constructor(defaults?: AtRuleProps) + assign(overrides: object | AtRuleProps): this clone(overrides?: Partial): this cloneBefore(overrides?: Partial): this cloneAfter(overrides?: Partial): this diff --git a/lib/comment.d.ts b/lib/comment.d.ts index d1b6a4f91..f9109906f 100644 --- a/lib/comment.d.ts +++ b/lib/comment.d.ts @@ -18,7 +18,9 @@ interface CommentRaws { } export interface CommentProps extends NodeProps { + /** Content of the comment. */ text: string + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: CommentRaws } @@ -45,6 +47,7 @@ export default class Comment extends Node { text: string constructor(defaults?: CommentProps) + assign(overrides: object | CommentProps): this clone(overrides?: Partial): this cloneBefore(overrides?: Partial): this cloneAfter(overrides?: Partial): this diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index 0be0d2822..fe270971d 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -27,8 +27,13 @@ interface DeclarationRaws { } export interface DeclarationProps { + /** Name of the declaration. */ prop: string + /** Value of the declaration. */ value: string + /** Whether the declaration has an `!important` annotation. */ + important: boolean + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: DeclarationRaws } @@ -110,6 +115,7 @@ export default class Declaration extends Node { variable: boolean constructor(defaults?: DeclarationProps) + assign(overrides: object | DeclarationProps): this clone(overrides?: Partial): this cloneBefore(overrides?: Partial): this cloneAfter(overrides?: Partial): this diff --git a/lib/node.d.ts b/lib/node.d.ts index 466058506..5124516db 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -251,6 +251,18 @@ export default abstract class Node { */ toString(stringifier?: Stringifier | Syntax): string + /** + * Assigns properties to the current node. + * + * ```js + * decl.assign({ prop: 'word-wrap', value: 'break-word' }) + * ``` + * + * @param overrides New properties to override the node. + * @return Current node to methods chain. + */ + assign(overrides: object): this + /** * Returns an exact clone of the node. * diff --git a/lib/node.js b/lib/node.js index 5ea7de8e1..5daca501f 100644 --- a/lib/node.js +++ b/lib/node.js @@ -84,6 +84,13 @@ class Node { return result } + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name] + } + return this + } + clone(overrides = {}) { let cloned = cloneNode(this) for (let name in overrides) { diff --git a/lib/root.d.ts b/lib/root.d.ts index 37d948f71..a583639f7 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -15,6 +15,7 @@ interface RootRaws { } export interface RootProps extends ContainerProps { + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: RootRaws } @@ -32,8 +33,6 @@ export default class Root extends Container { parent: undefined raws: RootRaws - constructor(defaults?: RootProps) - /** * Returns a `Result` instance representing the root’s CSS. * @@ -48,4 +47,7 @@ export default class Root extends Container { * @return Result with current root’s CSS. */ toResult(options?: ProcessOptions): Result + + constructor(defaults?: RootProps) + assign(overrides: object | RootProps): this } diff --git a/lib/rule.d.ts b/lib/rule.d.ts index 8243c3666..83068ed16 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -37,8 +37,11 @@ interface RuleRaws { } export interface RuleProps extends ContainerProps { + /** Selector or selectors of the rule. */ selector?: string + /** Selectors of the rule represented as an array of strings. */ selectors?: string[] + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: RuleRaws } @@ -93,6 +96,7 @@ export default class Rule extends Container { selectors: string[] constructor(defaults?: RuleProps) + assign(overrides: object | RuleProps): this clone(overrides?: Partial): this cloneBefore(overrides?: Partial): this cloneAfter(overrides?: Partial): this From 930637ff75cf15bc76f53812ed71a6fe17fd6408 Mon Sep 17 00:00:00 2001 From: Jonathan Neal Date: Thu, 6 May 2021 14:13:28 -0400 Subject: [PATCH 2280/3047] fix: tests - Fixes the `important` prop of DeclarationProps, which should be optional. - Adds a test for the `assign` method. --- lib/declaration.d.ts | 2 +- test/node.test.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index fe270971d..000b49bdf 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -32,7 +32,7 @@ export interface DeclarationProps { /** Value of the declaration. */ value: string /** Whether the declaration has an `!important` annotation. */ - important: boolean + important?: boolean /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: DeclarationRaws } diff --git a/test/node.test.ts b/test/node.test.ts index d60141408..b8b2994c5 100644 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -162,6 +162,18 @@ it('toString() accepts custom syntax', () => { expect(new Rule({ selector: 'a' }).toString({ stringify })).toEqual('a') }) +it('assign() assigns to node', () => { + let decl = new Declaration({ prop: 'white-space', value: 'overflow-wrap' }) + + expect(decl.prop).toBe('white-space') + expect(decl.value).toBe('overflow-wrap') + + decl.assign({ prop: 'word-wrap', value: 'break-word' }) + + expect(decl.prop).toBe('word-wrap') + expect(decl.value).toBe('break-word') +}) + it('clone() clones nodes', () => { let rule = new Rule({ selector: 'a' }) rule.append({ prop: 'color', value: '/**/black' }) From e4ab6c6bca6413b07a2da7a687b8491c6d903a5d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 17 May 2021 08:52:32 -0400 Subject: [PATCH 2281/3047] Fix merge --- lib/input.js | 2 +- lib/map-generator.js | 6 +----- package.json | 4 ++-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/input.js b/lib/input.js index 83becf5ef..c3da732b0 100644 --- a/lib/input.js +++ b/lib/input.js @@ -1,8 +1,8 @@ 'use strict' +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { fileURLToPath, pathToFileURL } = require('url') let { resolve, isAbsolute } = require('path') -let { SourceMapConsumer, SourceMapGenerator } = require('source-map') let { nanoid } = require('nanoid/non-secure') let terminalHighlight = require('./terminal-highlight') diff --git a/lib/map-generator.js b/lib/map-generator.js index 37ff3c07c..a86cc67a0 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -1,15 +1,11 @@ 'use strict' +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { dirname, resolve, relative, sep } = require('path') let { pathToFileURL } = require('url') -<<<<<<< HEAD -let { SourceMapConsumer, SourceMapGenerator } = require('source-map') let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(dirname && resolve && relative && sep) -======= -let mozilla = require('source-map-js') ->>>>>>> a0eb4c0 (move from source-map to source-map-js) class MapGenerator { constructor(stringify, root, opts) { diff --git a/package.json b/package.json index 751544892..0083af9ac 100644 --- a/package.json +++ b/package.json @@ -127,11 +127,11 @@ }, "browser": { "./lib/terminal-highlight": false, + "source-map-js": false, "colorette": false, - "fs": false, "path": false, "url": false, - "source-map": false + "fs": false }, "size-limit": [ { From a5ac723f1f63c59db0a6e4aa7747c400419d755d Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Mon, 17 May 2021 18:23:00 +0200 Subject: [PATCH 2282/3047] Fix types --- lib/document.d.ts | 4 ++-- lib/postcss.d.ts | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/document.d.ts b/lib/document.d.ts index a81acdfe3..246fcd1c4 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -13,10 +13,10 @@ type ChildProps = RootProps /** * Represents a file and contains all its parsed nodes. * - * **Experimental!** Some aspects of this node could change within minor or patch version releases. + * **Experimental:** some aspects of this node could change within minor or patch version releases. * * ```js - * const document = postcss.parse('') + * const document = htmlParser('') * document.type //=> 'document' * document.nodes.length //=> 2 * ``` diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index 980707ecb..08a0574d8 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -41,6 +41,7 @@ export { ChildProps, AtRuleProps, RootProps, + DocumentProps, Warning, CssSyntaxError, Node, @@ -63,6 +64,10 @@ export type SourceMap = SourceMapGenerator & { export type Helpers = { result: Result; postcss: Postcss } & Postcss +type DocumentProcessor = ( + document: Document, + helper: Helpers +) => Promise | void type RootProcessor = (root: Root, helper: Helpers) => Promise | void type DeclarationProcessor = ( decl: Declaration, @@ -81,14 +86,14 @@ interface Processors { * * Will be called again on children changes. */ - Document?: RootProcessor + Document?: DocumentProcessor /** * Will be called on `Document` node, when all children will be processed. * * Will be called again on children changes. */ - DocumentExit?: RootProcessor + DocumentExit?: DocumentProcessor /** * Will be called on `Root` node once. From 69c5d81279f86ec53046079207341f6832947970 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Tue, 18 May 2021 01:22:21 +0200 Subject: [PATCH 2283/3047] Remove unneeded parent type --- lib/at-rule.d.ts | 2 -- lib/root.d.ts | 2 -- lib/rule.d.ts | 2 -- 3 files changed, 6 deletions(-) diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index 40880c848..7a12b068f 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -1,5 +1,4 @@ import Container, { ContainerProps } from './container.js' -import { ChildNode } from './node.js' interface AtRuleRaws { /** @@ -72,7 +71,6 @@ export default class AtRule extends Container { type: 'atrule' parent: Container | undefined raws: AtRuleRaws - nodes: ChildNode[] /** * The at-rule’s name immediately follows the `@`. diff --git a/lib/root.d.ts b/lib/root.d.ts index 4df44efde..9fc4cf83d 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -1,6 +1,5 @@ import Container, { ContainerProps } from './container.js' import Document from './document.js' -import { ChildNode } from './node.js' import { ProcessOptions } from './postcss.js' import Result from './result.js' @@ -38,7 +37,6 @@ export default class Root extends Container { type: 'root' parent: Document | undefined raws: RootRaws - nodes: ChildNode[] constructor(defaults?: RootProps) diff --git a/lib/rule.d.ts b/lib/rule.d.ts index 897829337..ea549acc3 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -1,5 +1,4 @@ import Container, { ContainerProps } from './container.js' -import { ChildNode } from './node.js' interface RuleRaws { /** @@ -65,7 +64,6 @@ export default class Rule extends Container { type: 'rule' parent: Container | undefined raws: RuleRaws - nodes: ChildNode[] /** * The rule’s full selector represented as a string. From 50e07d1c4bcb306102381b59c16e5be6872be35f Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Tue, 18 May 2021 02:01:20 +0200 Subject: [PATCH 2284/3047] Remove `Node#document()` --- lib/node.d.ts | 11 ----------- lib/node.js | 9 --------- test/node.test.ts | 20 -------------------- 3 files changed, 40 deletions(-) diff --git a/lib/node.d.ts b/lib/node.d.ts index 8718c94d8..f4150a87e 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -382,17 +382,6 @@ export default abstract class Node { */ root(): Root - /** - * Finds the Document instance of the node’s tree. - * - * ```js - * document.nodes[0].nodes[0].document() === document - * ``` - * - * @return Document parent. - */ - document(): Document - /** * Returns a `Node#raws` value. If the node is missing * the code style property (because the node was manually built or cloned), diff --git a/lib/node.js b/lib/node.js index 443281932..2cfe1557e 100644 --- a/lib/node.js +++ b/lib/node.js @@ -157,15 +157,6 @@ class Node { return result } - document() { - let result = this - while (result.parent) { - result = result.parent - } - - return result - } - raw(prop, defaultType) { let str = new Stringifier() return str.raw(this, prop, defaultType) diff --git a/test/node.test.ts b/test/node.test.ts index 780c175a1..d8271cb59 100644 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -345,26 +345,6 @@ it('root() returns self on document', () => { expect(document.root()).toBe(document) }) -it('document() returns document', () => { - let css = new Document({ nodes: [parse('@page{a{color:black}}')] }) - - let root = css.first as Root - let page = root.first as AtRule - let a = page.first as Rule - let color = a.first as Declaration - expect(color.document()).toBe(css) -}) - -it('document() returns self on root', () => { - let rule = new Rule({ selector: 'a' }) - expect(rule.document()).toBe(rule) -}) - -it('document() returns self on document', () => { - let document = new Document() - expect(document.document()).toBe(document) -}) - it('cleanRaws() cleans style recursivelly', () => { let css = parse('@page{a{color:black}}') css.cleanRaws() From 49eec3a27d9bb0ac014b2b5065028d40e8d1b805 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Tue, 18 May 2021 21:40:56 +0200 Subject: [PATCH 2285/3047] Remove Root.raws.before --- lib/root.d.ts | 5 ----- test/stringifier.test.js | 21 ++++----------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/root.d.ts b/lib/root.d.ts index 9fc4cf83d..d7b98fd04 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -4,11 +4,6 @@ import { ProcessOptions } from './postcss.js' import Result from './result.js' interface RootRaws { - /** - * The symbols before the first child to the start of file. - */ - before?: string - /** * The space symbols after the last child to the end of file. */ diff --git a/test/stringifier.test.js b/test/stringifier.test.js index c199ded1b..e929e9c6a 100644 --- a/test/stringifier.test.js +++ b/test/stringifier.test.js @@ -221,26 +221,15 @@ it('handles document with one root and after raw', () => { expect(s).toEqual('@foo ') }) -it('handles document with one root and before raw', () => { - let document = new Document() - let root = new Root({ raws: { before: ' ' } }) - root.append(new AtRule({ name: 'foo' })) - document.append(root) - - let s = document.toString() - - expect(s).toEqual(' @foo') -}) - it('handles document with one root and before and after', () => { let document = new Document() - let root = new Root({ raws: { before: 'BEFORE', after: 'AFTER' } }) + let root = new Root({ raws: { after: 'AFTER' } }) root.append(new AtRule({ name: 'foo' })) document.append(root) let s = document.toString() - expect(s).toEqual('BEFORE@fooAFTER') + expect(s).toEqual('@fooAFTER') }) it('handles document with three roots without raws', () => { @@ -264,7 +253,7 @@ it('handles document with three roots without raws', () => { }) it('handles document with three roots, with before and after raws', () => { - let root1 = new Root({ raws: { before: 'BEFORE_ONE', after: 'AFTER_ONE' } }) + let root1 = new Root({ raws: { after: 'AFTER_ONE' } }) root1.append(new Rule({ selector: 'a.one' })) let root2 = new Root({ raws: { after: 'AFTER_TWO' } }) @@ -280,7 +269,5 @@ it('handles document with three roots, with before and after raws', () => { let s = document.toString() - expect(s).toEqual( - 'BEFORE_ONEa.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE' - ) + expect(s).toEqual('a.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE') }) From 54e2e52d08b4a69e0a6c3f8767233803ce1160bb Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Tue, 18 May 2021 23:41:23 +0200 Subject: [PATCH 2286/3047] Test custom parser --- lib/document.d.ts | 8 ++++++ lib/node.d.ts | 2 +- lib/root.d.ts | 2 +- test/processor.test.ts | 64 +++++++++++++++++++++++++++++++++++++++++- 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/lib/document.d.ts b/lib/document.d.ts index 246fcd1c4..d2adc0482 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -5,6 +5,14 @@ import Root, { RootProps } from './root.js' export interface DocumentProps extends ContainerProps { nodes?: Root[] + + /** + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * Every parser saves its own properties. + */ + raws?: Record } type ChildNode = Root diff --git a/lib/node.d.ts b/lib/node.d.ts index f4150a87e..fc4e38299 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -13,7 +13,7 @@ import Container from './container.js' export type ChildNode = AtRule | Rule | Declaration | Comment -export type AnyNode = AtRule | Rule | Declaration | Comment | Root +export type AnyNode = AtRule | Rule | Declaration | Comment | Root | Document export type ChildProps = | AtRuleProps diff --git a/lib/root.d.ts b/lib/root.d.ts index d7b98fd04..49e4d6113 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -3,7 +3,7 @@ import Document from './document.js' import { ProcessOptions } from './postcss.js' import Result from './result.js' -interface RootRaws { +interface RootRaws extends Record { /** * The space symbols after the last child to the end of file. */ diff --git a/test/processor.test.ts b/test/processor.test.ts index 9a73f8a0c..eedb09539 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -7,10 +7,14 @@ import postcss, { Node, Root, parse, - PluginCreator + PluginCreator, + Document, + Parser, + Stringifier } from '../lib/postcss.js' import LazyResult from '../lib/lazy-result.js' import Processor from '../lib/processor.js' +import Rule from '../lib/rule.js' afterEach(() => { jest.resetAllMocks() @@ -547,3 +551,61 @@ it('supports plugin creators returning processors', () => { processor.use(other) expect(processor.plugins).toEqual([a]) }) + +it('uses custom syntax for document', async () => { + // @ts-expect-error + let customParser: Parser = () => { + return new Document({ + nodes: [ + new Root({ + raws: { + markupBefore: '\n\n\n\n' + }, + nodes: [new Rule({ selector: 'b' })] + }) + ] + }) + } + + let customStringifier: Stringifier = (doc, builder) => { + if (doc.type === 'document') { + for (let root of doc.nodes) { + if (root.raws.markupBefore) { + builder(root.raws.markupBefore, root) + } + + builder(root.toString(), root) + + if (root.raws.markupAfter) { + builder(root.raws.markupAfter, root) + } + } + } + } + + let processor = new Processor([() => {}]) + let result = await processor.process('a{}', { + syntax: { + parse: customParser, + stringify: customStringifier + }, + from: undefined + }) + + expect(result.css).toEqual( + '\n\n\n\n' + ) +}) From 3eb068b01f0486e48bcffe0dd1c0f579b2ecfaed Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Tue, 18 May 2021 23:48:26 +0200 Subject: [PATCH 2287/3047] Fix Parser type --- lib/postcss.d.ts | 6 +++--- test/processor.test.ts | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index 08a0574d8..5c3ff62e3 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -221,11 +221,11 @@ export type AcceptedPlugin = } | Processor -export interface Parser { +export interface Parser { ( css: string | { toString(): string }, opts?: Pick - ): Root + ): RootNode } export interface Builder { @@ -245,7 +245,7 @@ export interface Syntax { /** * Function to generate AST by string. */ - parse?: Parser + parse?: Parser /** * Class to generate string by AST. diff --git a/test/processor.test.ts b/test/processor.test.ts index eedb09539..d4f83cc57 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -553,8 +553,7 @@ it('supports plugin creators returning processors', () => { }) it('uses custom syntax for document', async () => { - // @ts-expect-error - let customParser: Parser = () => { + let customParser: Parser = () => { return new Document({ nodes: [ new Root({ From 8af26ab8251c0e380aecba186afa8987a7169b73 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Tue, 18 May 2021 23:56:29 +0200 Subject: [PATCH 2288/3047] Update documentation --- docs/syntax.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index 88716022b..01b81ef7c 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -39,7 +39,7 @@ A good example of a parser is [Safe Parser], which parses malformed/broken CSS. Because there is no point to generate broken output, this package only provides a parser. -The parser API is a function which receives a string & returns a [`Root`] node. +The parser API is a function which receives a string & returns a [`Root`] or [`Document`] node. The second argument is a function which receives an object with PostCSS options. ```js @@ -54,6 +54,7 @@ module.exports = function parse (css, opts) { [Safe Parser]: https://github.com/postcss/postcss-safe-parser [`Root`]: https://postcss.org/api/#root +[`Document`]: https://postcss.org/api/#document ### Main Theory @@ -170,7 +171,7 @@ The Stringifier API is little bit more complicated, than the parser API. PostCSS generates a source map, so a stringifier can’t just return a string. It must link every substring with its source node. -A Stringifier is a function which receives [`Root`] node and builder callback. +A Stringifier is a function which receives [`Root`] or [`Document`] node and builder callback. Then it calls builder with every node’s string and node instance. ```js From 7b3c872e6af5be5426725ebe7e0c4acefd8179ee Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 18 May 2021 20:50:45 -0400 Subject: [PATCH 2289/3047] Use codeBefore instead of markupBefore --- lib/document.d.ts | 7 +++++-- lib/root.d.ts | 21 ++++++++++++++++++++- test/processor.test.ts | 14 +++++++------- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/lib/document.d.ts b/lib/document.d.ts index d2adc0482..28a599ca8 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -21,10 +21,13 @@ type ChildProps = RootProps /** * Represents a file and contains all its parsed nodes. * - * **Experimental:** some aspects of this node could change within minor or patch version releases. + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. * * ```js - * const document = htmlParser('') + * const document = htmlParser( + * '' + * ) * document.type //=> 'document' * document.nodes.length //=> 2 * ``` diff --git a/lib/root.d.ts b/lib/root.d.ts index 741e88ed0..251b92b42 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -9,6 +9,22 @@ interface RootRaws extends Record { */ after?: string + /** + * Non-CSS code before `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeBefore?: string + + /** + * Non-CSS code after `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeAfter?: string + /** * Is the last child has an (optional) semicolon. */ @@ -16,7 +32,10 @@ interface RootRaws extends Record { } export interface RootProps extends ContainerProps { - /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + /** + * Information used to generate byte-to-byte equal node string + * as it was in the origin input. + * */ raws?: RootRaws } diff --git a/test/processor.test.ts b/test/processor.test.ts index d4f83cc57..0e6711a83 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -558,16 +558,16 @@ it('uses custom syntax for document', async () => { nodes: [ new Root({ raws: { - markupBefore: '\n\n\n\n\n' + codeAfter: '\n' }, nodes: [new Rule({ selector: 'b' })] }) @@ -578,14 +578,14 @@ it('uses custom syntax for document', async () => { let customStringifier: Stringifier = (doc, builder) => { if (doc.type === 'document') { for (let root of doc.nodes) { - if (root.raws.markupBefore) { - builder(root.raws.markupBefore, root) + if (root.raws.codeBefore) { + builder(root.raws.codeBefore, root) } builder(root.toString(), root) - if (root.raws.markupAfter) { - builder(root.raws.markupAfter, root) + if (root.raws.codeAfter) { + builder(root.raws.codeAfter, root) } } } From c0fc32d61b1251bd30088bd8e15dbfe2f9700e33 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 20 May 2021 23:02:49 -0400 Subject: [PATCH 2290/3047] Update dependencies --- package.json | 10 +- yarn.lock | 1048 ++++++++++++++++++++------------------------------ 2 files changed, 412 insertions(+), 646 deletions(-) diff --git a/package.json b/package.json index 0083af9ac..9e7234c6c 100644 --- a/package.json +++ b/package.json @@ -70,12 +70,12 @@ }, "devDependencies": { "@logux/eslint-config": "^45.4.3", - "@size-limit/preset-small-lib": "^4.10.2", + "@size-limit/preset-small-lib": "^4.10.3", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", - "@types/node": "^15.3.0", - "@typescript-eslint/eslint-plugin": "^4.23.0", - "@typescript-eslint/parser": "^4.23.0", + "@types/node": "^15.3.1", + "@typescript-eslint/eslint-plugin": "^4.24.0", + "@typescript-eslint/parser": "^4.24.0", "check-dts": "^0.4.4", "ci-job-number": "^1.2.2", "clean-publish": "^2.2.0", @@ -96,7 +96,7 @@ "postcss-parser-tests": "^8.3.5", "prettier": "^2.3.0", "simple-git-hooks": "^2.4.1", - "size-limit": "^4.10.2", + "size-limit": "^4.10.3", "strip-ansi": "^6.0.0", "ts-jest": "^26.5.6", "typescript": "^4.2.4", diff --git a/yarn.lock b/yarn.lock index e807d520c..3f56c9f1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,16 +22,16 @@ integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== "@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.5": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.2.tgz#54e45334ffc0172048e5c93ded36461d3ad4c417" - integrity sha512-OgC1mON+l4U4B4wiohJlQNUU3H73mpTyYY3j/c8U9dr9UagGGSm+WFpzjy/YLdoyjiG++c1kIDgxCo/mLwQJeQ== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" + integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.2" + "@babel/generator" "^7.14.3" "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-module-transforms" "^7.14.2" "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.2" + "@babel/parser" "^7.14.3" "@babel/template" "^7.12.13" "@babel/traverse" "^7.14.2" "@babel/types" "^7.14.2" @@ -43,18 +43,18 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.2.tgz#aa6fe7b76378397d643f14dfa8bf920cb6fbddab" - integrity sha512-g1YXHASb84MvEkReG/nZ74emTPAMjip1Ey6azZqKTEWidpgEzPGl/uoc6IPJjaMGw424u40sNm1V70tuYOQmeA== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.3.tgz#8f292caf83dd2d7b364f938fe7074806af6d70ea" + integrity sha512-IfJXKEVRV/Gisvgmih/+05gkBzzg4Dy0gcxkZ84iFiLK8+O+fI1HLnGJv3UrUMPpsMmmThNa69v+UnF80XP+kA== dependencies: eslint-scope "^5.1.0" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.2.tgz#d5773e8b557d421fd6ce0d5efa5fd7fc22567c30" - integrity sha512-OnADYbKrffDVai5qcpkMxQ7caomHOoEwjkouqnN2QhydAjowFAZcsdecFIRUBdb+ZcruwYE4ythYmF1UBZU5xQ== +"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== dependencies: "@babel/types" "^7.14.2" jsesc "^2.5.1" @@ -127,14 +127,14 @@ integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" + integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== dependencies: "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" "@babel/helper-simple-access@^7.13.12": version "7.13.12" @@ -178,10 +178,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.2.tgz#0c1680aa44ad4605b16cbdcc5c341a61bde9c746" - integrity sha512-IoVDIHpsgE/fu7eXBeRWt8zLbDrSvD7H1gpomOkPpBoEN8KCruCqSDdqo8dddwQQrui30KSvQBaMUOJiuFu6QQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" + integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -276,7 +276,7 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== @@ -560,37 +560,42 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@4.10.2": - version "4.10.2" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.10.2.tgz#0a91b83ae310d267bd0a9d6d865e06b0f3fef6ce" - integrity sha512-IrmEzZitNMTyGcbvIN5bMN6u8A5x8M1YVjfJnEiO3mukMtszGK2yOqVYltyyvB0Qm0Wvqcm4qXAxxRASXtDwVg== +"@size-limit/file@4.10.3": + version "4.10.3" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.10.3.tgz#0d101a951a223e30efa43091ae32898dc5a88eaf" + integrity sha512-AB1Oz1g5U+QbxI8fJjhi58E/nOChG48QeyOFxoH2bJXh3pCBkYBTwFS22nOJObhfc/YAplu69E3vR2/ZaTr1lQ== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^4.10.2": - version "4.10.2" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-4.10.2.tgz#9522f38fb091f88fcb7178735903b31ac9bf4f17" - integrity sha512-TjnxyhwLbazXXMUPYqfta+l0lFKhdhg3GJ92rdxioiO1syS8dMbrvi8VBb9b7CJkfjnAf3gI4kmQxALwfhbCiA== +"@size-limit/preset-small-lib@^4.10.3": + version "4.10.3" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-4.10.3.tgz#3cb9581abd661f4789c99cd1e19d99af9a4725b9" + integrity sha512-BXdrzudai3UwKHA2xjmjnWhoMYAYbi7y8EAROpm7hAnmZAB25ezhWuxR+RFN/FOSbFTZIsq/b56ZISW++jCzsQ== dependencies: - "@size-limit/file" "4.10.2" - "@size-limit/webpack" "4.10.2" + "@size-limit/file" "4.10.3" + "@size-limit/webpack" "4.10.3" -"@size-limit/webpack@4.10.2": - version "4.10.2" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.10.2.tgz#e9bf3ca30eaa371d40687e03e5be4a1c82c6e561" - integrity sha512-ZWGQk4RO8XGOQmYVWiOj5tTsltb7O4f2FEr5iULURbaOuziMItDk6fR1Bs8mXFawrb4s1lKSIGzBxi4uf+TjTQ== +"@size-limit/webpack@4.10.3": + version "4.10.3" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.10.3.tgz#e18d6264435cacc46b39ae3c06b3a462ca6ed3a3" + integrity sha512-QOe7qPGGt4kYyZE/8bTliz7uV0QY7OFgkZo5K/Gr6nEpZlhME53s8FrDMKpNmbkR+2YqUGHSoN5IyRJpIVDpyg== dependencies: - css-loader "^5.2.0" + css-loader "^5.2.5" escape-string-regexp "^4.0.0" file-loader "^6.2.0" mkdirp "^1.0.4" - nanoid "^3.1.22" - optimize-css-assets-webpack-plugin "^5.0.4" + nanoid "^3.1.23" + optimize-css-assets-webpack-plugin "^6.0.0" pnp-webpack-plugin "^1.6.4" rimraf "^3.0.2" style-loader "^2.0.0" webpack "^4.44.1" - webpack-bundle-analyzer "^4.4.0" + webpack-bundle-analyzer "^4.4.2" + +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.14" @@ -676,10 +681,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^15.3.0": - version "15.3.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" - integrity sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ== +"@types/node@*", "@types/node@^15.3.1": + version "15.3.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.1.tgz#23a06b87eedb524016616e886b116b8fdcb180af" + integrity sha512-weaeiP4UF4XgF++3rpQhpIJWsCTS4QJw5gvBhQu6cFIxTwyxWIe3xbnrY/o2lTCQ0lsdb8YIUDUvLR4Vuz5rbw== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -696,11 +701,6 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - "@types/stack-utils@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" @@ -718,13 +718,13 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz#29d3c9c81f6200b1fd6d8454cfb007ba176cde80" - integrity sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw== +"@typescript-eslint/eslint-plugin@^4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.24.0.tgz#03801ffc25b2af9d08f3dc9bccfc0b7ce3780d0f" + integrity sha512-qbCgkPM7DWTsYQGjx9RTuQGswi+bEt0isqDBeo+CKV0953zqI0Tp7CZ7Fi9ipgFA6mcQqF4NOVNwS/f2r6xShw== dependencies: - "@typescript-eslint/experimental-utils" "4.23.0" - "@typescript-eslint/scope-manager" "4.23.0" + "@typescript-eslint/experimental-utils" "4.24.0" + "@typescript-eslint/scope-manager" "4.24.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" lodash "^4.17.15" @@ -732,60 +732,60 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.23.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz#f2059434cd6e5672bfeab2fb03b7c0a20622266f" - integrity sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA== +"@typescript-eslint/experimental-utils@4.24.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.24.0.tgz#c23ead9de44b99c3a5fd925c33a106b00165e172" + integrity sha512-IwTT2VNDKH1h8RZseMH4CcYBz6lTvRoOLDuuqNZZoThvfHEhOiZPQCow+5El3PtyxJ1iDr6UXZwYtE3yZQjhcw== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.23.0" - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/typescript-estree" "4.23.0" + "@typescript-eslint/scope-manager" "4.24.0" + "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/typescript-estree" "4.24.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.23.0.tgz#239315d38e42e852bef43a4b0b01bef78f78911c" - integrity sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug== +"@typescript-eslint/parser@^4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.24.0.tgz#2e5f1cc78ffefe43bfac7e5659309a92b09a51bd" + integrity sha512-dj1ZIh/4QKeECLb2f/QjRwMmDArcwc2WorWPRlB8UNTZlY1KpTVsbX7e3ZZdphfRw29aTFUSNuGB8w9X5sS97w== dependencies: - "@typescript-eslint/scope-manager" "4.23.0" - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/typescript-estree" "4.23.0" + "@typescript-eslint/scope-manager" "4.24.0" + "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/typescript-estree" "4.24.0" debug "^4.1.1" -"@typescript-eslint/scope-manager@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz#8792ef7eacac122e2ec8fa2d30a59b8d9a1f1ce4" - integrity sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w== +"@typescript-eslint/scope-manager@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.24.0.tgz#38088216f0eaf235fa30ed8cabf6948ec734f359" + integrity sha512-9+WYJGDnuC9VtYLqBhcSuM7du75fyCS/ypC8c5g7Sdw7pGL4NDTbeH38eJPfzIydCHZDoOgjloxSAA3+4l/zsA== dependencies: - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/visitor-keys" "4.23.0" + "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/visitor-keys" "4.24.0" -"@typescript-eslint/types@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.23.0.tgz#da1654c8a5332f4d1645b2d9a1c64193cae3aa3b" - integrity sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw== +"@typescript-eslint/types@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.24.0.tgz#6d0cca2048cbda4e265e0c4db9c2a62aaad8228c" + integrity sha512-tkZUBgDQKdvfs8L47LaqxojKDE+mIUmOzdz7r+u+U54l3GDkTpEbQ1Jp3cNqqAU9vMUCBA1fitsIhm7yN0vx9Q== -"@typescript-eslint/typescript-estree@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz#0753b292097523852428a6f5a1aa8ccc1aae6cd9" - integrity sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw== +"@typescript-eslint/typescript-estree@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.24.0.tgz#b49249679a98014d8b03e8d4b70864b950e3c90f" + integrity sha512-kBDitL/by/HK7g8CYLT7aKpAwlR8doshfWz8d71j97n5kUa5caHWvY0RvEUEanL/EqBJoANev8Xc/mQ6LLwXGA== dependencies: - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/visitor-keys" "4.23.0" + "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/visitor-keys" "4.24.0" debug "^4.1.1" globby "^11.0.1" is-glob "^4.0.1" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz#7215cc977bd3b4ef22467b9023594e32f9e4e455" - integrity sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg== +"@typescript-eslint/visitor-keys@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.24.0.tgz#a8fafdc76cad4e04a681a945fbbac4e35e98e297" + integrity sha512-4ox1sjmGHIxjEDBnMCtWFFhErXtKA1Ec0sBpuz0fqf3P+g3JFGyTxxbF06byw0FRsPnnbq44cKivH7Ks1/0s6g== dependencies: - "@typescript-eslint/types" "4.23.0" + "@typescript-eslint/types" "4.24.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -1015,16 +1015,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.4.0.tgz#48984fdb2ce225cab15795f0772a8d85669075e4" - integrity sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q== + version "8.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" + integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -alphanum-sort@^1.0.0: +alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= @@ -1350,7 +1350,7 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -1457,7 +1457,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.14.5: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0: version "4.16.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== @@ -1568,25 +1568,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1597,7 +1578,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -1629,7 +1610,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1805,15 +1786,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -1827,7 +1799,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -1846,26 +1818,15 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" +colord@^1.7.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/colord/-/colord-1.7.2.tgz#474f0e46333cb5c7a191dbd571edeee19a5f97b6" + integrity sha512-/sQCxy6PEhZbrAn1+NVRRefy3k4jkWQGxk7mo2o0CoNA24jq4ujDc2jXzJ5uXphm/TwfdGOP0w8U+H+9ys4Peg== colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" @@ -1894,7 +1855,7 @@ commander@^6.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.2.0: +commander@^7.1.0, commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -1978,16 +1939,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -2078,28 +2029,31 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-color-names@0.0.4, css-color-names@^0.0.4: +css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" + integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== dependencies: - postcss "^7.0.1" timsort "^0.3.0" -css-loader@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" - integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw== +css-loader@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.5.tgz#cdd18d6fe42748990793b4a7ec32eb16f36ba9d7" + integrity sha512-bH6QQacvSRtLX0lycAOs43S173n+lfXxB5cx4FjVkTLw5tAEwk5bxNLbkt5K1iETd5KxazRx70GpqOxsuwKiFA== dependencies: - camelcase "^6.2.0" icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.2.10" + postcss "^8.2.15" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -2108,28 +2062,16 @@ css-loader@^5.2.0: schema-utils "^3.0.0" semver "^7.3.5" -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== dependencies: boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" css-tree@^1.1.2: version "1.1.3" @@ -2139,85 +2081,66 @@ css-tree@^1.1.2: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== +cssnano-preset-default@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.0.tgz#3ff4a1c102f72c7976580ce7f1c52325dc4628ed" + integrity sha512-VTO0WAlrEsU0u+A4RwALRs5zSVnD23WgYO8Np3HowBMZTqWIP1GvIWWzs9zZmjNgeL8U+70megRZymb+1yGg/w== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.1.0" + postcss-convert-values "^5.0.1" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.2" + postcss-merge-rules "^5.0.1" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.1" + postcss-minify-params "^5.0.1" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.1" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.1" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.1" + postcss-unique-selectors "^5.0.1" + +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== +cssnano@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.3.tgz#3ae26411a176168e7a0ef425f4691579e1aed12a" + integrity sha512-Ga/a+IA6U0F9+MNmqrXgwn1A3btY5jFkla2iurL7i9PTmQmMu2Kc99W9a8KSxT8iLV0aoI+Q5Q9i3SpVAVNnrQ== dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" + cosmiconfig "^7.0.0" + cssnano-preset-default "^5.1.0" + is-resolvable "^1.1.0" -csso@^4.0.2: +csso@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== @@ -2402,12 +2325,13 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== dependencies: domelementtype "^2.0.1" + domhandler "^4.2.0" entities "^2.0.0" domain-browser@^1.1.1: @@ -2415,12 +2339,7 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== @@ -2432,20 +2351,21 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== +domutils@^2.4.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" + integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== dependencies: - is-obj "^2.0.0" + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" duplexer@^0.1.2: version "0.1.2" @@ -2471,9 +2391,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.3.723: - version "1.3.728" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.728.tgz#dbedd6373f595ae10a13d146b66bece4c1afa5bd" - integrity sha512-SHv4ziXruBpb1Nz4aTuqEHBYi/9GNCJMYIJgDEXrp/2V01nFXMNFUTli5Z85f5ivSkioLilQatqBYFB44wNJrA== + version "1.3.735" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.735.tgz#fa1a8660f2790662291cb2136f0e446a444cdfdc" + integrity sha512-cp7MWzC3NseUJV2FJFgaiesdrS+A8ZUjX5fLAxdRlcaPDkaPGFplX930S5vf84yqDp4LjuLdKouWuVOTwUfqHQ== elliptic@^6.5.3: version "6.5.4" @@ -2550,7 +2470,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== @@ -3428,7 +3348,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -3549,14 +3469,6 @@ ignore@^5.1.1, ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -3588,11 +3500,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -3621,10 +3528,10 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -3645,11 +3552,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -3700,7 +3602,7 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-color-stop@^1.0.0: +is-color-stop@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= @@ -3756,11 +3658,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -3839,11 +3736,6 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3869,7 +3761,7 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= -is-resolvable@^1.0.0: +is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== @@ -4780,11 +4672,6 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -4924,7 +4811,7 @@ mkdirp@1.x, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -4973,7 +4860,7 @@ nanodelay@^1.0.8: resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== -nanoid@^3.1.22, nanoid@^3.1.23: +nanoid@^3.1.23: version "3.1.23" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== @@ -5093,10 +4980,10 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== +normalize-url@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== npm-run-path@^2.0.0: version "2.0.2" @@ -5112,12 +4999,12 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== dependencies: - boolbase "~1.0.0" + boolbase "^1.0.0" nwsapi@^2.2.0: version "2.2.0" @@ -5170,15 +5057,6 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -5186,7 +5064,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.3: +object.values@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== @@ -5215,13 +5093,14 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.6" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e" - integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A== +optimize-css-assets-webpack-plugin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.0.tgz#00acd99d420715ad96ed3d8ad65a8a4df1be233b" + integrity sha512-XKVxJuCBSslP1Eyuf1uVtZT3Pkp6jEIkmg7BMcNU/pq6XAnDXTINkYFWmiQWt8+j//FO4dIDd4v+gn0m5VWJIw== dependencies: - cssnano "^4.1.10" + cssnano "^5.0.2" last-call-webpack-plugin "^3.0.0" + postcss "^8.2.1" optionator@^0.8.1: version "0.8.3" @@ -5538,123 +5417,104 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== dependencies: - postcss "^7.0.27" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.2" -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss-colormin@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.1.0.tgz#686da694e5e638eac141364e150eb936b3a8e79f" + integrity sha512-5s+VNfQ5CsR6yvBc6Tc8NK9cxb/c8sA547zy+8ofL04gs/GygmOcVZt2s6jJn7TvntAw0Bp6MDpq4bd51EPwdw== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.16.0" + colord "^1.7.0" + postcss-value-parser "^4.1.0" -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== +postcss-convert-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" + integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.1.0" -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== +postcss-merge-longhand@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" + integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== +postcss-merge-rules@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.1.tgz#4ff61c5089d86845184a0f149e88d687028bef7e" + integrity sha512-UR6R5Ph0c96QB9TMBH3ml8/kvPCThPHepdhRqAbvMRDRHQACPC8iM5NpfIC03+VRMZTGXy4L/BvFzcDFCgb+fA== dependencies: - browserslist "^4.0.0" + browserslist "^4.16.0" caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" + vendors "^1.0.3" -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.1.0" -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== +postcss-minify-gradients@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" + integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + cssnano-utils "^2.0.1" + is-color-stop "^1.1.0" + postcss-value-parser "^4.1.0" -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== +postcss-minify-params@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" + integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" uniqs "^2.0.0" -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" postcss-modules-extract-imports@^3.0.0: version "3.0.0" @@ -5684,95 +5544,80 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.1.0" -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.1.0" -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== +postcss-normalize-url@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.1.tgz#ffa9fe545935d8b57becbbb7934dd5e245513183" + integrity sha512-hkbG0j58Z1M830/CJ73VsP7gvlG1yF+4y7Fd1w4tD2c7CaA2Psll+pQ6eQhth9y9EaqZSLzamff/D0MZBMbYSg== dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + is-absolute-url "^3.0.3" + normalize-url "^4.5.0" + postcss-value-parser "^4.1.0" -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.1.0" -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== +postcss-ordered-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.1.tgz#79ef6e2bd267ccad3fc0c4f4a586dfd01c131f64" + integrity sha512-6mkCF5BQ25HvEcDfrMHCLLFHlraBSlOXFnQMHYhSpDO/5jSR1k8LdEXOkv+7+uzW6o6tBYea1Km0wQSRkPJkwA== dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" postcss-parser-tests@^8.3.5: version "8.3.5" @@ -5783,36 +5628,23 @@ postcss-parser-tests@^8.3.5: colorette "^1.2.1" spinnies "^0.5.1" -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== dependencies: - browserslist "^4.0.0" + browserslist "^4.16.0" caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: version "6.0.6" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== @@ -5820,44 +5652,29 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== +postcss-svgo@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.1.tgz#6ed5e01e164e59204978994d844c653a331a8100" + integrity sha512-cD7DFo6tF9i5eWvwtI4irKOHCpmASFS0xvZ5EQIgEdA1AWfM/XiHHY/iss0gcKHhkqwgYmuo2M0KhJLd5Us6mg== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" + postcss-value-parser "^4.1.0" + svgo "^2.3.0" -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== +postcss-unique-selectors@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" + integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" uniqs "^2.0.0" -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.2.10: +postcss@^8.2.1, postcss@^8.2.15: version "8.2.15" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== @@ -5981,11 +5798,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -6207,11 +6019,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -6355,7 +6162,7 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@>=0.6.0, sax@~1.2.4: +sax@>=0.6.0: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -6481,13 +6288,6 @@ simple-git-hooks@^2.4.1: resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.4.1.tgz#bb3495610701394d00ce4a84892a9ca8aad73710" integrity sha512-LFdiF7O0Hg96vS1mO8gtBiDXLkCrLhqpU7O3gMZVO90Uf+/VFY4C5VJITyXPbHNX6OnlFmiFR0YnV4XbfguZHA== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - sirv@^1.0.7: version "1.0.11" resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" @@ -6502,10 +6302,10 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^4.10.2: - version "4.10.2" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.10.2.tgz#caa3a54825db5cbe3759907cf69a8f0d35021f3d" - integrity sha512-FvRqs/F3SfmDPI9UX7tBcQM7PPEgtSFjOao+awOjn73GYY9LUy4SDMyE0BEZgvYJbG5ditfqZffaTvPsde0cag== +size-limit@^4.10.3: + version "4.10.3" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.10.3.tgz#159612e4a40bb2371e4b38b3f24d7c1fd1ab75bf" + integrity sha512-XUYQvgsZDgr4OZKRRtx+Zyp5qcpIx3adgujLEYm+Hpqi2EHoHwxYco1XmEkXA4/0Br5CopowEwDnN7QYh+klOA== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.1" @@ -6852,14 +6652,13 @@ style-loader@^2.0.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" supports-color@^5.3.0: version "5.5.0" @@ -6868,13 +6667,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -6890,24 +6682,18 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" +svgo@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" + integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + dependencies: + "@trysound/sax" "0.1.1" + chalk "^4.1.0" + commander "^7.1.0" + css-select "^3.1.2" + css-tree "^1.1.2" + csso "^4.2.0" stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" symbol-tree@^3.2.4: version "3.2.4" @@ -7224,11 +7010,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" @@ -7258,11 +7039,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -7306,16 +7082,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -7362,7 +7128,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vendors@^1.0.0: +vendors@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== @@ -7442,10 +7208,10 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-bundle-analyzer@^4.4.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz#c71fb2eaffc10a4754d7303b224adb2342069da1" - integrity sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw== +webpack-bundle-analyzer@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" From 3b86dcbb2198b885a3e76a90a99959866da67a0e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 20 May 2021 23:10:04 -0400 Subject: [PATCH 2291/3047] Release 8.3 version --- CHANGELOG.md | 5 +++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb5f757bc..d59b20a22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3 “Duke Murmur” +* Added `Node#assign()` shortcut (by Jonathan Neal). +* Added experimental `Document` node to AST (by Aleks Hudochenkov). +* Moved to faster fork of `source-map` (by Valentin Semirulnik). + ## 8.2.15 * Fixed `list` type definitions (by @n19htz). diff --git a/lib/processor.js b/lib/processor.js index 5d08513d6..56dc81970 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Document = require('./document') class Processor { constructor(plugins = []) { - this.version = '8.2.15' + this.version = '8.3.0' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 9e7234c6c..23c6e93bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.2.15", + "version": "8.3.0", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 8acba52ca81bfebb4e600fd8c023a28ab32f0b3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 May 2021 02:32:51 +0000 Subject: [PATCH 2292/3047] Bump ws from 7.4.5 to 7.4.6 Bumps [ws](https://github.com/websockets/ws) from 7.4.5 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/7.4.5...7.4.6) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3f56c9f1d..8d091f20a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7357,9 +7357,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.3.1, ws@^7.4.4: - version "7.4.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== xml-name-validator@^3.0.0: version "3.0.0" From 2caacf88880f15d1eca20bd9db867b869a5e0063 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Tue, 1 Jun 2021 13:19:49 +0100 Subject: [PATCH 2293/3047] Add `glob` message property documentation --- docs/guidelines/plugin.md | 6 +++++- docs/guidelines/runner.md | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index f630f3202..88a0ed497 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -222,13 +222,17 @@ result.messages.push({ }) ``` -Specify recursive directory dependencies using the `dir-dependency` message type: +Directory dependencies should be specified using the `dir-dependency` message +type. By default all files within the directory (recursively) are considered +dependencies. An optional `glob` property can be used to indicate that only +files matching a specific glob pattern should be considered. ```js result.messages.push({ type: 'dir-dependency', plugin: 'postcss-import', dir: '/imported', + glob: '**/*.css', // optional parent: result.opts.from }) ``` diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 1065db0c2..d2e886ec6 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -77,7 +77,7 @@ is described in [API docs]. PostCSS plugins may declare file or directory dependencies by attaching messages to the `result`. Runners should watch these and ensure that the -CSS is rebuilt when they change. Directories should be watched recursively. +CSS is rebuilt when they change. ```js for (let message of result.messages) { @@ -89,6 +89,12 @@ for (let message of result.messages) { } ``` +Directories should be watched recursively by default, but `dir-dependency` +messages may contain an optional `glob` property indicating which files +within the directory are depended on (e.g. `**/*.css`). If `glob` is +specified then runners should only watch files matching the glob pattern, +where possible. + ## 4. Output From 664b0eee854d918ebda5247e19c923e2f1675203 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Jun 2021 21:07:18 -0400 Subject: [PATCH 2294/3047] Use dirDependnency.glob in example --- docs/guidelines/runner.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index d2e886ec6..21307acd2 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -83,8 +83,10 @@ CSS is rebuilt when they change. for (let message of result.messages) { if (message.type === 'dependency') { watcher.addFile(message.file) + } else if (message.type === 'dir-dependency' && message.glob) { + watcher.addPattern(file.join(message.dir, message.glob)) } else if (message.type === 'dir-dependency') { - watcher.addDir(message.dir) + watcher.addPattern(file.join(message.dir, '**', '*')) } } ``` From 0e9f070ae2915757de002440c453c7835975357a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 10:50:21 +0000 Subject: [PATCH 2295/3047] Bump normalize-url from 4.5.0 to 4.5.1 Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/sindresorhus/normalize-url/releases) - [Commits](https://github.com/sindresorhus/normalize-url/commits) --- updated-dependencies: - dependency-name: normalize-url dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d091f20a..4383780a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4981,9 +4981,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== npm-run-path@^2.0.0: version "2.0.2" From 37bb915a4f1432dd32b8f728385c68b681e20a91 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 9 Jun 2021 19:28:51 -0400 Subject: [PATCH 2296/3047] Update dependencies --- package.json | 28 +- yarn.lock | 2466 ++++++++++++++++++++++---------------------------- 2 files changed, 1078 insertions(+), 1416 deletions(-) diff --git a/package.json b/package.json index 23c6e93bf..1809f1632 100644 --- a/package.json +++ b/package.json @@ -69,37 +69,37 @@ "source-map-js": "^0.6.2" }, "devDependencies": { - "@logux/eslint-config": "^45.4.3", - "@size-limit/preset-small-lib": "^4.10.3", + "@logux/eslint-config": "^45.4.4", + "@size-limit/preset-small-lib": "^4.12.0", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", - "@types/node": "^15.3.1", - "@typescript-eslint/eslint-plugin": "^4.24.0", - "@typescript-eslint/parser": "^4.24.0", + "@types/node": "^15.12.2", + "@typescript-eslint/eslint-plugin": "^4.26.1", + "@typescript-eslint/parser": "^4.26.1", "check-dts": "^0.4.4", "ci-job-number": "^1.2.2", "clean-publish": "^2.2.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^7.26.0", - "eslint-config-standard": "^16.0.2", - "eslint-plugin-import": "^2.23.2", + "eslint": "^7.28.0", + "eslint-config-standard": "^16.0.3", + "eslint-plugin-import": "^2.23.4", "eslint-plugin-jest": "^24.3.6", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-security": "^1.4.0", - "eslint-plugin-unicorn": "^32.0.1", + "eslint-plugin-unicorn": "^33.0.1", "fs-extra": "^10.0.0", - "jest": "^26.6.3", + "jest": "^27.0.4", "lint-staged": "^11.0.0", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.5", - "prettier": "^2.3.0", + "prettier": "^2.3.1", "simple-git-hooks": "^2.4.1", - "size-limit": "^4.10.3", + "size-limit": "^4.12.0", "strip-ansi": "^6.0.0", - "ts-jest": "^26.5.6", - "typescript": "^4.2.4", + "ts-jest": "^27.0.3", + "typescript": "^4.3.2", "yaspeller": "^7.0.0" }, "lint-staged": { diff --git a/yarn.lock b/yarn.lock index 4383780a2..fc0cc239a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,32 +9,32 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.13.15": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" - integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== - -"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.5": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" - integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.3" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.3" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" + integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== + +"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.5.tgz#d281f46a9905f07d1b3bf71ead54d9c7d89cb1e3" + integrity sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helpers" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -43,145 +43,152 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.3.tgz#8f292caf83dd2d7b364f938fe7074806af6d70ea" - integrity sha512-IfJXKEVRV/Gisvgmih/+05gkBzzg4Dy0gcxkZ84iFiLK8+O+fI1HLnGJv3UrUMPpsMmmThNa69v+UnF80XP+kA== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.5.tgz#441c04e2fe9825ea628c2b4e5524d40129cbbccd" + integrity sha512-20BlOHuGf3UXS7z1QPyllM9Gz8SEgcp/UcKeUmdHIFZO6HF1n+3KaLpeyfwWvjY/Os/ynPX3k8qXE/nZ5dw/0g== dependencies: - eslint-scope "^5.1.0" + eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" - integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== +"@babel/generator@^7.14.5", "@babel/generator@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" + integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== dependencies: - "@babel/types" "^7.14.2" + "@babel/types" "^7.14.5" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" - integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== +"@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" + "@babel/compat-data" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-function-name@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" - integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.14.2" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-transforms@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" - integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-replace-supers@^7.13.12": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" - integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - -"@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helpers@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" - integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" - integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8" + integrity sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" + integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-replace-supers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-simple-access@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" + integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helpers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.5.tgz#4870f8d9a6fdbbd65e5674a3558b4ff7fef0d9b2" + integrity sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" - integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.5.tgz#4cd2f346261061b2518873ffecdf1612cb032829" + integrity sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -261,41 +268,49 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/template@^7.12.13", "@babel/template@^7.3.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" - integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.2" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.14.2" - "@babel/types" "^7.14.2" + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/template@^7.14.5", "@babel/template@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870" + integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" - integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" + integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== dependencies: - "@babel/helper-validator-identifier" "^7.14.0" + "@babel/helper-validator-identifier" "^7.14.5" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -303,23 +318,15 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@eslint/eslintrc@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" - integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== +"@eslint/eslintrc@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" + integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^12.1.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" @@ -342,93 +349,94 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== +"@jest/console@^27.0.2": + version "27.0.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.2.tgz#b8eeff8f21ac51d224c851e1729d2630c18631e6" + integrity sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.0.2" + jest-util "^27.0.2" slash "^3.0.0" -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== +"@jest/core@^27.0.4": + version "27.0.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.4.tgz#679bf9ac07900da2ddbb9667bb1afa8029038f53" + integrity sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA== dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.0.2" + "@jest/reporters" "^27.0.4" + "@jest/test-result" "^27.0.2" + "@jest/transform" "^27.0.2" + "@jest/types" "^27.0.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" + jest-changed-files "^27.0.2" + jest-config "^27.0.4" + jest-haste-map "^27.0.2" + jest-message-util "^27.0.2" + jest-regex-util "^27.0.1" + jest-resolve "^27.0.4" + jest-resolve-dependencies "^27.0.4" + jest-runner "^27.0.4" + jest-runtime "^27.0.4" + jest-snapshot "^27.0.4" + jest-util "^27.0.2" + jest-validate "^27.0.2" + jest-watcher "^27.0.2" + micromatch "^4.0.4" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== +"@jest/environment@^27.0.3": + version "27.0.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.3.tgz#68769b1dfdd213e3456169d64fbe9bd63a5fda92" + integrity sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA== dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/fake-timers" "^27.0.3" + "@jest/types" "^27.0.2" "@types/node" "*" - jest-mock "^26.6.2" + jest-mock "^27.0.3" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== +"@jest/fake-timers@^27.0.3": + version "27.0.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.3.tgz#9899ba6304cc636734c74478df502e18136461dd" + integrity sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA== dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" + "@jest/types" "^27.0.2" + "@sinonjs/fake-timers" "^7.0.2" "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.0.2" + jest-mock "^27.0.3" + jest-util "^27.0.2" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== +"@jest/globals@^27.0.3": + version "27.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.3.tgz#1cf8933b7791bba0b99305cbf39fd4d2e3fe4060" + integrity sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ== dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" + "@jest/environment" "^27.0.3" + "@jest/types" "^27.0.2" + expect "^27.0.2" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== +"@jest/reporters@^27.0.4": + version "27.0.4" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.4.tgz#95609b1be97afb80d55d8aa3d7c3179c15810e65" + integrity sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.0.2" + "@jest/test-result" "^27.0.2" + "@jest/transform" "^27.0.2" + "@jest/types" "^27.0.2" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -439,64 +447,61 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" + jest-haste-map "^27.0.2" + jest-resolve "^27.0.4" + jest-util "^27.0.2" + jest-worker "^27.0.2" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== +"@jest/source-map@^27.0.1": + version "27.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.1.tgz#2afbf73ddbaddcb920a8e62d0238a0a9e0a8d3e4" + integrity sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== +"@jest/test-result@^27.0.2": + version "27.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.2.tgz#0451049e32ceb609b636004ccc27c8fa22263f10" + integrity sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA== dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.0.2" + "@jest/types" "^27.0.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== +"@jest/test-sequencer@^27.0.4": + version "27.0.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz#976493b277594d81e589896f0ed21f198308928a" + integrity sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ== dependencies: - "@jest/test-result" "^26.6.2" + "@jest/test-result" "^27.0.2" graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" + jest-haste-map "^27.0.2" + jest-runtime "^27.0.4" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== +"@jest/transform@^27.0.2": + version "27.0.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.2.tgz#b073b7c589e3f4b842102468875def2bb722d6b5" + integrity sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" + jest-haste-map "^27.0.2" + jest-regex-util "^27.0.1" + jest-util "^27.0.2" + micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" @@ -513,38 +518,49 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@logux/eslint-config@^45.4.3": - version "45.4.3" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.3.tgz#301cd72062d6ef5736da3fbd88407f4d92eec61e" - integrity sha512-c5KU180ZskqGeLhsOhTzKskHSFzbB2LFVAUSzGMbeBqIfVoFJeqZTLLz8bNU0AHCl1qtoUj0WvHLNnuNkemUIA== +"@jest/types@^27.0.2": + version "27.0.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.2.tgz#e153d6c46bda0f2589f0702b071f9898c7bbd37e" + integrity sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg== dependencies: - globals "^13.8.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== +"@logux/eslint-config@^45.4.4": + version "45.4.4" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.4.tgz#4205c56117eba934ffe20439bbb83073c19ffb8d" + integrity sha512-yam2SwHOcMr3LVpZzoNGQ1gn60CI3tYNpgPft9A8jPzjgekCHvBDuu7naI7/ipDIpLXRe6XmRFdbtAtJxKADiQ== dependencies: - "@nodelib/fs.stat" "2.0.4" + globals "^13.9.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + version "1.2.7" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" + integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== dependencies: - "@nodelib/fs.scandir" "2.1.4" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@polka/url@^1.0.0-next.9": - version "1.0.0-next.12" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" - integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== +"@polka/url@^1.0.0-next.15": + version "1.0.0-next.15" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" + integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -553,34 +569,34 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== +"@sinonjs/fake-timers@^7.0.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.10.3.tgz#0d101a951a223e30efa43091ae32898dc5a88eaf" - integrity sha512-AB1Oz1g5U+QbxI8fJjhi58E/nOChG48QeyOFxoH2bJXh3pCBkYBTwFS22nOJObhfc/YAplu69E3vR2/ZaTr1lQ== +"@size-limit/file@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.12.0.tgz#50166eca7b9b5aa15f51a72b3d9d31e2d8530e6f" + integrity sha512-csgGSAG3s2y9eOl/taahojXY91AXpNgqLs9HJ5c/Qmrs+6UHgXbwJ4vo475NfZmt1Y9simircb1ygqupauNUyA== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-4.10.3.tgz#3cb9581abd661f4789c99cd1e19d99af9a4725b9" - integrity sha512-BXdrzudai3UwKHA2xjmjnWhoMYAYbi7y8EAROpm7hAnmZAB25ezhWuxR+RFN/FOSbFTZIsq/b56ZISW++jCzsQ== +"@size-limit/preset-small-lib@^4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-4.12.0.tgz#0f7eb6ca7b7e6acb87b17bf6f7d9000946423cfc" + integrity sha512-jqUT2PiPN4Bf9aeUcTHt78+mELwo1x3K+w4grfNkzV/46j1rK3eXarls4qc0/FHolE76cLgNTLNjrX/Zb9c65w== dependencies: - "@size-limit/file" "4.10.3" - "@size-limit/webpack" "4.10.3" + "@size-limit/file" "4.12.0" + "@size-limit/webpack" "4.12.0" -"@size-limit/webpack@4.10.3": - version "4.10.3" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.10.3.tgz#e18d6264435cacc46b39ae3c06b3a462ca6ed3a3" - integrity sha512-QOe7qPGGt4kYyZE/8bTliz7uV0QY7OFgkZo5K/Gr6nEpZlhME53s8FrDMKpNmbkR+2YqUGHSoN5IyRJpIVDpyg== +"@size-limit/webpack@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.12.0.tgz#65076310bbe4f043fad0a3af2bea0423573ff7ae" + integrity sha512-CtqSqxffexYmuAKeKAT2xcDmLwGChHXeq8Y9gjIe9vxfzUx1HU7Nmc0XyvsLGZG1qZO4TFuANlfQeavGY0jB6A== dependencies: - css-loader "^5.2.5" + css-loader "^5.2.6" escape-string-regexp "^4.0.0" file-loader "^6.2.0" mkdirp "^1.0.4" @@ -592,12 +608,17 @@ webpack "^4.44.1" webpack-bundle-analyzer "^4.4.2" +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "@trysound/sax@0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.14" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== @@ -657,9 +678,9 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" - integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" @@ -671,7 +692,7 @@ jest-diff "^26.0.0" pretty-format "^26.0.0" -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.6": +"@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== @@ -681,10 +702,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^15.3.1": - version "15.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.1.tgz#23a06b87eedb524016616e886b116b8fdcb180af" - integrity sha512-weaeiP4UF4XgF++3rpQhpIJWsCTS4QJw5gvBhQu6cFIxTwyxWIe3xbnrY/o2lTCQ0lsdb8YIUDUvLR4Vuz5rbw== +"@types/node@*", "@types/node@^15.12.2": + version "15.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" + integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -696,7 +717,7 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.0.0": +"@types/prettier@^2.1.5": version "2.2.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== @@ -718,74 +739,81 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.24.0.tgz#03801ffc25b2af9d08f3dc9bccfc0b7ce3780d0f" - integrity sha512-qbCgkPM7DWTsYQGjx9RTuQGswi+bEt0isqDBeo+CKV0953zqI0Tp7CZ7Fi9ipgFA6mcQqF4NOVNwS/f2r6xShw== +"@types/yargs@^16.0.0": + version "16.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz#4b6d35bb8e680510a7dc2308518a80ee1ef27e01" + integrity sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ== dependencies: - "@typescript-eslint/experimental-utils" "4.24.0" - "@typescript-eslint/scope-manager" "4.24.0" - debug "^4.1.1" + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz#b9c7313321cb837e2bf8bebe7acc2220659e67d3" + integrity sha512-aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw== + dependencies: + "@typescript-eslint/experimental-utils" "4.26.1" + "@typescript-eslint/scope-manager" "4.26.1" + debug "^4.3.1" functional-red-black-tree "^1.0.1" - lodash "^4.17.15" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@4.24.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.24.0.tgz#c23ead9de44b99c3a5fd925c33a106b00165e172" - integrity sha512-IwTT2VNDKH1h8RZseMH4CcYBz6lTvRoOLDuuqNZZoThvfHEhOiZPQCow+5El3PtyxJ1iDr6UXZwYtE3yZQjhcw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.24.0" - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/typescript-estree" "4.24.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" + lodash "^4.17.21" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" -"@typescript-eslint/parser@^4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.24.0.tgz#2e5f1cc78ffefe43bfac7e5659309a92b09a51bd" - integrity sha512-dj1ZIh/4QKeECLb2f/QjRwMmDArcwc2WorWPRlB8UNTZlY1KpTVsbX7e3ZZdphfRw29aTFUSNuGB8w9X5sS97w== +"@typescript-eslint/experimental-utils@4.26.1", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.1.tgz#a35980a2390da9232aa206b27f620eab66e94142" + integrity sha512-sQHBugRhrXzRCs9PaGg6rowie4i8s/iD/DpTB+EXte8OMDfdCG5TvO73XlO9Wc/zi0uyN4qOmX9hIjQEyhnbmQ== dependencies: - "@typescript-eslint/scope-manager" "4.24.0" - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/typescript-estree" "4.24.0" - debug "^4.1.1" + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.26.1" + "@typescript-eslint/types" "4.26.1" + "@typescript-eslint/typescript-estree" "4.26.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.1.tgz#cecfdd5eb7a5c13aabce1c1cfd7fbafb5a0f1e8e" + integrity sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ== + dependencies: + "@typescript-eslint/scope-manager" "4.26.1" + "@typescript-eslint/types" "4.26.1" + "@typescript-eslint/typescript-estree" "4.26.1" + debug "^4.3.1" -"@typescript-eslint/scope-manager@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.24.0.tgz#38088216f0eaf235fa30ed8cabf6948ec734f359" - integrity sha512-9+WYJGDnuC9VtYLqBhcSuM7du75fyCS/ypC8c5g7Sdw7pGL4NDTbeH38eJPfzIydCHZDoOgjloxSAA3+4l/zsA== +"@typescript-eslint/scope-manager@4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.26.1.tgz#075a74a15ff33ee3a7ed33e5fce16ee86689f662" + integrity sha512-TW1X2p62FQ8Rlne+WEShyd7ac2LA6o27S9i131W4NwDSfyeVlQWhw8ylldNNS8JG6oJB9Ha9Xyc+IUcqipvheQ== dependencies: - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/visitor-keys" "4.24.0" + "@typescript-eslint/types" "4.26.1" + "@typescript-eslint/visitor-keys" "4.26.1" -"@typescript-eslint/types@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.24.0.tgz#6d0cca2048cbda4e265e0c4db9c2a62aaad8228c" - integrity sha512-tkZUBgDQKdvfs8L47LaqxojKDE+mIUmOzdz7r+u+U54l3GDkTpEbQ1Jp3cNqqAU9vMUCBA1fitsIhm7yN0vx9Q== +"@typescript-eslint/types@4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.1.tgz#9e7c523f73c34b04a765e4167ca5650436ef1d38" + integrity sha512-STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg== -"@typescript-eslint/typescript-estree@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.24.0.tgz#b49249679a98014d8b03e8d4b70864b950e3c90f" - integrity sha512-kBDitL/by/HK7g8CYLT7aKpAwlR8doshfWz8d71j97n5kUa5caHWvY0RvEUEanL/EqBJoANev8Xc/mQ6LLwXGA== +"@typescript-eslint/typescript-estree@4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz#b2ce2e789233d62283fae2c16baabd4f1dbc9633" + integrity sha512-l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg== dependencies: - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/visitor-keys" "4.24.0" - debug "^4.1.1" - globby "^11.0.1" + "@typescript-eslint/types" "4.26.1" + "@typescript-eslint/visitor-keys" "4.26.1" + debug "^4.3.1" + globby "^11.0.3" is-glob "^4.0.1" - semver "^7.3.2" - tsutils "^3.17.1" + semver "^7.3.5" + tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.24.0.tgz#a8fafdc76cad4e04a681a945fbbac4e35e98e297" - integrity sha512-4ox1sjmGHIxjEDBnMCtWFFhErXtKA1Ec0sBpuz0fqf3P+g3JFGyTxxbF06byw0FRsPnnbq44cKivH7Ks1/0s6g== +"@typescript-eslint/visitor-keys@4.26.1": + version "4.26.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz#0d55ea735cb0d8903b198017d6d4f518fdaac546" + integrity sha512-IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw== dependencies: - "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/types" "4.26.1" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -981,10 +1009,17 @@ acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.1.0: - version "8.2.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" - integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== +acorn@^8.0.4, acorn@^8.2.4: + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88" + integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" aggregate-error@^3.0.0: version "3.1.0" @@ -1004,7 +1039,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1015,9 +1050,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" - integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== + version "8.6.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" + integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1065,6 +1100,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1148,18 +1188,6 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -1203,26 +1231,16 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== +babel-jest@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.2.tgz#7dc18adb01322acce62c2af76ea2c7cd186ade37" + integrity sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q== dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" + "@jest/transform" "^27.0.2" + "@jest/types" "^27.0.2" + "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" + babel-preset-jest "^27.0.1" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -1238,10 +1256,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== +babel-plugin-jest-hoist@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz#a6d10e484c93abff0f4e95f437dad26e5736ea11" + integrity sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -1266,12 +1284,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== +babel-preset-jest@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz#7a50c75d16647c23a2cf5158d5bb9eb206b10e20" + integrity sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA== dependencies: - babel-plugin-jest-hoist "^26.6.2" + babel-plugin-jest-hoist "^27.0.1" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1297,13 +1315,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1457,7 +1468,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0: +browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: version "4.16.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== @@ -1573,12 +1584,12 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: +camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -1594,21 +1605,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219: - version "1.0.30001228" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" - integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + version "1.0.30001236" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz#0a80de4cdf62e1770bb46a30d884fc8d633e3958" + integrity sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1688,15 +1687,10 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - ci-info@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" - integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== ci-job-number@^1.2.2: version "1.2.2" @@ -1711,10 +1705,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== +cjs-module-lexer@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz#2fd46d9906a126965aa541345c499aaa18e8cd73" + integrity sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw== class-utils@^0.3.5: version "0.3.6" @@ -1767,14 +1761,14 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" clone@^1.0.2: version "1.0.4" @@ -1823,17 +1817,17 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^1.7.0: - version "1.7.2" - resolved "https://registry.yarnpkg.com/colord/-/colord-1.7.2.tgz#474f0e46333cb5c7a191dbd571edeee19a5f97b6" - integrity sha512-/sQCxy6PEhZbrAn1+NVRRefy3k4jkWQGxk7mo2o0CoNA24jq4ujDc2jXzJ5uXphm/TwfdGOP0w8U+H+9ys4Peg== +colord@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" + integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1902,14 +1896,6 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-1.0.0.tgz#3458b332185603e8eed18f518d4a10888a3abc91" - integrity sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE= - dependencies: - normalize-path "^2.1.1" - path-starts-with "^1.0.0" - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" @@ -1934,7 +1920,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -1992,18 +1978,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2046,10 +2021,10 @@ css-declaration-sorter@^6.0.3: dependencies: timsort "^0.3.0" -css-loader@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.5.tgz#cdd18d6fe42748990793b4a7ec32eb16f36ba9d7" - integrity sha512-bH6QQacvSRtLX0lycAOs43S173n+lfXxB5cx4FjVkTLw5tAEwk5bxNLbkt5K1iETd5KxazRx70GpqOxsuwKiFA== +css-loader@^5.2.6: + version "5.2.6" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" + integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== dependencies: icss-utils "^5.1.0" loader-utils "^2.0.0" @@ -2091,22 +2066,22 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.0.tgz#3ff4a1c102f72c7976580ce7f1c52325dc4628ed" - integrity sha512-VTO0WAlrEsU0u+A4RwALRs5zSVnD23WgYO8Np3HowBMZTqWIP1GvIWWzs9zZmjNgeL8U+70megRZymb+1yGg/w== +cssnano-preset-default@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.2.tgz#5d4877a91769823c5da6bcebd54996ecdf8aca12" + integrity sha512-spilp8LRw0sacuxiN9A/dyyPr6G/WISKMBKcBD4NMoPV0ENx4DeuWvIIrSx9PII2nJIDCO3kywkqTPreECBVOg== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" postcss-calc "^8.0.0" - postcss-colormin "^5.1.0" + postcss-colormin "^5.2.0" postcss-convert-values "^5.0.1" postcss-discard-comments "^5.0.1" postcss-discard-duplicates "^5.0.1" postcss-discard-empty "^5.0.1" postcss-discard-overridden "^5.0.1" postcss-merge-longhand "^5.0.2" - postcss-merge-rules "^5.0.1" + postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" postcss-minify-gradients "^5.0.1" postcss-minify-params "^5.0.1" @@ -2123,7 +2098,7 @@ cssnano-preset-default@^5.1.0: postcss-ordered-values "^5.0.1" postcss-reduce-initial "^5.0.1" postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.1" + postcss-svgo "^5.0.2" postcss-unique-selectors "^5.0.1" cssnano-utils@^2.0.1: @@ -2132,12 +2107,12 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.3.tgz#3ae26411a176168e7a0ef425f4691579e1aed12a" - integrity sha512-Ga/a+IA6U0F9+MNmqrXgwn1A3btY5jFkla2iurL7i9PTmQmMu2Kc99W9a8KSxT8iLV0aoI+Q5Q9i3SpVAVNnrQ== + version "5.0.5" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.5.tgz#6b8787123bf4cd5a220a2fa6cb5bc036b0854b48" + integrity sha512-L2VtPXnq6rmcMC9vkBOP131sZu3ccRQI27ejKZdmQiPDpUlFkUbpXHgKN+cibeO1U4PItxVZp1zTIn5dHsXoyg== dependencies: cosmiconfig "^7.0.0" - cssnano-preset-default "^5.1.0" + cssnano-preset-default "^5.1.2" is-resolvable "^1.1.0" csso@^4.2.0: @@ -2169,13 +2144,6 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -2185,6 +2153,13 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2199,18 +2174,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - decimal.js@^10.2.1: version "10.2.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" @@ -2295,6 +2258,11 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.1.tgz#9c9801d52ed5f576ff0a20e3022a13ee6e297e7c" + integrity sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -2359,9 +2327,9 @@ domhandler@^4.0.0, domhandler@^4.2.0: domelementtype "^2.2.0" domutils@^2.4.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" - integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" @@ -2382,18 +2350,10 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - electron-to-chromium@^1.3.723: - version "1.3.735" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.735.tgz#fa1a8660f2790662291cb2136f0e446a444cdfdc" - integrity sha512-cp7MWzC3NseUJV2FJFgaiesdrS+A8ZUjX5fLAxdRlcaPDkaPGFplX930S5vf84yqDp4LjuLdKouWuVOTwUfqHQ== + version "1.3.751" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.751.tgz#e0776481f7a62db61d7bb2132b9627398d54c4e9" + integrity sha512-+qEPTSrwAwfHiavFmbTJ8np1NUYFmeXaDUxIj1+x1zOsYDBgWnl5Z8GeVZqis1Ljp4BlRqoZygRsez2Lg9DJgw== elliptic@^6.5.3: version "6.5.4" @@ -2408,10 +2368,10 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== emoji-regex@^8.0.0: version "8.0.0" @@ -2470,10 +2430,10 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -2483,14 +2443,14 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: has-symbols "^1.0.2" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + unbox-primitive "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -2538,10 +2498,10 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-standard@^16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz#71e91727ac7a203782d0a5ca4d1c462d14e234f6" - integrity sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw== +eslint-config-standard@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" + integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== eslint-import-resolver-node@^0.3.4: version "0.3.4" @@ -2567,14 +2527,13 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.23.2: - version "2.23.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz#ee15dd68fc7a1a1ba4c653c734e0d01c100d3484" - integrity sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg== +eslint-plugin-import@^2.23.4: + version "2.23.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" + integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== dependencies: array-includes "^3.1.3" array.prototype.flat "^1.2.4" - contains-path "^1.0.0" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.4" @@ -2627,15 +2586,15 @@ eslint-plugin-security@^1.4.0: dependencies: safe-regex "^1.1.0" -eslint-plugin-unicorn@^32.0.1: - version "32.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-32.0.1.tgz#a7cb9f538441b78936a96261eea4392d76526d77" - integrity sha512-LaZ9utnXtOJjnoDkpm+nQsONUUmyRR0WD6PGROSdQRRW3LRmgK/ZP8wxjW+Ai+2uolKTtuJzLx2mvbIeIoLqpg== +eslint-plugin-unicorn@^33.0.1: + version "33.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-33.0.1.tgz#15c7d210aad77466acb1e899b06b070099e029ce" + integrity sha512-VxX/L/9DUEyB3D0v00185LrgsB5/fBwkgA4IC7ehHRu5hFSgA6VecmdpFybhsr4GQ/Y1iyXMHf6q+JKvcR2MwA== dependencies: ci-info "^3.1.1" clean-regexp "^1.0.0" eslint-template-visitor "^2.3.2" - eslint-utils "^2.1.0" + eslint-utils "^3.0.0" import-modules "^2.1.0" is-builtin-module "^3.1.0" lodash "^4.17.21" @@ -2654,7 +2613,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0, eslint-scope@^5.1.0, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2680,6 +2639,13 @@ eslint-utils@^2.0.0, eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" @@ -2690,28 +2656,30 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.26.0: - version "7.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" - integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== +eslint@^7.28.0: + version "7.28.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" + integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.1" + "@eslint/eslintrc" "^0.4.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^5.1.2" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -2720,7 +2688,7 @@ eslint@^7.26.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -2729,7 +2697,7 @@ eslint@^7.26.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -2789,43 +2757,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.0" @@ -2855,17 +2790,17 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== +expect@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.2.tgz#e66ca3a4c9592f1c019fa1d46459a9d2084f3422" + integrity sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w== dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" + "@jest/types" "^27.0.2" + ansi-styles "^5.0.0" + jest-get-type "^27.0.1" + jest-matcher-utils "^27.0.2" + jest-message-util "^27.0.2" + jest-regex-util "^27.0.1" extend-shallow@^2.0.1: version "2.0.1" @@ -2882,11 +2817,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -2901,22 +2831,12 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - eyo-kernel@^2.5.6: version "2.5.6" resolved "https://registry.yarnpkg.com/eyo-kernel/-/eyo-kernel-2.5.6.tgz#aedd0e971943db3f5f282b4081f75b2983e7b606" integrity sha512-lAcX7HdPLlNB8Ia6Uvq2hFMx9S5VQSfAXkjBZJi9OXzFC1exDvX9lzk2YeQVB9EKufhlHlgeiD26mzg5q42Rgg== -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -2962,13 +2882,6 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3063,18 +2976,13 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" + combined-stream "^1.0.8" mime-types "^2.1.12" fragment-cache@^0.2.1: @@ -3134,7 +3042,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2, fsevents@~2.3.1: +fsevents@^2.3.2, fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -3154,7 +3062,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3178,20 +3086,6 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -3202,13 +3096,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -3217,7 +3104,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3241,21 +3128,14 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0, globals@^13.8.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" - integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== +globals@^13.6.0, globals@^13.9.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== dependencies: type-fest "^0.20.2" -globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: +globby@^11.0.2, globby@^11.0.3: version "11.0.3" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== @@ -3272,11 +3152,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -3284,19 +3159,6 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3413,24 +3275,27 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + "@tootallnate/once" "1" + agent-base "6" + debug "4" https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" human-signals@^2.1.0: version "2.1.0" @@ -3595,12 +3460,12 @@ is-callable@^1.1.4, is-callable@^1.2.3: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== dependencies: - ci-info "^2.0.0" + ci-info "^3.1.1" is-color-stop@^1.1.0: version "1.1.0" @@ -3658,11 +3523,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -3743,12 +3603,12 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-potential-custom-element-name@^1.0.0: +is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.2: +is-regex@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== @@ -3766,17 +3626,12 @@ is-resolvable@^1.1.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5: +is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== @@ -3788,7 +3643,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -3808,13 +3663,6 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3837,11 +3685,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - istanbul-lib-coverage@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" @@ -3888,59 +3731,86 @@ isutf8@^2.1.0: resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== +jest-changed-files@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.2.tgz#997253042b4a032950fc5f56abf3c5d1f8560801" + integrity sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw== dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" + "@jest/types" "^27.0.2" + execa "^5.0.0" + throat "^6.0.1" -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== +jest-circus@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.4.tgz#3b261514ee3b3da33def736a6352c98ff56bb6e6" + integrity sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw== dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.0.3" + "@jest/test-result" "^27.0.2" + "@jest/types" "^27.0.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.0.2" + is-generator-fn "^2.0.0" + jest-each "^27.0.2" + jest-matcher-utils "^27.0.2" + jest-message-util "^27.0.2" + jest-runtime "^27.0.4" + jest-snapshot "^27.0.4" + jest-util "^27.0.2" + pretty-format "^27.0.2" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.4.tgz#491b12c754c0d7c6873b13a66f26b3a80a852910" + integrity sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ== + dependencies: + "@jest/core" "^27.0.4" + "@jest/test-result" "^27.0.2" + "@jest/types" "^27.0.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-config "^27.0.4" + jest-util "^27.0.2" + jest-validate "^27.0.2" prompts "^2.0.1" - yargs "^15.4.1" + yargs "^16.0.3" -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== +jest-config@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.4.tgz#c4f41378acf40ca77860fb4e213b12109d87b8cf" + integrity sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" + "@jest/test-sequencer" "^27.0.4" + "@jest/types" "^27.0.2" + babel-jest "^27.0.2" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" + is-ci "^3.0.0" + jest-circus "^27.0.4" + jest-environment-jsdom "^27.0.3" + jest-environment-node "^27.0.3" + jest-get-type "^27.0.1" + jest-jasmine2 "^27.0.4" + jest-regex-util "^27.0.1" + jest-resolve "^27.0.4" + jest-runner "^27.0.4" + jest-util "^27.0.2" + jest-validate "^27.0.2" + micromatch "^4.0.4" + pretty-format "^27.0.2" -jest-diff@^26.0.0, jest-diff@^26.6.2: +jest-diff@^26.0.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -3950,138 +3820,152 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== +jest-diff@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.2.tgz#f315b87cee5dc134cf42c2708ab27375cc3f5a7e" + integrity sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw== dependencies: - "@jest/types" "^26.6.2" chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" + diff-sequences "^27.0.1" + jest-get-type "^27.0.1" + pretty-format "^27.0.2" -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== +jest-docblock@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.1.tgz#bd9752819b49fa4fab1a50b73eb58c653b962e8b" + integrity sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA== dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" + detect-newline "^3.0.0" -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== +jest-each@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.2.tgz#865ddb4367476ced752167926b656fa0dcecd8c7" + integrity sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ== dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" + chalk "^4.0.0" + jest-get-type "^27.0.1" + jest-util "^27.0.2" + pretty-format "^27.0.2" + +jest-environment-jsdom@^27.0.3: + version "27.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz#ed73e913ddc03864eb9f934b5cbabf1b63504e2e" + integrity sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA== + dependencies: + "@jest/environment" "^27.0.3" + "@jest/fake-timers" "^27.0.3" + "@jest/types" "^27.0.2" + "@types/node" "*" + jest-mock "^27.0.3" + jest-util "^27.0.2" + jsdom "^16.6.0" + +jest-environment-node@^27.0.3: + version "27.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.3.tgz#b4acb3679d2552a4215732cab8b0ca7ec4398ee0" + integrity sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg== + dependencies: + "@jest/environment" "^27.0.3" + "@jest/fake-timers" "^27.0.3" + "@jest/types" "^27.0.2" "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-mock "^27.0.3" + jest-util "^27.0.2" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== +jest-get-type@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.1.tgz#34951e2b08c8801eb28559d7eb732b04bbcf7815" + integrity sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg== + +jest-haste-map@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.2.tgz#3f1819400c671237e48b4d4b76a80a0dbed7577f" + integrity sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" + jest-regex-util "^27.0.1" + jest-serializer "^27.0.1" + jest-util "^27.0.2" + jest-worker "^27.0.2" + micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: - fsevents "^2.1.2" + fsevents "^2.3.2" -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== +jest-jasmine2@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz#c669519ccf4904a485338555e1e66cad36bb0670" + integrity sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.0.3" + "@jest/source-map" "^27.0.1" + "@jest/test-result" "^27.0.2" + "@jest/types" "^27.0.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.6.2" + expect "^27.0.2" is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + jest-each "^27.0.2" + jest-matcher-utils "^27.0.2" + jest-message-util "^27.0.2" + jest-runtime "^27.0.4" + jest-snapshot "^27.0.4" + jest-util "^27.0.2" + pretty-format "^27.0.2" + throat "^6.0.1" + +jest-leak-detector@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz#ce19aa9dbcf7a72a9d58907a970427506f624e69" + integrity sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q== + dependencies: + jest-get-type "^27.0.1" + pretty-format "^27.0.2" + +jest-matcher-utils@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz#f14c060605a95a466cdc759acc546c6f4cbfc4f0" + integrity sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA== dependencies: chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + jest-diff "^27.0.2" + jest-get-type "^27.0.1" + pretty-format "^27.0.2" -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== +jest-message-util@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.2.tgz#181c9b67dff504d8f4ad15cba10d8b80f272048c" + integrity sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw== dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.0.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" + micromatch "^4.0.4" + pretty-format "^27.0.2" slash "^3.0.0" - stack-utils "^2.0.2" + stack-utils "^2.0.3" -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== +jest-mock@^27.0.3: + version "27.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.3.tgz#5591844f9192b3335c0dca38e8e45ed297d4d23d" + integrity sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -4089,177 +3973,187 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.1.tgz#69d4b1bf5b690faa3490113c47486ed85dd45b68" + integrity sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ== -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== +jest-resolve-dependencies@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz#a07a242d70d668afd3fcf7f4270755eebb1fe579" + integrity sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A== dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" + "@jest/types" "^27.0.2" + jest-regex-util "^27.0.1" + jest-snapshot "^27.0.4" -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== +jest-resolve@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.4.tgz#8a27bc3f2f00c8ea28f3bc99bbf6f468300a703d" + integrity sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" chalk "^4.0.0" + escalade "^3.1.1" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" + jest-util "^27.0.2" + jest-validate "^27.0.2" + resolve "^1.20.0" slash "^3.0.0" -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== +jest-runner@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.4.tgz#2787170a9509b792ae129794f6944d27d5d12a4f" + integrity sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg== dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.0.2" + "@jest/environment" "^27.0.3" + "@jest/test-result" "^27.0.2" + "@jest/transform" "^27.0.2" + "@jest/types" "^27.0.2" "@types/node" "*" chalk "^4.0.0" - emittery "^0.7.1" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" + jest-docblock "^27.0.1" + jest-environment-jsdom "^27.0.3" + jest-environment-node "^27.0.3" + jest-haste-map "^27.0.2" + jest-leak-detector "^27.0.2" + jest-message-util "^27.0.2" + jest-resolve "^27.0.4" + jest-runtime "^27.0.4" + jest-util "^27.0.2" + jest-worker "^27.0.2" source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" + throat "^6.0.1" + +jest-runtime@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.4.tgz#2e4a6aa77cac32ac612dfe12768387a8aa15c2f0" + integrity sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A== + dependencies: + "@jest/console" "^27.0.2" + "@jest/environment" "^27.0.3" + "@jest/fake-timers" "^27.0.3" + "@jest/globals" "^27.0.3" + "@jest/source-map" "^27.0.1" + "@jest/test-result" "^27.0.2" + "@jest/transform" "^27.0.2" + "@jest/types" "^27.0.2" + "@types/yargs" "^16.0.0" chalk "^4.0.0" - cjs-module-lexer "^0.6.0" + cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-haste-map "^27.0.2" + jest-message-util "^27.0.2" + jest-mock "^27.0.3" + jest-regex-util "^27.0.1" + jest-resolve "^27.0.4" + jest-snapshot "^27.0.4" + jest-util "^27.0.2" + jest-validate "^27.0.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.4.1" + yargs "^16.0.3" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== +jest-serializer@^27.0.1: + version "27.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.1.tgz#2464d04dcc33fb71dc80b7c82e3c5e8a08cb1020" + integrity sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== +jest-snapshot@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.4.tgz#2b96e22ca90382b3e93bd0aae2ce4c78bf51fb5b" + integrity sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA== dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" + "@jest/transform" "^27.0.2" + "@jest/types" "^27.0.2" "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^26.6.2" + expect "^27.0.2" graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" + jest-diff "^27.0.2" + jest-get-type "^27.0.1" + jest-haste-map "^27.0.2" + jest-matcher-utils "^27.0.2" + jest-message-util "^27.0.2" + jest-resolve "^27.0.4" + jest-util "^27.0.2" natural-compare "^1.4.0" - pretty-format "^26.6.2" + pretty-format "^27.0.2" semver "^7.3.2" -jest-util@^26.1.0, jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== +jest-util@^27.0.0, jest-util@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.2.tgz#fc2c7ace3c75ae561cf1e5fdb643bf685a5be7c7" + integrity sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.0.2" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" + is-ci "^3.0.0" + picomatch "^2.2.3" -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== +jest-validate@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.2.tgz#7fe2c100089449cd5cbb47a5b0b6cb7cda5beee5" + integrity sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg== dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" + "@jest/types" "^27.0.2" + camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^26.3.0" + jest-get-type "^27.0.1" leven "^3.1.0" - pretty-format "^26.6.2" + pretty-format "^27.0.2" -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== +jest-watcher@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.2.tgz#dab5f9443e2d7f52597186480731a8c6335c5deb" + integrity sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA== dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/test-result" "^27.0.2" + "@jest/types" "^27.0.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.6.2" + jest-util "^27.0.2" string-length "^4.0.1" -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +jest-worker@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" + integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" -jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== +jest@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.4.tgz#91d4d564b36bcf93b98dac1ab19f07089e670f53" + integrity sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA== dependencies: - "@jest/core" "^26.6.3" + "@jest/core" "^27.0.4" import-local "^3.0.2" - jest-cli "^26.6.3" + jest-cli "^27.0.4" js-tokens@^4.0.0: version "4.0.0" @@ -4274,18 +4168,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^16.4.0: - version "16.5.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.3.tgz#13a755b3950eb938b4482c407238ddf16f0d2136" - integrity sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA== +jsdom@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" + integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== dependencies: abab "^2.0.5" - acorn "^8.1.0" + acorn "^8.2.4" acorn-globals "^6.0.0" cssom "^0.4.4" cssstyle "^2.3.0" @@ -4293,12 +4182,13 @@ jsdom@^16.4.0: decimal.js "^10.2.1" domexception "^2.0.1" escodegen "^2.0.0" + form-data "^3.0.0" html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" nwsapi "^2.2.0" parse5 "6.0.1" - request "^2.88.2" - request-promise-native "^1.0.9" saxes "^5.0.1" symbol-tree "^3.2.4" tough-cookie "^4.0.0" @@ -4308,7 +4198,7 @@ jsdom@^16.4.0: whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" whatwg-url "^8.5.0" - ws "^7.4.4" + ws "^7.4.5" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -4336,21 +4226,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - json5@2.x, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" @@ -4374,16 +4254,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -4442,10 +4312,10 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lilconfig@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.2.tgz#9f802752254697d22a5c33e88d97b7329008c060" - integrity sha512-4zUThttj8TQ4N7Pps92Z79jPf1OMcll4m61pivQSVk5MT78hVhNa2LrKTuNYD0AGLpmpf7zeIKOxSt6hHBfypw== +lilconfig@^2.0.2, lilconfig@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" + integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== lines-and-columns@^1.1.6: version "1.1.6" @@ -4481,14 +4351,12 @@ lint-staged@^11.0.0: stringify-object "^3.3.0" listr2@^3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.8.2.tgz#99b138ad1cfb08f1b0aacd422972e49b2d814b99" - integrity sha512-E28Fw7Zd3HQlCJKzb9a8C8M0HtFWQeucE+S8YrSrqZObuCLPRHMRrR8gNmYt65cU9orXYHwvN5agXC36lYt7VQ== + version "3.10.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" + integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== dependencies: - chalk "^4.1.1" cli-truncate "^2.1.0" - figures "^3.2.0" - indent-string "^4.0.0" + colorette "^1.2.2" log-update "^4.0.0" p-map "^4.0.0" rxjs "^6.6.7" @@ -4561,6 +4429,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -4571,7 +4444,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4738,17 +4611,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== +mime-db@1.48.0: + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== +mime-types@^2.1.12: + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: - mime-db "1.47.0" + mime-db "1.48.0" mime@^2.3.1: version "2.5.2" @@ -4777,7 +4650,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -4892,11 +4765,6 @@ neo-async@^2.5.0, neo-async@^2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - node-fetch@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -4941,22 +4809,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - node-releases@^1.1.71: - version "1.1.72" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" - integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -4985,14 +4841,7 @@ normalize-url@^4.5.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -5011,11 +4860,6 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -5030,7 +4874,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: +object-inspect@^1.10.3: version "1.10.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== @@ -5065,14 +4909,13 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.18.2" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -5126,10 +4969,10 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^5.3.0, ora@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.0.tgz#42eda4855835b9cd14d33864c97a3c95a3f56bf4" - integrity sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg== +ora@^5.3.0, ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" chalk "^4.1.0" @@ -5151,11 +4994,6 @@ p-each-series@^2.1.0: resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -5293,27 +5131,15 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-starts-with@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-starts-with/-/path-starts-with-1.0.0.tgz#b28243015e8b138de572682ac52da42e646ad84e" - integrity sha1-soJDAV6LE43lcmgqxS2kLmRq2E4= - dependencies: - normalize-path "^2.1.1" + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^3.0.0: version "3.0.0" @@ -5338,15 +5164,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^3.0.0: version "3.0.0" @@ -5425,13 +5246,14 @@ postcss-calc@^8.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.2" -postcss-colormin@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.1.0.tgz#686da694e5e638eac141364e150eb936b3a8e79f" - integrity sha512-5s+VNfQ5CsR6yvBc6Tc8NK9cxb/c8sA547zy+8ofL04gs/GygmOcVZt2s6jJn7TvntAw0Bp6MDpq4bd51EPwdw== +postcss-colormin@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88" + integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== dependencies: - browserslist "^4.16.0" - colord "^1.7.0" + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.0.1" postcss-value-parser "^4.1.0" postcss-convert-values@^5.0.1: @@ -5470,12 +5292,12 @@ postcss-merge-longhand@^5.0.2: postcss-value-parser "^4.1.0" stylehacks "^5.0.1" -postcss-merge-rules@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.1.tgz#4ff61c5089d86845184a0f149e88d687028bef7e" - integrity sha512-UR6R5Ph0c96QB9TMBH3ml8/kvPCThPHepdhRqAbvMRDRHQACPC8iM5NpfIC03+VRMZTGXy4L/BvFzcDFCgb+fA== +postcss-merge-rules@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" + integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.6" caniuse-api "^3.0.0" cssnano-utils "^2.0.1" postcss-selector-parser "^6.0.5" @@ -5652,10 +5474,10 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.1.tgz#6ed5e01e164e59204978994d844c653a331a8100" - integrity sha512-cD7DFo6tF9i5eWvwtI4irKOHCpmASFS0xvZ5EQIgEdA1AWfM/XiHHY/iss0gcKHhkqwgYmuo2M0KhJLd5Us6mg== +postcss-svgo@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f" + integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== dependencies: postcss-value-parser "^4.1.0" svgo "^2.3.0" @@ -5675,13 +5497,13 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.2.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" - integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== + version "8.3.0" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" + integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== dependencies: colorette "^1.2.2" nanoid "^3.1.23" - source-map "^0.6.1" + source-map-js "^0.6.2" prelude-ls@^1.2.1: version "1.2.1" @@ -5693,10 +5515,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" - integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== +prettier@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" + integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" @@ -5708,6 +5530,16 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" +pretty-format@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.2.tgz#9283ff8c4f581b186b2d4da461617143dca478a4" + integrity sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig== + dependencies: + "@jest/types" "^27.0.2" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -5741,7 +5573,7 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -psl@^1.1.28, psl@^1.1.33: +psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -5798,11 +5630,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -5945,48 +5772,6 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5997,11 +5782,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - requireindex@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -6034,7 +5814,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.18.1, resolve@^1.20.0: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6092,11 +5872,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -6142,26 +5917,11 @@ safe-regex@^2.1.1: dependencies: regexp-tree "~0.1.1" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - sax@>=0.6.0: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -6197,7 +5957,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6221,11 +5981,6 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -6249,13 +6004,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -6263,22 +6011,12 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -6289,11 +6027,11 @@ simple-git-hooks@^2.4.1: integrity sha512-LFdiF7O0Hg96vS1mO8gtBiDXLkCrLhqpU7O3gMZVO90Uf+/VFY4C5VJITyXPbHNX6OnlFmiFR0YnV4XbfguZHA== sirv@^1.0.7: - version "1.0.11" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" - integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== + version "1.0.12" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" + integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== dependencies: - "@polka/url" "^1.0.0-next.9" + "@polka/url" "^1.0.0-next.15" mime "^2.3.1" totalist "^1.0.0" @@ -6302,18 +6040,18 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^4.10.3: - version "4.10.3" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.10.3.tgz#159612e4a40bb2371e4b38b3f24d7c1fd1ab75bf" - integrity sha512-XUYQvgsZDgr4OZKRRtx+Zyp5qcpIx3adgujLEYm+Hpqi2EHoHwxYco1XmEkXA4/0Br5CopowEwDnN7QYh+klOA== +size-limit@^4.12.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.12.0.tgz#ecc9c0448c049a40b10e76b5e1b4a20f99a54468" + integrity sha512-LwlUDPxFJbJDIJsBE5bKo8kFMuxmuewBMDjgfSoQwnO27V8DSK+j6881nsrX3GoM3bJMFIeEq56thqBEdYC8bw== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.1" ci-job-number "^1.2.2" colorette "^1.2.2" globby "^11.0.3" - lilconfig "^2.0.2" - ora "^5.4.0" + lilconfig "^2.0.3" + ora "^5.4.1" read-pkg-up "^7.0.1" slash@^3.0.0: @@ -6440,9 +6178,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf" - integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g== + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== spinnies@^0.5.1: version "0.5.1" @@ -6465,21 +6203,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" @@ -6492,7 +6215,7 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^2.0.2: +stack-utils@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== @@ -6507,11 +6230,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -6629,11 +6347,6 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -6674,6 +6387,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -6700,7 +6420,7 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.0.4: +table@^6.0.9: version "6.7.1" resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== @@ -6763,10 +6483,10 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== through2@^2.0.0: version "2.0.5" @@ -6845,14 +6565,6 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -6862,22 +6574,22 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== dependencies: punycode "^2.1.1" -ts-jest@^26.5.6: - version "26.5.6" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" - integrity sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA== +ts-jest@^27.0.3: + version "27.0.3" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.3.tgz#808492f022296cde19390bb6ad627c8126bf93f8" + integrity sha512-U5rdMjnYam9Ucw+h0QvtNDbc5+88nxt7tbIvqaZUhFrfG4+SkWhMXjejCLVGcpILTPuV+H3W/GZDZrnZFpPeXw== dependencies: bs-logger "0.x" buffer-from "1.x" fast-json-stable-stringify "2.x" - jest-util "^26.1.0" + jest-util "^27.0.0" json5 "2.x" lodash "4.x" make-error "1.x" @@ -6905,7 +6617,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tsutils@^3.17.1: +tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -6917,18 +6629,6 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6980,17 +6680,17 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.1.3, typescript@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" - integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== +typescript@^4.1.3, typescript@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805" + integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -unbox-primitive@^1.0.0: +unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== @@ -7096,16 +6796,6 @@ util@^0.11.0: dependencies: inherits "2.0.3" -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -7133,15 +6823,6 @@ vendors@^1.0.3: resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vfile-location@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" @@ -7166,7 +6847,7 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -walker@^1.0.7, walker@~1.0.5: +walker@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -7273,12 +6954,12 @@ whatwg-mimetype@^2.3.0: integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" - integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg== + version "8.6.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c" + integrity sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw== dependencies: lodash "^4.7.0" - tr46 "^2.0.2" + tr46 "^2.1.0" webidl-conversions "^6.1.0" which-boxed-primitive@^1.0.2: @@ -7292,19 +6973,7 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -7356,7 +7025,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^7.3.1, ws@^7.4.4: +ws@^7.3.1, ws@^7.4.5: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== @@ -7394,6 +7063,11 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -7414,35 +7088,23 @@ yandex-speller@^4.1.0: resolved "https://registry.yarnpkg.com/yandex-speller/-/yandex-speller-4.1.0.tgz#ccdd565705512934ccdcae2df332491a4834761c" integrity sha512-z13o3GCMxm5g/MU28JCIdu9SXsAoShroqAheFciS3K0wa2JRkA1y5qASZuavJuaCl0KG5RhTjo8gdkbyp6QC+w== -yargs-parser@20.x: +yargs-parser@20.x, yargs-parser@^20.2.2: version "20.2.7" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" + y18n "^5.0.5" + yargs-parser "^20.2.2" yaspeller@^7.0.0: version "7.0.0" From 81bf67fc9d56e0722c967b1f26e24e150d6f9fdd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 9 Jun 2021 19:35:44 -0400 Subject: [PATCH 2297/3047] Better useless PostCSS run test --- lib/processor.js | 4 +++- test/processor.test.ts | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/processor.js b/lib/processor.js index 56dc81970..c63f41bf1 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -18,7 +18,9 @@ class Processor { process(css, opts = {}) { if ( this.plugins.length === 0 && - opts.parser === opts.stringifier && + typeof opts.parser === 'undefined' && + typeof opts.stringifier === 'undefined' && + typeof opts.syntax === 'undefined' && !opts.hideNothingWarning ) { if (process.env.NODE_ENV !== 'production') { diff --git a/test/processor.test.ts b/test/processor.test.ts index 0e6711a83..ff06c1f79 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -466,9 +466,11 @@ it('uses custom stringifier', async () => { }) it('uses custom stringifier from object', async () => { + jest.spyOn(console, 'warn').mockImplementation(() => {}) let processor = new Processor([]) let syntax = { parse: prs, stringify: str } let result = await processor.process('', { stringifier: syntax, from: 'a' }) + expect(console.warn).not.toHaveBeenCalled() expect(result.css).toEqual('!') }) @@ -483,11 +485,13 @@ it('uses custom stringifier with source maps', async () => { }) it('uses custom syntax', async () => { + jest.spyOn(console, 'warn').mockImplementation(() => {}) let processor = new Processor([() => {}]) let result = await processor.process('a{}', { syntax: { parse: prs, stringify: str }, from: undefined }) + expect(console.warn).not.toHaveBeenCalled() expect(result.css).toEqual('ok!') }) From c1d99e1ed66fd5036e0f096b429508ae86d4f8d6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 9 Jun 2021 19:37:10 -0400 Subject: [PATCH 2298/3047] Release 8.3.1 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d59b20a22..2818a5491 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.1 +* Fixed false positives `PostCSS does nothing` warning on `syntax` option. + ## 8.3 “Duke Murmur” * Added `Node#assign()` shortcut (by Jonathan Neal). * Added experimental `Document` node to AST (by Aleks Hudochenkov). diff --git a/lib/processor.js b/lib/processor.js index c63f41bf1..deca4c6f2 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Document = require('./document') class Processor { constructor(plugins = []) { - this.version = '8.3.0' + this.version = '8.3.1' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 1809f1632..9a5c60b3f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.0", + "version": "8.3.1", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 54cbf3c4847eb0fb1501b9d2337465439e849734 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Jun 2021 22:38:48 -0400 Subject: [PATCH 2299/3047] Backport ReDoS vulnerabilities from PostCSS 8 --- lib/previous-map.es6 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/previous-map.es6 b/lib/previous-map.es6 index 2f36f0aef..d2c44b814 100644 --- a/lib/previous-map.es6 +++ b/lib/previous-map.es6 @@ -73,12 +73,14 @@ class PreviousMap { getAnnotationURL (sourceMapString) { return sourceMapString - .match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//)[1] + .match(/\/\*\s*# sourceMappingURL=((?:(?!sourceMappingURL=).)*)\*\//)[1] .trim() } loadAnnotation (css) { - let annotations = css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//mg) + let annotations = css.match( + /\/\*\s*# sourceMappingURL=(?:(?!sourceMappingURL=).)*\*\//gm + ) if (annotations && annotations.length > 0) { // Locate the last sourceMappingURL to avoid picking up From 67e3d7b3402c5d3d036ab7c1e781f86910d6ca72 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Jun 2021 22:43:54 -0400 Subject: [PATCH 2300/3047] Release 7.0.36 version --- CHANGELOG.md | 3 +++ lib/processor.es6 | 2 +- package.json | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7019b87b4..0b1cde29e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](http://semver.org/). +## 7.0.36 +* Backport ReDoS vulnerabilities from PostCSS 8. + ## 7.0.35 * Add migration guide link to PostCSS 8 error text. diff --git a/lib/processor.es6 b/lib/processor.es6 index 4021254ab..4f83f4560 100644 --- a/lib/processor.es6 +++ b/lib/processor.es6 @@ -25,7 +25,7 @@ class Processor { * throw new Error('This plugin works only with PostCSS 6') * } */ - this.version = '7.0.35' + this.version = '7.0.36' /** * Plugins added to this processor. * diff --git a/package.json b/package.json index ecc7324a9..ca383d90f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "7.0.35", + "version": "7.0.36", "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" @@ -436,7 +436,9 @@ "Solovev", "VS", "iOS", - "maintainers" + "maintainers", + "Backport", + "ReDoS" ] } } From 94ceb0be1a58cdbfd8d3773a3d47e460a82ba1b0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Jun 2021 22:51:36 -0400 Subject: [PATCH 2301/3047] Fix yarn lock --- yarn.lock | 144 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 74 insertions(+), 70 deletions(-) diff --git a/yarn.lock b/yarn.lock index 54d86d80f..9bd86410d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -108,7 +108,7 @@ browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-function-name@^7.1.0": +"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== @@ -124,6 +124,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-member-expression-to-functions@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8" @@ -1168,14 +1175,14 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.9.1: - version "6.10.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" - integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== +ajv@^8.0.1: + version "8.6.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" + integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" uri-js "^4.2.2" alphanum-sort@^1.0.2: @@ -1205,7 +1212,7 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1328,11 +1335,6 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -1358,7 +1360,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: +atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -2527,11 +2529,6 @@ emittery@^0.8.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3017,7 +3014,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -3350,16 +3347,16 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbols@^1.0.0, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -3729,11 +3726,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -3790,7 +3782,7 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -4422,12 +4414,17 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.x: +json5@2.x, json5@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -4622,6 +4619,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -4632,6 +4634,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -4826,10 +4833,10 @@ mime@^2.3.1: resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -4848,6 +4855,11 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -6000,6 +6012,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + requireindex@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -6032,7 +6049,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.20.0: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.20.0, resolve@^1.3.2: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6097,7 +6114,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.3: +run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= @@ -6187,6 +6204,11 @@ semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^5.4.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -6199,17 +6221,7 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: +set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== @@ -6287,15 +6299,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -6520,15 +6523,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -6584,7 +6578,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -6842,6 +6836,11 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + ts-jest@^27.0.3: version "27.0.3" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.3.tgz#808492f022296cde19390bb6ad627c8126bf93f8" @@ -7246,11 +7245,16 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" From ea030e76442ceeb8a86d62183857b09250cb526a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 02:52:29 +0000 Subject: [PATCH 2302/3047] Bump lodash from 4.17.11 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.21) --- updated-dependencies: - dependency-name: lodash dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9bd86410d..87274c3e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4644,16 +4644,11 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.11, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lodash@^4.17.11: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" From 026416dac4062f0a75d664d183ea371b59b14bf9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Jun 2021 22:53:11 -0400 Subject: [PATCH 2303/3047] Release 8.3.2 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0be41112b..a94be8c77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.2 +* Update changelog. + ## 8.3.1 * Fixed false positives `PostCSS does nothing` warning on `syntax` option. diff --git a/lib/processor.js b/lib/processor.js index deca4c6f2..b334ce2a9 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Document = require('./document') class Processor { constructor(plugins = []) { - this.version = '8.3.1' + this.version = '8.3.2' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index d3cb8dc4a..f652ec302 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.1", + "version": "8.3.2", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 2da5501f709862c19e7103b81ba8fb224a5793ff Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Jun 2021 22:56:57 -0400 Subject: [PATCH 2304/3047] Update dependencies --- yarn.lock | 536 ++++++++++++++---------------------------------------- 1 file changed, 133 insertions(+), 403 deletions(-) diff --git a/yarn.lock b/yarn.lock index 87274c3e1..332c5b24b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,14 +9,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== @@ -28,27 +21,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== -"@babel/core@^7.1.0": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f" - integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helpers" "^7.4.3" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.5.tgz#d281f46a9905f07d1b3bf71ead54d9c7d89cb1e3" integrity sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg== @@ -87,17 +60,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" - integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== - dependencies: - "@babel/types" "^7.4.0" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" - "@babel/helper-compilation-targets@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" @@ -108,7 +70,7 @@ browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.14.5": +"@babel/helper-function-name@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== @@ -166,17 +128,7 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== @@ -205,18 +157,6 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-split-export-declaration@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" - integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== - dependencies: - "@babel/types" "^7.4.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - "@babel/helper-validator-identifier@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" @@ -227,7 +167,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helpers@^7.14.5", "@babel/helpers@^7.4.3": +"@babel/helpers@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.5.tgz#4870f8d9a6fdbbd65e5674a3558b4ff7fef0d9b2" integrity sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q== @@ -236,25 +176,7 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.14.5": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -263,12 +185,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.0", "@babel/parser@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b" - integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ== - -"@babel/parser@^7.14.5", "@babel/parser@^7.7.2": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.7.2": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.5.tgz#4cd2f346261061b2518873ffecdf1612cb032829" integrity sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg== @@ -373,31 +290,7 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/template@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" - integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.0" - "@babel/types" "^7.4.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84" - integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/types" "^7.4.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870" integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg== @@ -412,16 +305,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" - integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" - -"@babel/types@^7.14.5", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== @@ -767,11 +651,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - "@types/fs-extra@^9.0.11": version "9.0.11" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" @@ -786,16 +665,11 @@ dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== -"@types/istanbul-lib-coverage@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz#1eb8c033e98cf4e1a4cedcaf8bcafe8cb7591e85" - integrity sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg== - "@types/istanbul-lib-report@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" @@ -1219,21 +1093,13 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - ansi-styles@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" @@ -1360,7 +1226,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -1752,15 +1618,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== @@ -2002,9 +1860,9 @@ commondir@^1.0.1: integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== concat-map@0.0.1: version "0.0.1" @@ -2038,14 +1896,7 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -convert-source-map@^1.1.0, convert-source-map@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -2215,10 +2066,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.2.tgz#5d4877a91769823c5da6bcebd54996ecdf8aca12" - integrity sha512-spilp8LRw0sacuxiN9A/dyyPr6G/WISKMBKcBD4NMoPV0ENx4DeuWvIIrSx9PII2nJIDCO3kywkqTPreECBVOg== +cssnano-preset-default@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz#caa54183a8c8df03124a9e23f374ab89df5a9a99" + integrity sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -2242,9 +2093,9 @@ cssnano-preset-default@^5.1.2: postcss-normalize-string "^5.0.1" postcss-normalize-timing-functions "^5.0.1" postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.1" + postcss-normalize-url "^5.0.2" postcss-normalize-whitespace "^5.0.1" - postcss-ordered-values "^5.0.1" + postcss-ordered-values "^5.0.2" postcss-reduce-initial "^5.0.1" postcss-reduce-transforms "^5.0.1" postcss-svgo "^5.0.2" @@ -2256,12 +2107,12 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.2: - version "5.0.5" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.5.tgz#6b8787123bf4cd5a220a2fa6cb5bc036b0854b48" - integrity sha512-L2VtPXnq6rmcMC9vkBOP131sZu3ccRQI27ejKZdmQiPDpUlFkUbpXHgKN+cibeO1U4PItxVZp1zTIn5dHsXoyg== + version "5.0.6" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.6.tgz#2a91ad34c6521ae31eab3da9c90108ea3093535d" + integrity sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw== dependencies: cosmiconfig "^7.0.0" - cssnano-preset-default "^5.1.2" + cssnano-preset-default "^5.1.3" is-resolvable "^1.1.0" csso@^4.2.0: @@ -2302,7 +2153,7 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@4, debug@^4.3.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -2323,13 +2174,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - decimal.js@^10.2.1: version "10.2.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" @@ -2507,9 +2351,9 @@ duplexify@^3.4.2, duplexify@^3.6.0: stream-shift "^1.0.0" electron-to-chromium@^1.3.723: - version "1.3.751" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.751.tgz#e0776481f7a62db61d7bb2132b9627398d54c4e9" - integrity sha512-+qEPTSrwAwfHiavFmbTJ8np1NUYFmeXaDUxIj1+x1zOsYDBgWnl5Z8GeVZqis1Ljp4BlRqoZygRsez2Lg9DJgw== + version "1.3.752" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" + integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A== elliptic@^6.5.3: version "6.5.4" @@ -2562,7 +2406,12 @@ enquirer@^2.3.5, enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" -entities@^2.0.0, entities@~2.0.0: +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@~2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== @@ -3004,17 +2853,12 @@ fast-glob@^3.1.1: micromatch "^4.0.2" picomatch "^2.2.1" -fast-json-stable-stringify@2.x: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -3267,7 +3111,7 @@ glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -3279,22 +3123,10 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - globals@^11.1.0: - version "11.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" - integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: version "13.9.0" @@ -3315,12 +3147,7 @@ globby@^11.0.2, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -3347,16 +3174,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -3512,7 +3334,7 @@ ignore@^5.1.1, ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3520,14 +3342,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -3564,20 +3378,20 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= -inherits@^2.0.4, inherits@~2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= is-absolute-url@^3.0.3: version "3.0.3" @@ -3822,14 +3636,7 @@ is-string@^1.0.5, is-string@^1.0.6: resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-symbol@^1.0.3: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== @@ -4424,7 +4231,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.x, json5@^2.1.0: +json5@2.x, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -4438,13 +4245,6 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -4474,11 +4274,11 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.2: +kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== @@ -4644,7 +4444,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.11, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4811,17 +4611,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" - integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== +mime-db@1.48.0: + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== mime-types@^2.1.12: - version "2.1.22" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" - integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: - mime-db "~1.38.0" + mime-db "1.48.0" mime@^2.3.1: version "2.5.2" @@ -4850,17 +4650,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -4894,14 +4684,7 @@ mkdirp@1.x, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.3: +mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -5053,10 +4836,10 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.5.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +normalize-url@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.0.1.tgz#a4f27f58cf8c7b287b440b8a8201f42d0b00d256" + integrity sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ== npm-run-path@^4.0.1: version "4.0.1" @@ -5163,16 +4946,16 @@ optimize-css-assets-webpack-plugin@^6.0.0: postcss "^8.2.1" optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" + word-wrap "~1.2.3" optionator@^0.9.1: version "0.9.1" @@ -5304,9 +5087,9 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" @@ -5354,9 +5137,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^3.0.0: version "3.0.0" @@ -5634,13 +5417,13 @@ postcss-normalize-unicode@^5.0.1: browserslist "^4.16.0" postcss-value-parser "^4.1.0" -postcss-normalize-url@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.1.tgz#ffa9fe545935d8b57becbbb7934dd5e245513183" - integrity sha512-hkbG0j58Z1M830/CJ73VsP7gvlG1yF+4y7Fd1w4tD2c7CaA2Psll+pQ6eQhth9y9EaqZSLzamff/D0MZBMbYSg== +postcss-normalize-url@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763" + integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== dependencies: is-absolute-url "^3.0.3" - normalize-url "^4.5.0" + normalize-url "^6.0.1" postcss-value-parser "^4.1.0" postcss-normalize-whitespace@^5.0.1: @@ -5650,10 +5433,10 @@ postcss-normalize-whitespace@^5.0.1: dependencies: postcss-value-parser "^4.1.0" -postcss-ordered-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.1.tgz#79ef6e2bd267ccad3fc0c4f4a586dfd01c131f64" - integrity sha512-6mkCF5BQ25HvEcDfrMHCLLFHlraBSlOXFnQMHYhSpDO/5jSR1k8LdEXOkv+7+uzW6o6tBYea1Km0wQSRkPJkwA== +postcss-ordered-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" + integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== dependencies: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" @@ -5714,9 +5497,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.3.0" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" - integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== + version "8.3.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.1.tgz#71f380151c227f83b898294a46481f689f86b70a" + integrity sha512-9qH0MGjsSm+fjxOi3GnwViL1otfi7qkj+l/WX5gcRGmZNGsIcqc+A5fBkE6PUobEQK4APqYVaES+B3Uti98TCw== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -5758,9 +5541,9 @@ pretty-format@^27.0.2: react-is "^17.0.1" process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" @@ -5778,12 +5561,12 @@ promise-inflight@^1.0.1: integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= prompts@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.4.tgz#179f9d4db3128b9933aa35f93a800d8fce76a682" - integrity sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== dependencies: - kleur "^3.0.2" - sisteransi "^1.0.0" + kleur "^3.0.3" + sisteransi "^1.0.5" prr@~1.0.1: version "1.0.1" @@ -5918,7 +5701,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2": +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5931,19 +5714,6 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" @@ -6044,7 +5814,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.20.0, resolve@^1.3.2: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6081,9 +5851,9 @@ rgba-regex@^1.0.0: integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= rimraf@^2.5.4, rimraf@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" @@ -6123,16 +5893,16 @@ rxjs@^6.6.7: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.1.1, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -6188,9 +5958,9 @@ semver-compare@^1.0.0: integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= "semver@2 || 3 || 4 || 5", semver@^5.6.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" @@ -6199,11 +5969,6 @@ semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -semver@^5.4.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -6270,10 +6035,10 @@ sirv@^1.0.7: mime "^2.3.1" totalist "^1.0.0" -sisteransi@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" - integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== size-limit@^4.12.0: version "4.12.0" @@ -6353,25 +6118,17 @@ source-map-js@^0.6.2: integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.6: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.12: +source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -6543,20 +6300,13 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" -string_decoder@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" - integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== - dependencies: - safe-buffer "~5.1.0" - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -6831,11 +6581,6 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - ts-jest@^27.0.3: version "27.0.3" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.3.tgz#808492f022296cde19390bb6ad627c8126bf93f8" @@ -6867,16 +6612,11 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.8.1: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -7240,16 +6980,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -7343,16 +7078,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^1.7.2: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - yandex-speller@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/yandex-speller/-/yandex-speller-4.1.0.tgz#ccdd565705512934ccdcae2df332491a4834761c" From d8edfeda3804a63d81d010858ade6ce5e49b93a3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 13 Jun 2021 13:39:27 -0400 Subject: [PATCH 2305/3047] Hot fix for broken isClean on AST dublication --- lib/container.js | 42 +++++++++++++++++++++--------------------- lib/lazy-result.js | 7 +++++-- lib/symbols.js | 2 ++ 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/lib/container.js b/lib/container.js index 42b1b417a..6e434f872 100644 --- a/lib/container.js +++ b/lib/container.js @@ -1,7 +1,7 @@ 'use strict' +let { isClean, my } = require('./symbols') let Declaration = require('./declaration') -let { isClean } = require('./symbols') let Comment = require('./comment') let Node = require('./node') @@ -24,25 +24,6 @@ function markDirtyUp(node) { } } -// istanbul ignore next -function rebuild(node) { - if (node.type === 'atrule') { - Object.setPrototypeOf(node, AtRule.prototype) - } else if (node.type === 'rule') { - Object.setPrototypeOf(node, Rule.prototype) - } else if (node.type === 'decl') { - Object.setPrototypeOf(node, Declaration.prototype) - } else if (node.type === 'comment') { - Object.setPrototypeOf(node, Comment.prototype) - } - - if (node.nodes) { - node.nodes.forEach(child => { - rebuild(child) - }) - } -} - class Container extends Node { push(child) { child.parent = this @@ -336,7 +317,7 @@ class Container extends Node { let processed = nodes.map(i => { // istanbul ignore next - if (typeof i.markDirty !== 'function') rebuild(i) + if (!i[my]) Container.rebuild(i) i = i.proxyOf if (i.parent) i.parent.removeChild(i) if (i[isClean]) markDirtyUp(i) @@ -428,3 +409,22 @@ Container.registerAtRule = dependant => { module.exports = Container Container.default = Container + +// istanbul ignore next +Container.rebuild = node => { + if (node.type === 'atrule') { + Object.setPrototypeOf(node, AtRule.prototype) + } else if (node.type === 'rule') { + Object.setPrototypeOf(node, Rule.prototype) + } else if (node.type === 'decl') { + Object.setPrototypeOf(node, Declaration.prototype) + } else if (node.type === 'comment') { + Object.setPrototypeOf(node, Comment.prototype) + } + + if (node.nodes) { + node.nodes.forEach(child => { + Container.rebuild(child) + }) + } +} diff --git a/lib/lazy-result.js b/lib/lazy-result.js index d5503f335..c071009d6 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -1,13 +1,14 @@ 'use strict' +let { isClean, my } = require('./symbols') let MapGenerator = require('./map-generator') -let { isClean } = require('./symbols') let stringify = require('./stringify') +let Container = require('./container') +let Document = require('./document') let warnOnce = require('./warn-once') let Result = require('./result') let parse = require('./parse') let Root = require('./root') -let Document = require('./document') const TYPE_TO_CLASS_NAME = { document: 'Document', @@ -134,6 +135,8 @@ class LazyResult { this.processed = true this.error = error } + + if (root && !root[my]) Container.rebuild(root) } this.result = new Result(processor, root, opts) diff --git a/lib/symbols.js b/lib/symbols.js index 4a6f1c37f..a142c268d 100644 --- a/lib/symbols.js +++ b/lib/symbols.js @@ -1,3 +1,5 @@ 'use strict' module.exports.isClean = Symbol('isClean') + +module.exports.my = Symbol('my') From 714c5c6263f5930a5ef0c1704bbc707db9581ed5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 13 Jun 2021 13:41:57 -0400 Subject: [PATCH 2306/3047] Require PostCSS peer dependency from parser --- docs/syntax.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index 01b81ef7c..5b5432896 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -39,8 +39,9 @@ A good example of a parser is [Safe Parser], which parses malformed/broken CSS. Because there is no point to generate broken output, this package only provides a parser. -The parser API is a function which receives a string & returns a [`Root`] or [`Document`] node. -The second argument is a function which receives an object with PostCSS options. +The parser API is a function which receives a string & returns a [`Root`] +or [`Document`] node. The second argument is a function which receives +an object with PostCSS options. ```js const postcss = require('postcss') @@ -52,6 +53,9 @@ module.exports = function parse (css, opts) { } ``` +For open source parser npm package must have `postcss` in `peerDependencies`, +not in direct `dependencies`. + [Safe Parser]: https://github.com/postcss/postcss-safe-parser [`Root`]: https://postcss.org/api/#root [`Document`]: https://postcss.org/api/#document From e51efa0593869f6d2b21a1d62358a6723f345fb7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 14 Jun 2021 01:30:55 -0400 Subject: [PATCH 2307/3047] Fix import order --- lib/postcss.mjs | 2 +- lib/previous-map.js | 2 +- lib/processor.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/postcss.mjs b/lib/postcss.mjs index a8b633830..6ba7d1124 100644 --- a/lib/postcss.mjs +++ b/lib/postcss.mjs @@ -8,12 +8,12 @@ export const plugin = postcss.plugin export const parse = postcss.parse export const list = postcss.list +export const document = postcss.document export const comment = postcss.comment export const atRule = postcss.atRule export const rule = postcss.rule export const decl = postcss.decl export const root = postcss.root -export const document = postcss.document export const CssSyntaxError = postcss.CssSyntaxError export const Declaration = postcss.Declaration diff --git a/lib/previous-map.js b/lib/previous-map.js index 779a4b375..fb634deff 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -1,8 +1,8 @@ 'use strict' +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { existsSync, readFileSync } = require('fs') let { dirname, join } = require('path') -let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') function fromBase64(str) { if (Buffer) { diff --git a/lib/processor.js b/lib/processor.js index b334ce2a9..d9c51a1d3 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -1,8 +1,8 @@ 'use strict' let LazyResult = require('./lazy-result') -let Root = require('./root') let Document = require('./document') +let Root = require('./root') class Processor { constructor(plugins = []) { From ff6abab345d193605ec3a8b2859133e7a62d8dc6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 14 Jun 2021 01:31:22 -0400 Subject: [PATCH 2308/3047] Fix Symbol description --- lib/input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/input.js b/lib/input.js index c3da732b0..2a1d26b46 100644 --- a/lib/input.js +++ b/lib/input.js @@ -9,7 +9,7 @@ let terminalHighlight = require('./terminal-highlight') let CssSyntaxError = require('./css-syntax-error') let PreviousMap = require('./previous-map') -let fromOffsetCache = Symbol('fromOffset cache') +let fromOffsetCache = Symbol('fromOffsetCache') let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(resolve && isAbsolute) From 7ea0c9b2d44d1a536f532ebb50e173537842d161 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 14 Jun 2021 01:32:01 -0400 Subject: [PATCH 2309/3047] Release 8.3.3 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a94be8c77..711f2487f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.3 +* Fixed broken AST on `postcss` dependency duplication in custom parsers. + ## 8.3.2 * Update changelog. diff --git a/lib/processor.js b/lib/processor.js index d9c51a1d3..fe6cb4a4c 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.2' + this.version = '8.3.3' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index f652ec302..c2bb47368 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.2", + "version": "8.3.3", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 8b4a8b1e253793a74081ac3366ed72869c21d9ea Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 14 Jun 2021 09:23:43 -0400 Subject: [PATCH 2310/3047] Fix Node[my] hack --- lib/lazy-result.js | 5 ++++- lib/node.js | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index c071009d6..6069ba690 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -136,7 +136,10 @@ class LazyResult { this.error = error } - if (root && !root[my]) Container.rebuild(root) + if (root && !root[my]) { + // istanbul ignore next + Container.rebuild(root) + } } this.result = new Result(processor, root, opts) diff --git a/lib/node.js b/lib/node.js index c5121dfe4..d26ef1fdd 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,8 +1,8 @@ 'use strict' +let { isClean, my } = require('./symbols') let CssSyntaxError = require('./css-syntax-error') let Stringifier = require('./stringifier') -let { isClean } = require('./symbols') let stringify = require('./stringify') function cloneNode(obj, parent) { @@ -36,6 +36,7 @@ class Node { constructor(defaults = {}) { this.raws = {} this[isClean] = false + this[my] = true for (let name in defaults) { if (name === 'nodes') { From c7bae29ec7ccfc6cec74621a4071fcd668236081 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 14 Jun 2021 09:26:53 -0400 Subject: [PATCH 2311/3047] Release 8.3.4 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 711f2487f..08b0708d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.4 +* Fixed broken AST detection. + ## 8.3.3 * Fixed broken AST on `postcss` dependency duplication in custom parsers. diff --git a/lib/processor.js b/lib/processor.js index fe6cb4a4c..a1edf9333 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.3' + this.version = '8.3.4' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index c2bb47368..3d91ad15a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.3", + "version": "8.3.4", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From bdd4edd5c97148d74a13e25c97a409e77c0362ea Mon Sep 17 00:00:00 2001 From: navanshu Date: Tue, 15 Jun 2021 09:34:36 +0530 Subject: [PATCH 2312/3047] Update plugins.md Added postcss-variable-compress plugin to the optimizations list --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 7826ff1b3..035da1eb5 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -349,6 +349,7 @@ loosely resembles the original. * [`postcss-no-important`] delete declarations !important. * [`postcss-deep-scopable`] unified deep scoped style for Vue.js. * [`postcss-deadcss`] helps to find dead CSS in stylesheets. +* [`postcss-variable-compress`] minifies css variables and saves you space. See also plugins in modular minifier [`cssnano`]. @@ -869,3 +870,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-multi-value-display`]: https://github.com/jake-low/postcss-multi-value-display [`postcss-easy-z`]: https://github.com/CSSSR/postcss-easy-z [`postcss-icon-blender`]: https://github.com/icon-blender/postcss-icon-blender +[`postcss-variable-compress`]; https://github.com/navanshu/postcss-variable-compress From d200bf02c283b7070e909f8b97d03aac8548b351 Mon Sep 17 00:00:00 2001 From: navanshu Date: Tue, 15 Jun 2021 09:35:48 +0530 Subject: [PATCH 2313/3047] Update plugins.md --- docs/plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 035da1eb5..2b4b0bda3 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -870,4 +870,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-multi-value-display`]: https://github.com/jake-low/postcss-multi-value-display [`postcss-easy-z`]: https://github.com/CSSSR/postcss-easy-z [`postcss-icon-blender`]: https://github.com/icon-blender/postcss-icon-blender -[`postcss-variable-compress`]; https://github.com/navanshu/postcss-variable-compress +[`postcss-variable-compress`]: https://github.com/navanshu/postcss-variable-compress From 97d1c84d0fd3927db85afe4d8d92329071d7d631 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 16 Jun 2021 07:34:59 +0300 Subject: [PATCH 2314/3047] Set my flag after changing prototype --- lib/container.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/container.js b/lib/container.js index 6e434f872..8b1d0f864 100644 --- a/lib/container.js +++ b/lib/container.js @@ -422,6 +422,8 @@ Container.rebuild = node => { Object.setPrototypeOf(node, Comment.prototype) } + node[my] = true + if (node.nodes) { node.nodes.forEach(child => { Container.rebuild(child) From 9c438417c0d25a92fdef900c69a72388e82cf64c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 17 Jun 2021 06:23:53 +0300 Subject: [PATCH 2315/3047] Update dependencies --- package.json | 6 +- yarn.lock | 186 +++++++++++++++++++++++++-------------------------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/package.json b/package.json index 3d91ad15a..6dadd8dd9 100644 --- a/package.json +++ b/package.json @@ -74,8 +74,8 @@ "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", "@types/node": "^15.12.2", - "@typescript-eslint/eslint-plugin": "^4.26.1", - "@typescript-eslint/parser": "^4.26.1", + "@typescript-eslint/eslint-plugin": "^4.27.0", + "@typescript-eslint/parser": "^4.27.0", "check-dts": "^0.4.4", "ci-job-number": "^1.2.2", "clean-publish": "^2.2.0", @@ -99,7 +99,7 @@ "size-limit": "^4.12.0", "strip-ansi": "^6.0.0", "ts-jest": "^27.0.3", - "typescript": "^4.3.2", + "typescript": "^4.3.3", "yaspeller": "^7.0.0" }, "lint-staged": { diff --git a/yarn.lock b/yarn.lock index 332c5b24b..1dd4e49f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,16 +22,16 @@ integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== "@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.5.tgz#d281f46a9905f07d1b3bf71ead54d9c7d89cb1e3" - integrity sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg== + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" + integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== dependencies: "@babel/code-frame" "^7.14.5" "@babel/generator" "^7.14.5" "@babel/helper-compilation-targets" "^7.14.5" "@babel/helper-module-transforms" "^7.14.5" - "@babel/helpers" "^7.14.5" - "@babel/parser" "^7.14.5" + "@babel/helpers" "^7.14.6" + "@babel/parser" "^7.14.6" "@babel/template" "^7.14.5" "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" @@ -167,10 +167,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helpers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.5.tgz#4870f8d9a6fdbbd65e5674a3558b4ff7fef0d9b2" - integrity sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q== +"@babel/helpers@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" + integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== dependencies: "@babel/template" "^7.14.5" "@babel/traverse" "^7.14.5" @@ -185,10 +185,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.5.tgz#4cd2f346261061b2518873ffecdf1612cb032829" - integrity sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.7.2": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" + integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -718,9 +718,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" - integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb" + integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw== "@types/stack-utils@^2.0.0": version "2.0.0" @@ -746,13 +746,13 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.26.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz#b9c7313321cb837e2bf8bebe7acc2220659e67d3" - integrity sha512-aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw== +"@typescript-eslint/eslint-plugin@^4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.27.0.tgz#0b7fc974e8bc9b2b5eb98ed51427b0be529b4ad0" + integrity sha512-DsLqxeUfLVNp3AO7PC3JyaddmEHTtI9qTSAs+RB6ja27QvIM0TA8Cizn1qcS6vOu+WDLFJzkwkgweiyFhssDdQ== dependencies: - "@typescript-eslint/experimental-utils" "4.26.1" - "@typescript-eslint/scope-manager" "4.26.1" + "@typescript-eslint/experimental-utils" "4.27.0" + "@typescript-eslint/scope-manager" "4.27.0" debug "^4.3.1" functional-red-black-tree "^1.0.1" lodash "^4.17.21" @@ -760,60 +760,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.26.1", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.1.tgz#a35980a2390da9232aa206b27f620eab66e94142" - integrity sha512-sQHBugRhrXzRCs9PaGg6rowie4i8s/iD/DpTB+EXte8OMDfdCG5TvO73XlO9Wc/zi0uyN4qOmX9hIjQEyhnbmQ== +"@typescript-eslint/experimental-utils@4.27.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.27.0.tgz#78192a616472d199f084eab8f10f962c0757cd1c" + integrity sha512-n5NlbnmzT2MXlyT+Y0Jf0gsmAQzCnQSWXKy4RGSXVStjDvS5we9IWbh7qRVKdGcxT0WYlgcCYUK/HRg7xFhvjQ== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.26.1" - "@typescript-eslint/types" "4.26.1" - "@typescript-eslint/typescript-estree" "4.26.1" + "@typescript-eslint/scope-manager" "4.27.0" + "@typescript-eslint/types" "4.27.0" + "@typescript-eslint/typescript-estree" "4.27.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.26.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.1.tgz#cecfdd5eb7a5c13aabce1c1cfd7fbafb5a0f1e8e" - integrity sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ== +"@typescript-eslint/parser@^4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.27.0.tgz#85447e573364bce4c46c7f64abaa4985aadf5a94" + integrity sha512-XpbxL+M+gClmJcJ5kHnUpBGmlGdgNvy6cehgR6ufyxkEJMGP25tZKCaKyC0W/JVpuhU3VU1RBn7SYUPKSMqQvQ== dependencies: - "@typescript-eslint/scope-manager" "4.26.1" - "@typescript-eslint/types" "4.26.1" - "@typescript-eslint/typescript-estree" "4.26.1" + "@typescript-eslint/scope-manager" "4.27.0" + "@typescript-eslint/types" "4.27.0" + "@typescript-eslint/typescript-estree" "4.27.0" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.26.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.26.1.tgz#075a74a15ff33ee3a7ed33e5fce16ee86689f662" - integrity sha512-TW1X2p62FQ8Rlne+WEShyd7ac2LA6o27S9i131W4NwDSfyeVlQWhw8ylldNNS8JG6oJB9Ha9Xyc+IUcqipvheQ== +"@typescript-eslint/scope-manager@4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.27.0.tgz#b0b1de2b35aaf7f532e89c8e81d0fa298cae327d" + integrity sha512-DY73jK6SEH6UDdzc6maF19AHQJBFVRf6fgAXHPXCGEmpqD4vYgPEzqpFz1lf/daSbOcMpPPj9tyXXDPW2XReAw== dependencies: - "@typescript-eslint/types" "4.26.1" - "@typescript-eslint/visitor-keys" "4.26.1" + "@typescript-eslint/types" "4.27.0" + "@typescript-eslint/visitor-keys" "4.27.0" -"@typescript-eslint/types@4.26.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.1.tgz#9e7c523f73c34b04a765e4167ca5650436ef1d38" - integrity sha512-STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg== +"@typescript-eslint/types@4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.27.0.tgz#712b408519ed699baff69086bc59cd2fc13df8d8" + integrity sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA== -"@typescript-eslint/typescript-estree@4.26.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz#b2ce2e789233d62283fae2c16baabd4f1dbc9633" - integrity sha512-l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg== +"@typescript-eslint/typescript-estree@4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.27.0.tgz#189a7b9f1d0717d5cccdcc17247692dedf7a09da" + integrity sha512-KH03GUsUj41sRLLEy2JHstnezgpS5VNhrJouRdmh6yNdQ+yl8w5LrSwBkExM+jWwCJa7Ct2c8yl8NdtNRyQO6g== dependencies: - "@typescript-eslint/types" "4.26.1" - "@typescript-eslint/visitor-keys" "4.26.1" + "@typescript-eslint/types" "4.27.0" + "@typescript-eslint/visitor-keys" "4.27.0" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.26.1": - version "4.26.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz#0d55ea735cb0d8903b198017d6d4f518fdaac546" - integrity sha512-IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw== +"@typescript-eslint/visitor-keys@4.27.0": + version "4.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.27.0.tgz#f56138b993ec822793e7ebcfac6ffdce0a60cb81" + integrity sha512-es0GRYNZp0ieckZ938cEANfEhsfHrzuLrePukLKtY3/KPXcq1Xd555Mno9/GOgXhKzn0QfkDLVgqWO3dGY80bg== dependencies: - "@typescript-eslint/types" "4.26.1" + "@typescript-eslint/types" "4.27.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -1010,9 +1010,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4, acorn@^8.2.4: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88" - integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw== + version "8.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60" + integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w== agent-base@6: version "6.0.2" @@ -1113,7 +1113,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3, anymatch@~3.1.1: +anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -1605,9 +1605,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219: - version "1.0.30001236" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz#0a80de4cdf62e1770bb46a30d884fc8d633e3958" - integrity sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ== + version "1.0.30001237" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz#4b7783661515b8e7151fc6376cfd97f0e427b9e5" + integrity sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1663,19 +1663,19 @@ chokidar@^2.1.8: fsevents "^1.2.7" chokidar@^3.4.1, chokidar@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" chownr@^1.1.1: version "1.1.4" @@ -3042,7 +3042,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.3.2, fsevents@~2.3.1: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -3104,7 +3104,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0: +glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3136,9 +3136,9 @@ globals@^13.6.0, globals@^13.9.0: type-fest "^0.20.2" globby@^11.0.2, globby@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" - integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -5497,9 +5497,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.3.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.1.tgz#71f380151c227f83b898294a46481f689f86b70a" - integrity sha512-9qH0MGjsSm+fjxOi3GnwViL1otfi7qkj+l/WX5gcRGmZNGsIcqc+A5fBkE6PUobEQK4APqYVaES+B3Uti98TCw== + version "8.3.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.4.tgz#41ece1c43f2f7c74dc7d90144047ce052757b822" + integrity sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -5732,10 +5732,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -5753,9 +5753,9 @@ regexp-tree@^0.1.23, regexp-tree@~0.1.1: integrity sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw== regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== remove-trailing-separator@^1.0.1: version "1.1.0" @@ -6680,10 +6680,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.1.3, typescript@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805" - integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw== +typescript@^4.1.3, typescript@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.3.tgz#5401db69bd3203daf1851a1a74d199cb3112c11a" + integrity sha512-rUvLW0WtF7PF2b9yenwWUi9Da9euvDRhmH7BLyBG4DCFfOJ850LGNknmRpp8Z8kXNUPObdZQEfKOiHtXuQHHKA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -7026,9 +7026,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.3.1, ws@^7.4.5: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + version "7.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" + integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== xml-name-validator@^3.0.0: version "3.0.0" From e3781e9cb7cadec64735ab8d13245de163ef2263 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 17 Jun 2021 06:24:37 +0300 Subject: [PATCH 2316/3047] Release 8.3.5 version --- lib/processor.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/processor.js b/lib/processor.js index a1edf9333..ea42b3c74 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.4' + this.version = '8.3.5' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 6dadd8dd9..04cbd8d2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.4", + "version": "8.3.5", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 08ea82e83036f6be14ce4b9391bca768198bd8bd Mon Sep 17 00:00:00 2001 From: megos Date: Fri, 18 Jun 2021 10:17:53 +0900 Subject: [PATCH 2317/3047] Fix duplicate changelog --- CHANGELOG.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08b0708d2..d45ee2308 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -198,18 +198,6 @@ This project adheres to [Semantic Versioning](https://semver.org/). ## 7.0.33 * Add error message for PostCSS 8 plugins. -## 7.0.36 -* Backport ReDoS vulnerabilities from PostCSS 8. - -## 7.0.35 -* Add migration guide link to PostCSS 8 error text. - -## 7.0.34 -* Fix compatibility with `postcss-scss` 2. - -## 7.0.33 -* Add error message for PostCSS 8 plugins. - ## 7.0.32 * Fix error message (by @admosity). From 56dcf91862a0c89b66169f2a888a16ee619eadf1 Mon Sep 17 00:00:00 2001 From: Hex Date: Mon, 28 Jun 2021 18:44:51 +0800 Subject: [PATCH 2318/3047] Added postcss-unit-processor plugin to the list --- docs/plugins.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 2b4b0bda3..6a47c5c80 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -481,7 +481,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-px-to-viewport`] generates viewport units (`vw`, `vh`, `vmin`, `vmax`) from `px` units. * [`postcss-viewport-height-correction`] solves the popular problem when `100vh` doesn’t fit the mobile browser screen. - +* [`postcss-unit-processor`] flexible processing of CSS units. [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -871,3 +871,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-easy-z`]: https://github.com/CSSSR/postcss-easy-z [`postcss-icon-blender`]: https://github.com/icon-blender/postcss-icon-blender [`postcss-variable-compress`]: https://github.com/navanshu/postcss-variable-compress +[`postcss-unit-processor`]: https://github.com/hex-ci/postcss-unit-processor From 476141a74fa88e7f31e5e6e22320469ab86d0d21 Mon Sep 17 00:00:00 2001 From: Hex Date: Mon, 28 Jun 2021 18:49:42 +0800 Subject: [PATCH 2319/3047] Added postcss-unit-processor plugin to the list --- docs/plugins.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/plugins.md b/docs/plugins.md index 6a47c5c80..9fbb263a5 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -483,6 +483,7 @@ See also plugins in modular minifier [`cssnano`]. doesn’t fit the mobile browser screen. * [`postcss-unit-processor`] flexible processing of CSS units. + [flexbox bugs]: https://github.com/philipwalton/flexbugs From 422b5bfe8363795fabc9600c2b98205847d7013d Mon Sep 17 00:00:00 2001 From: Gusted Date: Wed, 21 Jul 2021 16:33:08 +0200 Subject: [PATCH 2320/3047] Return correct column on `missed semicolon` I've added some test-cases to ensure it works. Also added a comment about `why` we it need to get token[3]+1 And ultimately it resolves https://github.com/postcss/postcss/issues/1617 Regards, Gusted --- lib/parser.js | 8 +++++++- test/parse.test.ts | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 2b88483b1..4144cc92d 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -552,7 +552,13 @@ class Parser { if (founded === 2) break } } - throw this.input.error('Missed semicolon', token[2]) + // If the token is a word, e.g. `!important`, `red` or any other valid property's value. + // Then we need to return the colon after that word token. [3] is the "end" colon of that word. + // And because we need it after that one we do +1 to get the next one. + throw this.input.error( + 'Missed semicolon', + token[0] === 'word' ? token[3] + 1 : token[2] + ) } } diff --git a/test/parse.test.ts b/test/parse.test.ts index 6ec282f72..c2455f723 100644 --- a/test/parse.test.ts +++ b/test/parse.test.ts @@ -203,3 +203,23 @@ it('suggests postcss-less for Less sources', () => { parse('.@{my-selector} { }', { from: 'app.less' }) }).toThrow(/postcss-less/) }) + +it('should give the correct column of missed semicolon with !important', () => { + let error + try { + parse('a { \n color: red !important\n background-color: black;\n}') + } catch (e) { + error = e + } + expect(error.message).toMatch(/2:26: Missed semicolon/) +}) + +it('should give the correct column of missed semicolon without !important', () => { + let error + try { + parse('a { \n color: red\n background-color: black;\n}') + } catch (e) { + error = e + } + expect(error.message).toMatch(/2:15: Missed semicolon/) +}) From d3e7aa9d3ce3aeb77ed8d7dfa4b15f906866efb1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 21 Jul 2021 18:23:06 +0300 Subject: [PATCH 2321/3047] Update dependencies --- package.json | 36 +- yarn.lock | 1583 +++++++++++++++++++++++++------------------------- 2 files changed, 801 insertions(+), 818 deletions(-) diff --git a/package.json b/package.json index 04cbd8d2d..a73e74fcc 100644 --- a/package.json +++ b/package.json @@ -69,37 +69,37 @@ "source-map-js": "^0.6.2" }, "devDependencies": { - "@logux/eslint-config": "^45.4.4", - "@size-limit/preset-small-lib": "^4.12.0", - "@types/fs-extra": "^9.0.11", - "@types/jest": "^26.0.23", - "@types/node": "^15.12.2", - "@typescript-eslint/eslint-plugin": "^4.27.0", - "@typescript-eslint/parser": "^4.27.0", - "check-dts": "^0.4.4", + "@logux/eslint-config": "^45.4.6", + "@size-limit/preset-small-lib": "^5.0.1", + "@types/fs-extra": "^9.0.12", + "@types/jest": "^26.0.24", + "@types/node": "^16.4.0", + "@typescript-eslint/eslint-plugin": "^4.28.4", + "@typescript-eslint/parser": "^4.28.4", + "check-dts": "^0.5.4", "ci-job-number": "^1.2.2", "clean-publish": "^2.2.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^7.28.0", + "eslint": "^7.31.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.23.4", - "eslint-plugin-jest": "^24.3.6", + "eslint-plugin-jest": "^24.3.7", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-security": "^1.4.0", - "eslint-plugin-unicorn": "^33.0.1", + "eslint-plugin-unicorn": "^34.0.1", "fs-extra": "^10.0.0", - "jest": "^27.0.4", - "lint-staged": "^11.0.0", + "jest": "^27.0.6", + "lint-staged": "^11.0.1", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.5", - "prettier": "^2.3.1", - "simple-git-hooks": "^2.4.1", - "size-limit": "^4.12.0", + "prettier": "^2.3.2", + "simple-git-hooks": "^2.5.1", + "size-limit": "^5.0.1", "strip-ansi": "^6.0.0", - "ts-jest": "^27.0.3", - "typescript": "^4.3.3", + "ts-jest": "^27.0.4", + "typescript": "^4.3.5", "yaspeller": "^7.0.0" }, "lint-staged": { diff --git a/yarn.lock b/yarn.lock index 1dd4e49f9..aa0327dea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,24 +17,24 @@ "@babel/highlight" "^7.14.5" "@babel/compat-data@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" - integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" + integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== "@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" - integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" + integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" + "@babel/generator" "^7.14.8" "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helpers" "^7.14.6" - "@babel/parser" "^7.14.6" + "@babel/helper-module-transforms" "^7.14.8" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.14.8" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -43,20 +43,20 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.5.tgz#441c04e2fe9825ea628c2b4e5524d40129cbbccd" - integrity sha512-20BlOHuGf3UXS7z1QPyllM9Gz8SEgcp/UcKeUmdHIFZO6HF1n+3KaLpeyfwWvjY/Os/ynPX3k8qXE/nZ5dw/0g== + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.7.tgz#91be59a4f7dd60d02a3ef772d156976465596bda" + integrity sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.5", "@babel/generator@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" - integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== +"@babel/generator@^7.14.8", "@babel/generator@^7.7.2": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.8.tgz#bf86fd6af96cf3b74395a8ca409515f89423e070" + integrity sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.14.8" jsesc "^2.5.1" source-map "^0.5.0" @@ -94,9 +94,9 @@ "@babel/types" "^7.14.5" "@babel/helper-member-expression-to-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8" - integrity sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ== + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" + integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== dependencies: "@babel/types" "^7.14.5" @@ -107,19 +107,19 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" - integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== +"@babel/helper-module-transforms@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz#d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49" + integrity sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA== dependencies: "@babel/helper-module-imports" "^7.14.5" "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.8" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -143,12 +143,12 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-simple-access@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" - integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.14.8" "@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" @@ -157,24 +157,24 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" + integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helpers@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" - integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== +"@babel/helpers@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" + integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== dependencies: "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -185,10 +185,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.7.2": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" - integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.7.2": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" + integrity sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -290,27 +290,27 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870" - integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8", "@babel/traverse@^7.7.2": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.8.tgz#c0253f02677c5de1a8ff9df6b0aacbec7da1a8ce" + integrity sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" + "@babel/generator" "^7.14.8" "@babel/helper-function-name" "^7.14.5" "@babel/helper-hoist-variables" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/parser" "^7.14.8" + "@babel/types" "^7.14.8" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz#38109de8fcadc06415fbd9b74df0065d4d41c728" + integrity sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q== dependencies: - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.8" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -318,10 +318,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" - integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -333,6 +333,20 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -349,94 +363,94 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.2.tgz#b8eeff8f21ac51d224c851e1729d2630c18631e6" - integrity sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w== +"@jest/console@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" + integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.0.2" - jest-util "^27.0.2" + jest-message-util "^27.0.6" + jest-util "^27.0.6" slash "^3.0.0" -"@jest/core@^27.0.4": - version "27.0.4" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.4.tgz#679bf9ac07900da2ddbb9667bb1afa8029038f53" - integrity sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA== - dependencies: - "@jest/console" "^27.0.2" - "@jest/reporters" "^27.0.4" - "@jest/test-result" "^27.0.2" - "@jest/transform" "^27.0.2" - "@jest/types" "^27.0.2" +"@jest/core@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" + integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== + dependencies: + "@jest/console" "^27.0.6" + "@jest/reporters" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.0.2" - jest-config "^27.0.4" - jest-haste-map "^27.0.2" - jest-message-util "^27.0.2" - jest-regex-util "^27.0.1" - jest-resolve "^27.0.4" - jest-resolve-dependencies "^27.0.4" - jest-runner "^27.0.4" - jest-runtime "^27.0.4" - jest-snapshot "^27.0.4" - jest-util "^27.0.2" - jest-validate "^27.0.2" - jest-watcher "^27.0.2" + jest-changed-files "^27.0.6" + jest-config "^27.0.6" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-resolve-dependencies "^27.0.6" + jest-runner "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + jest-watcher "^27.0.6" micromatch "^4.0.4" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.0.3": - version "27.0.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.3.tgz#68769b1dfdd213e3456169d64fbe9bd63a5fda92" - integrity sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA== +"@jest/environment@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" + integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== dependencies: - "@jest/fake-timers" "^27.0.3" - "@jest/types" "^27.0.2" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" - jest-mock "^27.0.3" + jest-mock "^27.0.6" -"@jest/fake-timers@^27.0.3": - version "27.0.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.3.tgz#9899ba6304cc636734c74478df502e18136461dd" - integrity sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA== +"@jest/fake-timers@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" + integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" "@sinonjs/fake-timers" "^7.0.2" "@types/node" "*" - jest-message-util "^27.0.2" - jest-mock "^27.0.3" - jest-util "^27.0.2" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-util "^27.0.6" -"@jest/globals@^27.0.3": - version "27.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.3.tgz#1cf8933b7791bba0b99305cbf39fd4d2e3fe4060" - integrity sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ== +"@jest/globals@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" + integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== dependencies: - "@jest/environment" "^27.0.3" - "@jest/types" "^27.0.2" - expect "^27.0.2" + "@jest/environment" "^27.0.6" + "@jest/types" "^27.0.6" + expect "^27.0.6" -"@jest/reporters@^27.0.4": - version "27.0.4" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.4.tgz#95609b1be97afb80d55d8aa3d7c3179c15810e65" - integrity sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg== +"@jest/reporters@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" + integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.0.2" - "@jest/test-result" "^27.0.2" - "@jest/transform" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/console" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -447,60 +461,60 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.0.2" - jest-resolve "^27.0.4" - jest-util "^27.0.2" - jest-worker "^27.0.2" + jest-haste-map "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" + v8-to-istanbul "^8.0.0" -"@jest/source-map@^27.0.1": - version "27.0.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.1.tgz#2afbf73ddbaddcb920a8e62d0238a0a9e0a8d3e4" - integrity sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A== +"@jest/source-map@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" + integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.2.tgz#0451049e32ceb609b636004ccc27c8fa22263f10" - integrity sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA== +"@jest/test-result@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" + integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== dependencies: - "@jest/console" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/console" "^27.0.6" + "@jest/types" "^27.0.6" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.0.4": - version "27.0.4" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz#976493b277594d81e589896f0ed21f198308928a" - integrity sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ== +"@jest/test-sequencer@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" + integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== dependencies: - "@jest/test-result" "^27.0.2" + "@jest/test-result" "^27.0.6" graceful-fs "^4.2.4" - jest-haste-map "^27.0.2" - jest-runtime "^27.0.4" + jest-haste-map "^27.0.6" + jest-runtime "^27.0.6" -"@jest/transform@^27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.2.tgz#b073b7c589e3f4b842102468875def2bb722d6b5" - integrity sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw== +"@jest/transform@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" + integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^27.0.2" - jest-regex-util "^27.0.1" - jest-util "^27.0.2" + jest-haste-map "^27.0.6" + jest-regex-util "^27.0.6" + jest-util "^27.0.6" micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" @@ -518,10 +532,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.2.tgz#e153d6c46bda0f2589f0702b071f9898c7bbd37e" - integrity sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg== +"@jest/types@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" + integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -529,10 +543,10 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@logux/eslint-config@^45.4.4": - version "45.4.4" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.4.tgz#4205c56117eba934ffe20439bbb83073c19ffb8d" - integrity sha512-yam2SwHOcMr3LVpZzoNGQ1gn60CI3tYNpgPft9A8jPzjgekCHvBDuu7naI7/ipDIpLXRe6XmRFdbtAtJxKADiQ== +"@logux/eslint-config@^45.4.6": + version "45.4.6" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.6.tgz#250d4f585512a507510fae429eb2512fb9e257aa" + integrity sha512-JLzAjae2Tr4pG055WDufp5yFgms6IuXOc8nOfSPd2ASWiOxKWRtQ9hvtgj8p9Dc1gB9mMSrmI4Z/gqtescSpZw== dependencies: globals "^13.9.0" @@ -550,9 +564,9 @@ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz#94c23db18ee4653e129abd26fb06f870ac9e1ee2" - integrity sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" @@ -576,34 +590,33 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.12.0.tgz#50166eca7b9b5aa15f51a72b3d9d31e2d8530e6f" - integrity sha512-csgGSAG3s2y9eOl/taahojXY91AXpNgqLs9HJ5c/Qmrs+6UHgXbwJ4vo475NfZmt1Y9simircb1ygqupauNUyA== +"@size-limit/file@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.1.tgz#8cf5a550a88fe5972db31e65cfd0b040485fd141" + integrity sha512-BgbGFdFwijuR6tZRlmUoN3UzOIN+dt+28hzsYKjTl1LOn4zUJjTWgTCye11Qygj5L6+MkDZOA1ppEm4ZfjPgmQ== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-4.12.0.tgz#0f7eb6ca7b7e6acb87b17bf6f7d9000946423cfc" - integrity sha512-jqUT2PiPN4Bf9aeUcTHt78+mELwo1x3K+w4grfNkzV/46j1rK3eXarls4qc0/FHolE76cLgNTLNjrX/Zb9c65w== +"@size-limit/preset-small-lib@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.1.tgz#1a53bfe62fd3ff4f4793146cc110a00086173588" + integrity sha512-pscQMfUIiTQQ1VzsjNt+O70tr6NPVSK5UThdzWpAxikUF04ABQandQvhAFrOymGjx4CKcLva6ZGPibZ6uKL9RQ== dependencies: - "@size-limit/file" "4.12.0" - "@size-limit/webpack" "4.12.0" + "@size-limit/file" "5.0.1" + "@size-limit/webpack" "5.0.1" -"@size-limit/webpack@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.12.0.tgz#65076310bbe4f043fad0a3af2bea0423573ff7ae" - integrity sha512-CtqSqxffexYmuAKeKAT2xcDmLwGChHXeq8Y9gjIe9vxfzUx1HU7Nmc0XyvsLGZG1qZO4TFuANlfQeavGY0jB6A== +"@size-limit/webpack@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.1.tgz#029495f5227efec22ffe3c36e3b7f23d2d2a0c22" + integrity sha512-dG/H0GRc4P5Dc3KRjaQBq7EfGiOqGDw/eTBdkzvd2VnELl7DFcgoC1hULu9Y0XL50Ha+dGQ1AtNKWsZ3dacH/Q== dependencies: css-loader "^5.2.6" escape-string-regexp "^4.0.0" file-loader "^6.2.0" mkdirp "^1.0.4" nanoid "^3.1.23" - optimize-css-assets-webpack-plugin "^6.0.0" + optimize-css-assets-webpack-plugin "^6.0.1" pnp-webpack-plugin "^1.6.4" - rimraf "^3.0.2" style-loader "^2.0.0" webpack "^4.44.1" webpack-bundle-analyzer "^4.4.2" @@ -619,9 +632,9 @@ integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -630,31 +643,31 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== dependencies: "@babel/types" "^7.3.0" -"@types/fs-extra@^9.0.11": - version "9.0.11" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" - integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== +"@types/fs-extra@^9.0.12": + version "9.0.12" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" + integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== dependencies: "@types/node" "*" @@ -684,33 +697,28 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^26.0.23": - version "26.0.23" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.23.tgz#a1b7eab3c503b80451d019efb588ec63522ee4e7" - integrity sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA== +"@types/jest@^26.0.24": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== dependencies: jest-diff "^26.0.0" pretty-format "^26.0.0" -"@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" + integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/node@*", "@types/node@^15.12.2": - version "15.12.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" - integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== +"@types/node@*", "@types/node@^16.4.0": + version "16.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.0.tgz#2c219eaa3b8d1e4d04f4dd6e40bc68c7467d5272" + integrity sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg== "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -718,102 +726,106 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb" - integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== "@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/unist@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== dependencies: "@types/yargs-parser" "*" "@types/yargs@^16.0.0": - version "16.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz#4b6d35bb8e680510a7dc2308518a80ee1ef27e01" - integrity sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ== + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.27.0.tgz#0b7fc974e8bc9b2b5eb98ed51427b0be529b4ad0" - integrity sha512-DsLqxeUfLVNp3AO7PC3JyaddmEHTtI9qTSAs+RB6ja27QvIM0TA8Cizn1qcS6vOu+WDLFJzkwkgweiyFhssDdQ== +"@typescript-eslint/eslint-plugin@^4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz#e73c8cabbf3f08dee0e1bda65ed4e622ae8f8921" + integrity sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw== dependencies: - "@typescript-eslint/experimental-utils" "4.27.0" - "@typescript-eslint/scope-manager" "4.27.0" + "@typescript-eslint/experimental-utils" "4.28.4" + "@typescript-eslint/scope-manager" "4.28.4" debug "^4.3.1" functional-red-black-tree "^1.0.1" - lodash "^4.17.21" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.27.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.27.0.tgz#78192a616472d199f084eab8f10f962c0757cd1c" - integrity sha512-n5NlbnmzT2MXlyT+Y0Jf0gsmAQzCnQSWXKy4RGSXVStjDvS5we9IWbh7qRVKdGcxT0WYlgcCYUK/HRg7xFhvjQ== +"@typescript-eslint/experimental-utils@4.28.4", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz#9c70c35ebed087a5c70fb0ecd90979547b7fec96" + integrity sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.27.0" - "@typescript-eslint/types" "4.27.0" - "@typescript-eslint/typescript-estree" "4.27.0" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.27.0.tgz#85447e573364bce4c46c7f64abaa4985aadf5a94" - integrity sha512-XpbxL+M+gClmJcJ5kHnUpBGmlGdgNvy6cehgR6ufyxkEJMGP25tZKCaKyC0W/JVpuhU3VU1RBn7SYUPKSMqQvQ== +"@typescript-eslint/parser@^4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.4.tgz#bc462dc2779afeefdcf49082516afdc3e7b96fab" + integrity sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA== dependencies: - "@typescript-eslint/scope-manager" "4.27.0" - "@typescript-eslint/types" "4.27.0" - "@typescript-eslint/typescript-estree" "4.27.0" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.27.0.tgz#b0b1de2b35aaf7f532e89c8e81d0fa298cae327d" - integrity sha512-DY73jK6SEH6UDdzc6maF19AHQJBFVRf6fgAXHPXCGEmpqD4vYgPEzqpFz1lf/daSbOcMpPPj9tyXXDPW2XReAw== +"@typescript-eslint/scope-manager@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz#bdbce9b6a644e34f767bd68bc17bb14353b9fe7f" + integrity sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w== dependencies: - "@typescript-eslint/types" "4.27.0" - "@typescript-eslint/visitor-keys" "4.27.0" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" -"@typescript-eslint/types@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.27.0.tgz#712b408519ed699baff69086bc59cd2fc13df8d8" - integrity sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA== +"@typescript-eslint/types@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.4.tgz#41acbd79b5816b7c0dd7530a43d97d020d3aeb42" + integrity sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww== -"@typescript-eslint/typescript-estree@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.27.0.tgz#189a7b9f1d0717d5cccdcc17247692dedf7a09da" - integrity sha512-KH03GUsUj41sRLLEy2JHstnezgpS5VNhrJouRdmh6yNdQ+yl8w5LrSwBkExM+jWwCJa7Ct2c8yl8NdtNRyQO6g== +"@typescript-eslint/typescript-estree@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz#252e6863278dc0727244be9e371eb35241c46d00" + integrity sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ== dependencies: - "@typescript-eslint/types" "4.27.0" - "@typescript-eslint/visitor-keys" "4.27.0" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.27.0": - version "4.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.27.0.tgz#f56138b993ec822793e7ebcfac6ffdce0a60cb81" - integrity sha512-es0GRYNZp0ieckZ938cEANfEhsfHrzuLrePukLKtY3/KPXcq1Xd555Mno9/GOgXhKzn0QfkDLVgqWO3dGY80bg== +"@typescript-eslint/visitor-keys@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz#92dacfefccd6751cbb0a964f06683bfd72d0c4d3" + integrity sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg== dependencies: - "@typescript-eslint/types" "4.27.0" + "@typescript-eslint/types" "4.28.4" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -985,9 +997,9 @@ acorn-globals@^6.0.0: acorn-walk "^7.1.1" acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^7.1.1: version "7.2.0" @@ -995,9 +1007,9 @@ acorn-walk@^7.1.1: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" - integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== + version "8.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" + integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== acorn@^6.4.1: version "6.4.2" @@ -1010,9 +1022,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4, acorn@^8.2.4: - version "8.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60" - integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w== + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== agent-base@6: version "6.0.2" @@ -1050,9 +1062,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.6.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" - integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1231,16 +1243,16 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -babel-jest@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.2.tgz#7dc18adb01322acce62c2af76ea2c7cd186ade37" - integrity sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q== +babel-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" + integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== dependencies: - "@jest/transform" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.0.1" + babel-preset-jest "^27.0.6" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -1256,10 +1268,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz#a6d10e484c93abff0f4e95f437dad26e5736ea11" - integrity sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ== +babel-plugin-jest-hoist@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" + integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -1284,12 +1296,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz#7a50c75d16647c23a2cf5158d5bb9eb206b10e20" - integrity sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA== +babel-preset-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" + integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== dependencies: - babel-plugin-jest-hoist "^27.0.1" + babel-plugin-jest-hoist "^27.0.6" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1297,7 +1309,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -1337,15 +1349,6 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -1512,14 +1515,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - builtin-modules@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" @@ -1605,9 +1600,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219: - version "1.0.30001237" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz#4b7783661515b8e7151fc6376cfd97f0e427b9e5" - integrity sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw== + version "1.0.30001246" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz#fe17d9919f87124d6bb416ef7b325356d69dc76c" + integrity sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1631,17 +1626,16 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -check-dts@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.4.4.tgz#c75962cdad0ae5a521763527e0b51913f3f502d0" - integrity sha512-ZhpZ3k9uPqCNinDtnwRBQaYV8YeHsho4A6YV9P5u20KIxLMftRjAyWwKNGquP5+HfsEJpzYXQ930MfCnvBwlkg== +check-dts@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.5.4.tgz#56825c8ebd0939a86e033f636b0e6e5bab6d2694" + integrity sha512-PVGX9gw5JG1R/31kElzEF8E67lfC69ee7vW5DvEUItWnyE7lLDa5OrEm4auodeoGRlbaSkT+wVvn589Kgt9SUQ== dependencies: - ci-job-number "^1.2.2" - colorette "^1.2.1" - globby "^11.0.2" - ora "^5.3.0" - typescript "^4.1.3" - vfile-location "^3.2.0" + colorette "^1.2.2" + globby "^11.0.4" + mico-spinner "^1.1.1" + typescript "^4.3.5" + vfile-location "^4.0.1" chokidar@^2.1.8: version "2.1.8" @@ -1662,7 +1656,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1, chokidar@^3.5.1: +chokidar@^3.4.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -1687,7 +1681,7 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^3.1.1: +ci-info@^3.1.1, ci-info@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== @@ -1706,9 +1700,9 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: safe-buffer "^5.0.1" cjs-module-lexer@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz#2fd46d9906a126965aa541345c499aaa18e8cd73" - integrity sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw== + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== class-utils@^0.3.5: version "0.3.6" @@ -1748,11 +1742,6 @@ cli-cursor@^3.0.0, cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" - integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== - cli-truncate@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" @@ -1770,11 +1759,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1818,9 +1802,9 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colord@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" - integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.3.0.tgz#72f27e99bac4d861e47f69b5ed1f54c9d8d58775" + integrity sha512-0NaS8lq6xZ9Zb+cWRwQf6ql1Z/7HMIAMzPrM2pgfAqskGAhUksBcaau6W8sL+6OK0xIujcSo1TJfdctG7K85Qg== colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" @@ -1897,9 +1881,9 @@ constants-browserify@^1.0.0: integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" @@ -2022,9 +2006,9 @@ css-declaration-sorter@^6.0.3: timsort "^0.3.0" css-loader@^5.2.6: - version "5.2.6" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" - integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== dependencies: icss-utils "^5.1.0" loader-utils "^2.0.0" @@ -2037,15 +2021,15 @@ css-loader@^5.2.6: schema-utils "^3.0.0" semver "^7.3.5" -css-select@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" - integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== dependencies: boolbase "^1.0.0" - css-what "^4.0.0" - domhandler "^4.0.0" - domutils "^2.4.3" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" nth-check "^2.0.0" css-tree@^1.1.2: @@ -2056,10 +2040,10 @@ css-tree@^1.1.2: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" - integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== cssesc@^3.0.0: version "3.0.0" @@ -2107,13 +2091,14 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.2: - version "5.0.6" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.6.tgz#2a91ad34c6521ae31eab3da9c90108ea3093535d" - integrity sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw== + version "5.0.7" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.7.tgz#e81894bdf31aa01a0ca3d1d0eee47be18f7f3012" + integrity sha512-7C0tbb298hef3rq+TtBbMuezBQ9VrFtrQEsPNuBKNVgWny/67vdRsnq8EoNu7TRjAHURgYvWlRIpCUmcMZkRzw== dependencies: - cosmiconfig "^7.0.0" cssnano-preset-default "^5.1.3" is-resolvable "^1.1.0" + lilconfig "^2.0.3" + yaml "^1.10.2" csso@^4.2.0: version "4.2.0" @@ -2154,9 +2139,9 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" @@ -2175,9 +2160,9 @@ debug@^3.2.7: ms "^2.1.1" decimal.js@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" - integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== decode-uri-component@^0.2.0: version "0.2.0" @@ -2199,13 +2184,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2258,10 +2236,10 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.1.tgz#9c9801d52ed5f576ff0a20e3022a13ee6e297e7c" - integrity sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg== +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== diffie-hellman@^5.0.0: version "5.0.3" @@ -2319,14 +2297,14 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domhandler@^4.0.0, domhandler@^4.2.0: +domhandler@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== dependencies: domelementtype "^2.2.0" -domutils@^2.4.3: +domutils@^2.6.0: version "2.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== @@ -2351,9 +2329,9 @@ duplexify@^3.4.2, duplexify@^3.6.0: stream-shift "^1.0.0" electron-to-chromium@^1.3.723: - version "1.3.752" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" - integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A== + version "1.3.782" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz#522740fe6b4b5255ca754c68d9c406a17b0998e2" + integrity sha512-6AI2se1NqWA1SBf/tlD6tQD/6ZOt+yAhqmrTlh4XZw4/g0Mt3p6JhTQPZxRPxPZiOg0o7ss1EBP/CpYejfnoIA== elliptic@^6.5.3: version "6.5.4" @@ -2548,10 +2526,10 @@ eslint-plugin-import@^2.23.4: resolve "^1.20.0" tsconfig-paths "^3.9.0" -eslint-plugin-jest@^24.3.6: - version "24.3.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz#5f0ca019183c3188c5ad3af8e80b41de6c8e9173" - integrity sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg== +eslint-plugin-jest@^24.3.7: + version "24.3.7" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.3.7.tgz#a4deaa9e88182b92533a9c25cc4f3c369d7f33eb" + integrity sha512-pXED2NA4q2M/5mxlN6GyuUXAFJndT0uosOkQCHaUED9pqgBPd89ZzpcZEU6c5HtZNahC00M36FkwLdDHMDqaHw== dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" @@ -2586,16 +2564,15 @@ eslint-plugin-security@^1.4.0: dependencies: safe-regex "^1.1.0" -eslint-plugin-unicorn@^33.0.1: - version "33.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-33.0.1.tgz#15c7d210aad77466acb1e899b06b070099e029ce" - integrity sha512-VxX/L/9DUEyB3D0v00185LrgsB5/fBwkgA4IC7ehHRu5hFSgA6VecmdpFybhsr4GQ/Y1iyXMHf6q+JKvcR2MwA== +eslint-plugin-unicorn@^34.0.1: + version "34.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-34.0.1.tgz#e31cfaf487591599ff1f1b1e74776cce59dcc3ae" + integrity sha512-GUBtRYRhPVOW/GDu6QtOjrneSZxY/MulOT8puJU+47VKCzNmMgS/iHO2gZqoQ7KPMrpNYlebUlvCWy3IR1USVQ== dependencies: - ci-info "^3.1.1" + ci-info "^3.2.0" clean-regexp "^1.0.0" eslint-template-visitor "^2.3.2" eslint-utils "^3.0.0" - import-modules "^2.1.0" is-builtin-module "^3.1.0" lodash "^4.17.21" pluralize "^8.0.0" @@ -2656,13 +2633,14 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.28.0: - version "7.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" - integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== +eslint@^7.31.0: + version "7.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca" + integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.2" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2790,17 +2768,17 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.2.tgz#e66ca3a4c9592f1c019fa1d46459a9d2084f3422" - integrity sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w== +expect@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" + integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" ansi-styles "^5.0.0" - jest-get-type "^27.0.1" - jest-matcher-utils "^27.0.2" - jest-message-util "^27.0.2" - jest-regex-util "^27.0.1" + jest-get-type "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" extend-shallow@^2.0.1: version "2.0.1" @@ -2842,16 +2820,15 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.1.1: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -2864,9 +2841,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.11.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" + integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== dependencies: reusify "^1.0.4" @@ -2959,9 +2936,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + version "3.2.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.1.tgz#bbef080d95fca6709362c73044a1634f7c6e7d05" + integrity sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg== flush-write-stream@^1.0.0: version "1.1.1" @@ -3104,7 +3081,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -3129,13 +3106,13 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" - integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== + version "13.10.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" + integrity sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g== dependencies: type-fest "^0.20.2" -globby@^11.0.2, globby@^11.0.3: +globby@^11.0.3, globby@^11.0.4: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -3314,7 +3291,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -3350,11 +3327,6 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -import-modules@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-2.1.0.tgz#abe7df297cb6c1f19b57246eb8b8bd9664b6d8c2" - integrity sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A== - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3448,6 +3420,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-builtin-module@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" @@ -3480,9 +3457,9 @@ is-color-stop@^1.1.0: rgba-regex "^1.0.0" is-core-module@^2.2.0, is-core-module@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== dependencies: has "^1.0.3" @@ -3564,11 +3541,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" @@ -3731,84 +3703,84 @@ isutf8@^2.1.0: resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== -jest-changed-files@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.2.tgz#997253042b4a032950fc5f56abf3c5d1f8560801" - integrity sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw== +jest-changed-files@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" + integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.4.tgz#3b261514ee3b3da33def736a6352c98ff56bb6e6" - integrity sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw== +jest-circus@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" + integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== dependencies: - "@jest/environment" "^27.0.3" - "@jest/test-result" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.0.2" + expect "^27.0.6" is-generator-fn "^2.0.0" - jest-each "^27.0.2" - jest-matcher-utils "^27.0.2" - jest-message-util "^27.0.2" - jest-runtime "^27.0.4" - jest-snapshot "^27.0.4" - jest-util "^27.0.2" - pretty-format "^27.0.2" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.4.tgz#491b12c754c0d7c6873b13a66f26b3a80a852910" - integrity sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ== +jest-cli@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" + integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== dependencies: - "@jest/core" "^27.0.4" - "@jest/test-result" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/core" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.0.4" - jest-util "^27.0.2" - jest-validate "^27.0.2" + jest-config "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" prompts "^2.0.1" yargs "^16.0.3" -jest-config@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.4.tgz#c4f41378acf40ca77860fb4e213b12109d87b8cf" - integrity sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg== +jest-config@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" + integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.0.4" - "@jest/types" "^27.0.2" - babel-jest "^27.0.2" + "@jest/test-sequencer" "^27.0.6" + "@jest/types" "^27.0.6" + babel-jest "^27.0.6" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" is-ci "^3.0.0" - jest-circus "^27.0.4" - jest-environment-jsdom "^27.0.3" - jest-environment-node "^27.0.3" - jest-get-type "^27.0.1" - jest-jasmine2 "^27.0.4" - jest-regex-util "^27.0.1" - jest-resolve "^27.0.4" - jest-runner "^27.0.4" - jest-util "^27.0.2" - jest-validate "^27.0.2" + jest-circus "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-get-type "^27.0.6" + jest-jasmine2 "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runner "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" micromatch "^4.0.4" - pretty-format "^27.0.2" + pretty-format "^27.0.6" jest-diff@^26.0.0: version "26.6.2" @@ -3820,152 +3792,152 @@ jest-diff@^26.0.0: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.2.tgz#f315b87cee5dc134cf42c2708ab27375cc3f5a7e" - integrity sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw== +jest-diff@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" + integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== dependencies: chalk "^4.0.0" - diff-sequences "^27.0.1" - jest-get-type "^27.0.1" - pretty-format "^27.0.2" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" -jest-docblock@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.1.tgz#bd9752819b49fa4fab1a50b73eb58c653b962e8b" - integrity sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA== +jest-docblock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" + integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== dependencies: detect-newline "^3.0.0" -jest-each@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.2.tgz#865ddb4367476ced752167926b656fa0dcecd8c7" - integrity sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ== +jest-each@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" + integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" chalk "^4.0.0" - jest-get-type "^27.0.1" - jest-util "^27.0.2" - pretty-format "^27.0.2" - -jest-environment-jsdom@^27.0.3: - version "27.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz#ed73e913ddc03864eb9f934b5cbabf1b63504e2e" - integrity sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA== - dependencies: - "@jest/environment" "^27.0.3" - "@jest/fake-timers" "^27.0.3" - "@jest/types" "^27.0.2" + jest-get-type "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + +jest-environment-jsdom@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" + integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" - jest-mock "^27.0.3" - jest-util "^27.0.2" + jest-mock "^27.0.6" + jest-util "^27.0.6" jsdom "^16.6.0" -jest-environment-node@^27.0.3: - version "27.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.3.tgz#b4acb3679d2552a4215732cab8b0ca7ec4398ee0" - integrity sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg== +jest-environment-node@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" + integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== dependencies: - "@jest/environment" "^27.0.3" - "@jest/fake-timers" "^27.0.3" - "@jest/types" "^27.0.2" + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" - jest-mock "^27.0.3" - jest-util "^27.0.2" + jest-mock "^27.0.6" + jest-util "^27.0.6" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.1.tgz#34951e2b08c8801eb28559d7eb732b04bbcf7815" - integrity sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg== +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== -jest-haste-map@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.2.tgz#3f1819400c671237e48b4d4b76a80a0dbed7577f" - integrity sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA== +jest-haste-map@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" + integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-regex-util "^27.0.1" - jest-serializer "^27.0.1" - jest-util "^27.0.2" - jest-worker "^27.0.2" + jest-regex-util "^27.0.6" + jest-serializer "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz#c669519ccf4904a485338555e1e66cad36bb0670" - integrity sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA== +jest-jasmine2@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" + integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.0.3" - "@jest/source-map" "^27.0.1" - "@jest/test-result" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/environment" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.0.2" + expect "^27.0.6" is-generator-fn "^2.0.0" - jest-each "^27.0.2" - jest-matcher-utils "^27.0.2" - jest-message-util "^27.0.2" - jest-runtime "^27.0.4" - jest-snapshot "^27.0.4" - jest-util "^27.0.2" - pretty-format "^27.0.2" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" throat "^6.0.1" -jest-leak-detector@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz#ce19aa9dbcf7a72a9d58907a970427506f624e69" - integrity sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q== +jest-leak-detector@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" + integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== dependencies: - jest-get-type "^27.0.1" - pretty-format "^27.0.2" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" -jest-matcher-utils@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz#f14c060605a95a466cdc759acc546c6f4cbfc4f0" - integrity sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA== +jest-matcher-utils@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" + integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== dependencies: chalk "^4.0.0" - jest-diff "^27.0.2" - jest-get-type "^27.0.1" - pretty-format "^27.0.2" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" -jest-message-util@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.2.tgz#181c9b67dff504d8f4ad15cba10d8b80f272048c" - integrity sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw== +jest-message-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" + integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.4" - pretty-format "^27.0.2" + pretty-format "^27.0.6" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.0.3: - version "27.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.3.tgz#5591844f9192b3335c0dca38e8e45ed297d4d23d" - integrity sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q== +jest-mock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" + integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -3973,76 +3945,76 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.1.tgz#69d4b1bf5b690faa3490113c47486ed85dd45b68" - integrity sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ== +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz#a07a242d70d668afd3fcf7f4270755eebb1fe579" - integrity sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A== +jest-resolve-dependencies@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" + integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== dependencies: - "@jest/types" "^27.0.2" - jest-regex-util "^27.0.1" - jest-snapshot "^27.0.4" + "@jest/types" "^27.0.6" + jest-regex-util "^27.0.6" + jest-snapshot "^27.0.6" -jest-resolve@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.4.tgz#8a27bc3f2f00c8ea28f3bc99bbf6f468300a703d" - integrity sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ== +jest-resolve@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" + integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" chalk "^4.0.0" escalade "^3.1.1" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^27.0.2" - jest-validate "^27.0.2" + jest-util "^27.0.6" + jest-validate "^27.0.6" resolve "^1.20.0" slash "^3.0.0" -jest-runner@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.4.tgz#2787170a9509b792ae129794f6944d27d5d12a4f" - integrity sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg== - dependencies: - "@jest/console" "^27.0.2" - "@jest/environment" "^27.0.3" - "@jest/test-result" "^27.0.2" - "@jest/transform" "^27.0.2" - "@jest/types" "^27.0.2" +jest-runner@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" + integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-docblock "^27.0.1" - jest-environment-jsdom "^27.0.3" - jest-environment-node "^27.0.3" - jest-haste-map "^27.0.2" - jest-leak-detector "^27.0.2" - jest-message-util "^27.0.2" - jest-resolve "^27.0.4" - jest-runtime "^27.0.4" - jest-util "^27.0.2" - jest-worker "^27.0.2" + jest-docblock "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-haste-map "^27.0.6" + jest-leak-detector "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runtime "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.4.tgz#2e4a6aa77cac32ac612dfe12768387a8aa15c2f0" - integrity sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A== - dependencies: - "@jest/console" "^27.0.2" - "@jest/environment" "^27.0.3" - "@jest/fake-timers" "^27.0.3" - "@jest/globals" "^27.0.3" - "@jest/source-map" "^27.0.1" - "@jest/test-result" "^27.0.2" - "@jest/transform" "^27.0.2" - "@jest/types" "^27.0.2" +jest-runtime@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" + integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/globals" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" "@types/yargs" "^16.0.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" @@ -4050,30 +4022,30 @@ jest-runtime@^27.0.4: exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.0.2" - jest-message-util "^27.0.2" - jest-mock "^27.0.3" - jest-regex-util "^27.0.1" - jest-resolve "^27.0.4" - jest-snapshot "^27.0.4" - jest-util "^27.0.2" - jest-validate "^27.0.2" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" slash "^3.0.0" strip-bom "^4.0.0" yargs "^16.0.3" -jest-serializer@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.1.tgz#2464d04dcc33fb71dc80b7c82e3c5e8a08cb1020" - integrity sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ== +jest-serializer@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" + integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.4.tgz#2b96e22ca90382b3e93bd0aae2ce4c78bf51fb5b" - integrity sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA== +jest-snapshot@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" + integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -4081,79 +4053,79 @@ jest-snapshot@^27.0.4: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.0.2" + expect "^27.0.6" graceful-fs "^4.2.4" - jest-diff "^27.0.2" - jest-get-type "^27.0.1" - jest-haste-map "^27.0.2" - jest-matcher-utils "^27.0.2" - jest-message-util "^27.0.2" - jest-resolve "^27.0.4" - jest-util "^27.0.2" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + jest-haste-map "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" natural-compare "^1.4.0" - pretty-format "^27.0.2" + pretty-format "^27.0.6" semver "^7.3.2" -jest-util@^27.0.0, jest-util@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.2.tgz#fc2c7ace3c75ae561cf1e5fdb643bf685a5be7c7" - integrity sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA== +jest-util@^27.0.0, jest-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" + integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^3.0.0" picomatch "^2.2.3" -jest-validate@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.2.tgz#7fe2c100089449cd5cbb47a5b0b6cb7cda5beee5" - integrity sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg== +jest-validate@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" + integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^27.0.1" + jest-get-type "^27.0.6" leven "^3.1.0" - pretty-format "^27.0.2" + pretty-format "^27.0.6" -jest-watcher@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.2.tgz#dab5f9443e2d7f52597186480731a8c6335c5deb" - integrity sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA== +jest-watcher@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" + integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== dependencies: - "@jest/test-result" "^27.0.2" - "@jest/types" "^27.0.2" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.0.2" + jest-util "^27.0.6" string-length "^4.0.1" -jest-worker@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" - integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== +jest-worker@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.4.tgz#91d4d564b36bcf93b98dac1ab19f07089e670f53" - integrity sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA== +jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" + integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== dependencies: - "@jest/core" "^27.0.4" + "@jest/core" "^27.0.6" import-local "^3.0.2" - jest-cli "^27.0.4" + jest-cli "^27.0.6" js-tokens@^4.0.0: version "4.0.0" @@ -4231,7 +4203,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.x, json5@^2.1.2: +json5@2.x, json5@^2.1.2, json5@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -4329,10 +4301,10 @@ linkify-it@^2.0.0: dependencies: uc.micro "^1.0.1" -lint-staged@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.0.0.tgz#24d0a95aa316ba28e257f5c4613369a75a10c712" - integrity sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw== +lint-staged@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.0.1.tgz#1b8ae8ed5a52ed87252db95fe008c2618c85f55a" + integrity sha512-RkTA1ulE6jAGFskxpGAwxfVRXjHp7D9gFg/+KMARUWMPiVFP0t28Em2u0gL8sA0w3/ck3TC57F2v2RNeQ5XPnw== dependencies: chalk "^4.1.1" cli-truncate "^2.1.0" @@ -4576,6 +4548,13 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +mico-spinner@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.1.1.tgz#b904cf4dc1ae247d9bff24b969d8bcbb08371f5d" + integrity sha512-b9F3Qx9l6fO141+FbR9hqRUJ15p4bGVsqgXiO/noxxXZmN+hYZVCuWd4LEubadrVkw0eIYAJDXWo0ZYGoLrmfg== + dependencies: + colorette "^1.2.2" + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -4595,7 +4574,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -4837,9 +4816,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.0.1.tgz#a4f27f58cf8c7b287b440b8a8201f42d0b00d256" - integrity sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ== + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-run-path@^4.0.1: version "4.0.1" @@ -4875,9 +4854,9 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -4936,10 +4915,10 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -optimize-css-assets-webpack-plugin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.0.tgz#00acd99d420715ad96ed3d8ad65a8a4df1be233b" - integrity sha512-XKVxJuCBSslP1Eyuf1uVtZT3Pkp6jEIkmg7BMcNU/pq6XAnDXTINkYFWmiQWt8+j//FO4dIDd4v+gn0m5VWJIw== +optimize-css-assets-webpack-plugin@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.1.tgz#7719bceabba1f3891ec3ae04efb81a1cc99cd793" + integrity sha512-BshV2UZPfggZLdUfN3zFBbG4sl/DynUI+YCB6fRRDWaqO2OiWN8GPcp4Y0/fEV6B3k9Hzyk3czve3V/8B/SzKQ== dependencies: cssnano "^5.0.2" last-call-webpack-plugin "^3.0.0" @@ -4969,21 +4948,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^5.3.0, ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -5497,9 +5461,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.3.4" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.4.tgz#41ece1c43f2f7c74dc7d90144047ce052757b822" - integrity sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA== + version "8.3.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" + integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -5515,10 +5479,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" - integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== +prettier@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" @@ -5530,12 +5494,12 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.2.tgz#9283ff8c4f581b186b2d4da461617143dca478a4" - integrity sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig== +pretty-format@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" + integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== dependencies: - "@jest/types" "^27.0.2" + "@jest/types" "^27.0.6" ansi-regex "^5.0.0" ansi-styles "^5.0.0" react-is "^17.0.1" @@ -5714,7 +5678,7 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -5944,11 +5908,11 @@ schema-utils@^1.0.0: ajv-keywords "^3.1.0" schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -6021,10 +5985,10 @@ signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-git-hooks@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.4.1.tgz#bb3495610701394d00ce4a84892a9ca8aad73710" - integrity sha512-LFdiF7O0Hg96vS1mO8gtBiDXLkCrLhqpU7O3gMZVO90Uf+/VFY4C5VJITyXPbHNX6OnlFmiFR0YnV4XbfguZHA== +simple-git-hooks@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.5.1.tgz#78ed9cfa552843bc45cd36ad5b7424567119c2f4" + integrity sha512-iI/MEEVObv45slsxz+BT+5NCS2UDgVIqfQKmNjL4/XnEfacpdYAHd71Imc5Nw/FY100A+i1PIXdIdkLHYcC2Bg== sirv@^1.0.7: version "1.0.12" @@ -6040,19 +6004,18 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^4.12.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.12.0.tgz#ecc9c0448c049a40b10e76b5e1b4a20f99a54468" - integrity sha512-LwlUDPxFJbJDIJsBE5bKo8kFMuxmuewBMDjgfSoQwnO27V8DSK+j6881nsrX3GoM3bJMFIeEq56thqBEdYC8bw== +size-limit@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.1.tgz#9aedea30bfb7cea17e78d86bc19c61d3df53b91e" + integrity sha512-FZwVay5fCdatHoZU1lGyvVK3KrI4puMKbU1UoLLhEaMjQBxPuovuF+eJIDzmJN+xZRk3thuG7yS77DhuWF4fEQ== dependencies: bytes-iec "^3.1.1" - chokidar "^3.5.1" + chokidar "^3.5.2" ci-job-number "^1.2.2" colorette "^1.2.2" - globby "^11.0.3" + globby "^11.0.4" lilconfig "^2.0.3" - ora "^5.4.1" - read-pkg-up "^7.0.1" + mico-spinner "^1.1.1" slash@^3.0.0: version "3.0.0" @@ -6403,14 +6366,14 @@ supports-hyperlinks@^2.0.0: supports-color "^7.0.0" svgo@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" - integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.1.tgz#603a69ce50311c0e36791528f549644ec1b3f4bc" + integrity sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw== dependencies: "@trysound/sax" "0.1.1" chalk "^4.1.0" commander "^7.1.0" - css-select "^3.1.2" + css-select "^4.1.3" css-tree "^1.1.2" csso "^4.2.0" stable "^0.1.8" @@ -6581,10 +6544,10 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -ts-jest@^27.0.3: - version "27.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.3.tgz#808492f022296cde19390bb6ad627c8126bf93f8" - integrity sha512-U5rdMjnYam9Ucw+h0QvtNDbc5+88nxt7tbIvqaZUhFrfG4+SkWhMXjejCLVGcpILTPuV+H3W/GZDZrnZFpPeXw== +ts-jest@^27.0.4: + version "27.0.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.4.tgz#df49683535831560ccb58f94c023d831b1b80df0" + integrity sha512-c4E1ECy9Xz2WGfTMyHbSaArlIva7Wi2p43QOMmCqjSSjHP06KXv+aT+eSY+yZMuqsMi3k7pyGsGj2q5oSl5WfQ== dependencies: bs-logger "0.x" buffer-from "1.x" @@ -6603,12 +6566,11 @@ ts-pnp@^1.1.6: integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + version "3.10.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7" + integrity sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q== dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^2.2.0" minimist "^1.2.0" strip-bom "^3.0.0" @@ -6680,10 +6642,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.1.3, typescript@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.3.tgz#5401db69bd3203daf1851a1a74d199cb3112c11a" - integrity sha512-rUvLW0WtF7PF2b9yenwWUi9Da9euvDRhmH7BLyBG4DCFfOJ850LGNknmRpp8Z8kXNUPObdZQEfKOiHtXuQHHKA== +typescript@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -6729,6 +6691,13 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unist-util-stringify-position@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" + integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== + dependencies: + "@types/unist" "^2.0.0" + universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6801,10 +6770,10 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== +v8-to-istanbul@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" + integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -6823,10 +6792,31 @@ vendors@^1.0.3: resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== -vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== +vfile-location@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95" + integrity sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + +vfile-message@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.1.tgz#b9bcf87cb5525e61777e0c6df07e816a577588a3" + integrity sha512-gYmSHcZZUEtYpTmaWaFJwsuUD70/rTY4v09COp8TGtOkix6gGxb/a8iTQByIY9ciTk9GwAwIXd/J9OPfM4Bvaw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.0.2.tgz#57773d1d91478b027632c23afab58ec3590344f0" + integrity sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" vm-browserify@^1.0.1: version "1.1.2" @@ -6872,13 +6862,6 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -6954,9 +6937,9 @@ whatwg-mimetype@^2.3.0: integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c" - integrity sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw== + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== dependencies: lodash "^4.7.0" tr46 "^2.1.0" @@ -7026,9 +7009,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.3.1, ws@^7.4.5: - version "7.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" - integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== xml-name-validator@^3.0.0: version "3.0.0" @@ -7078,7 +7061,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.7.2: +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -7089,9 +7072,9 @@ yandex-speller@^4.1.0: integrity sha512-z13o3GCMxm5g/MU28JCIdu9SXsAoShroqAheFciS3K0wa2JRkA1y5qASZuavJuaCl0KG5RhTjo8gdkbyp6QC+w== yargs-parser@20.x, yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs@^16.0.3: version "16.2.0" From 91c6d661e8c789e154f966b4a468716501ff6d42 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 21 Jul 2021 18:52:03 +0300 Subject: [PATCH 2322/3047] Release 8.3.6 version --- CHANGELOG.md | 6 ++++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d45ee2308..1fb495fac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.6 +* Fixed column of `missed semicolon` error (by @Gusted). + +## 8.3.5 +* Fixed broken AST detection. + ## 8.3.4 * Fixed broken AST detection. diff --git a/lib/processor.js b/lib/processor.js index ea42b3c74..74bf89229 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.5' + this.version = '8.3.6' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index a73e74fcc..f26993c04 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.5", + "version": "8.3.6", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 47cc3e147bad78a21062515bb9573bf79c251aba Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 21 Jul 2021 18:52:49 +0300 Subject: [PATCH 2323/3047] Typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fb495fac..5c90fb4bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ This project adheres to [Semantic Versioning](https://semver.org/). ## 8.3.6 -* Fixed column of `missed semicolon` error (by @Gusted). +* Fixed column in `missed semicolon` error (by @Gusted). ## 8.3.5 * Fixed broken AST detection. From 71af76fc1e45160d98f8adbd367ae6847f347d2a Mon Sep 17 00:00:00 2001 From: Christian Oliff Date: Tue, 10 Aug 2021 18:04:56 +0900 Subject: [PATCH 2324/3047] Add bugs field to package.json It's useful for contributors who've cloned the repo to type `npm bugs` to launch GitHub Issues for this project. :-) REF: https://docs.npmjs.com/cli/v6/configuring-npm/package-json#bugs --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index f26993c04..703367642 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,9 @@ "license": "MIT", "homepage": "https://postcss.org/", "repository": "postcss/postcss", + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, "dependencies": { "colorette": "^1.2.2", "nanoid": "^3.1.23", From d4f38bb2009b6b4e694abe885c5ea2a57ca447db Mon Sep 17 00:00:00 2001 From: Paul Shryock Date: Thu, 19 Aug 2021 08:57:17 -0400 Subject: [PATCH 2325/3047] Remove unmaintained precss plugin from Readme A fresh install of postcss and precss throws this error: "Unknown error from PostCSS plugin. Your current PostCSS version is 8.3.6, but precss uses 7.0.36." Precss seems to be no longer maintained, and I suggest removing it from the Readme. Last commit was 3 years ago: https://github.com/csstools/precss/commits/master. --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b285d45f8..a7b114928 100644 --- a/README.md +++ b/README.md @@ -89,8 +89,6 @@ If you have any new ideas, [PostCSS plugin development] is really easy. ### Better CSS Readability -* [`precss`] contains plugins for Sass-like features, like variables, nesting, - and mixins. * [`postcss-sorting`] sorts the content of rules and at-rules. * [`postcss-utilities`] includes the most commonly used shortcuts and helpers. * [`short`] adds and extends numerous shorthand properties. @@ -146,7 +144,6 @@ If you have any new ideas, [PostCSS plugin development] is really easy. [`stylelint`]: https://github.com/stylelint/stylelint [`stylefmt`]: https://github.com/morishitter/stylefmt [`cssnano`]: https://cssnano.co/ -[`precss`]: https://github.com/jonathantneal/precss [`doiuse`]: https://github.com/anandthakker/doiuse [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`short`]: https://github.com/jonathantneal/postcss-short @@ -310,7 +307,6 @@ Then create `postcss.config.js`: ```js module.exports = { plugins: [ - require('precss'), require('autoprefixer') ] } @@ -330,7 +326,7 @@ gulp.task('css', () => { return gulp.src('src/**/*.css') .pipe( sourcemaps.init() ) - .pipe( postcss([ require('precss'), require('autoprefixer') ]) ) + .pipe( postcss([ require('autoprefixer') ]) ) .pipe( sourcemaps.write('.') ) .pipe( gulp.dest('build/') ) }) @@ -410,11 +406,10 @@ For other environments, you can use the JS API: ```js const autoprefixer = require('autoprefixer') const postcss = require('postcss') -const precss = require('precss') const fs = require('fs') fs.readFile('src/app.css', (err, css) => { - postcss([precss, autoprefixer]) + postcss([autoprefixer]) .process(css, { from: 'src/app.css', to: 'dest/app.css' }) .then(result => { fs.writeFile('dest/app.css', result.css, () => true) From 9f714d8160bbdc511e0163f35cc91656adcec3dc Mon Sep 17 00:00:00 2001 From: Paul Shryock Date: Thu, 19 Aug 2021 09:15:08 -0400 Subject: [PATCH 2326/3047] Add postcss-nested as a replacement for precss --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a7b114928..255b4d008 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ If you have any new ideas, [PostCSS plugin development] is really easy. ### Better CSS Readability +* [`postcss-nested`] unwraps nested rules the way Sass does. * [`postcss-sorting`] sorts the content of rules and at-rules. * [`postcss-utilities`] includes the most commonly used shortcuts and helpers. * [`short`] adds and extends numerous shorthand properties. @@ -144,6 +145,7 @@ If you have any new ideas, [PostCSS plugin development] is really easy. [`stylelint`]: https://github.com/stylelint/stylelint [`stylefmt`]: https://github.com/morishitter/stylefmt [`cssnano`]: https://cssnano.co/ +[`postcss-nested`]: https://github.com/postcss/postcss-nested [`doiuse`]: https://github.com/anandthakker/doiuse [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`short`]: https://github.com/jonathantneal/postcss-short @@ -240,8 +242,7 @@ Then create `postcss.config.js`: ```js module.exports = { plugins: [ - require('autoprefixer'), - require('postcss-nested') + require('autoprefixer') ] } ``` @@ -258,8 +259,7 @@ in project’s root: ```js module.exports = { plugins: [ - require('autoprefixer'), - require('postcss-nested') + require('autoprefixer') ] } ``` @@ -307,6 +307,7 @@ Then create `postcss.config.js`: ```js module.exports = { plugins: [ + require('postcss-nested'), require('autoprefixer') ] } @@ -406,10 +407,11 @@ For other environments, you can use the JS API: ```js const autoprefixer = require('autoprefixer') const postcss = require('postcss') +const postcssNested = require('postcss-nested') const fs = require('fs') fs.readFile('src/app.css', (err, css) => { - postcss([autoprefixer]) + postcss([postcssNested, autoprefixer]) .process(css, { from: 'src/app.css', to: 'dest/app.css' }) .then(result => { fs.writeFile('dest/app.css', result.css, () => true) From 3cef1eb40d497cd0ee736ede56c9ffa48a017435 Mon Sep 17 00:00:00 2001 From: Paul Shryock Date: Thu, 19 Aug 2021 09:18:33 -0400 Subject: [PATCH 2327/3047] Fix typos --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 255b4d008..91e75653f 100644 --- a/README.md +++ b/README.md @@ -242,7 +242,8 @@ Then create `postcss.config.js`: ```js module.exports = { plugins: [ - require('autoprefixer') + require('autoprefixer'), + require('postcss-nested') ] } ``` @@ -259,7 +260,8 @@ in project’s root: ```js module.exports = { plugins: [ - require('autoprefixer') + require('autoprefixer'), + require('postcss-nested') ] } ``` @@ -307,8 +309,8 @@ Then create `postcss.config.js`: ```js module.exports = { plugins: [ - require('postcss-nested'), - require('autoprefixer') + require('autoprefixer'), + require('postcss-nested') ] } ``` @@ -327,7 +329,7 @@ gulp.task('css', () => { return gulp.src('src/**/*.css') .pipe( sourcemaps.init() ) - .pipe( postcss([ require('autoprefixer') ]) ) + .pipe( postcss([ require('autoprefixer'), require('postcss-nested') ]) ) .pipe( sourcemaps.write('.') ) .pipe( gulp.dest('build/') ) }) @@ -411,7 +413,7 @@ const postcssNested = require('postcss-nested') const fs = require('fs') fs.readFile('src/app.css', (err, css) => { - postcss([postcssNested, autoprefixer]) + postcss([autoprefixer, postcssNested]) .process(css, { from: 'src/app.css', to: 'dest/app.css' }) .then(result => { fs.writeFile('dest/app.css', result.css, () => true) From 6b207b200f6d7e9e272773c8816d8ce1e97c32ab Mon Sep 17 00:00:00 2001 From: Lars Munkholm Date: Fri, 20 Aug 2021 11:34:41 +0200 Subject: [PATCH 2328/3047] Add postcss-prefix-hover to list of plugins --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 9fbb263a5..f20616665 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -452,6 +452,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-node-modules-replacer`] replaces path than includes `node_modules` to `~`. * [`postcss-plugin-namespace`] add a css selector to all rules, so that css file don't affect other element. +* [`postcss-prefix-hover`] add a prefixed selector to any selection containing `:hover` e.g. changing `.foo a:hover {}` to `.using-mouse .foo a:hover {}` * [`postcss-pseudo-content-insert`] adds `content: ''` to `:before` and `:after` if it is missing. * [`postcss-pseudo-element-cases`] converts `.style::BEFORE` into `.style::before` and vice versa. @@ -873,3 +874,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-icon-blender`]: https://github.com/icon-blender/postcss-icon-blender [`postcss-variable-compress`]: https://github.com/navanshu/postcss-variable-compress [`postcss-unit-processor`]: https://github.com/hex-ci/postcss-unit-processor +[`postcss-prefix-hover`]: https://github.com/larsmunkholm/postcss-prefix-hover From fc4e6e0bde48010e9640241720d9bd61600ccd0c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 20 Aug 2021 22:01:58 +0200 Subject: [PATCH 2329/3047] Typo --- docs/plugins.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index f20616665..7320e6e6e 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -274,7 +274,7 @@ See also [`precss`] plugins pack to add them by one line of code. * [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-easysprites`] combine images to sprites, based on their image.png`#hash` and aspect ratio (`@2x`). -* [`postcss-icon-blender`] create custom SVG icon sets from over 80,000 free and open-source icons +* [`postcss-icon-blender`] create custom SVG icon sets from over 80,000 free and open-source icons * [`postcss-image-set`] adds `background-image` with first image for `image-set()`. * [`postcss-image-inliner`] inlines local and remote images. @@ -423,7 +423,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-class-prefix`] adds a prefix/namespace to class selectors. * [`postcss-classes-to-mixins`] converts classes to Sass, Less and Stylus mixins * [`postcss-currency`] replaces name of currency with symbols. -* [`postcss-d-ts`] generates `.d.ts` declaration for TypeScript `import` from used CSS classes and ids +* [`postcss-d-ts`] generates `.d.ts` declaration for TypeScript `import` from used CSS classes and ids * [`postcss-eol`] replaces EOL of files. * [`postcss-extract-value`] extracts values from css properties and puts them into variables. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. @@ -452,7 +452,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-node-modules-replacer`] replaces path than includes `node_modules` to `~`. * [`postcss-plugin-namespace`] add a css selector to all rules, so that css file don't affect other element. -* [`postcss-prefix-hover`] add a prefixed selector to any selection containing `:hover` e.g. changing `.foo a:hover {}` to `.using-mouse .foo a:hover {}` +* [`postcss-prefix-hover`] adds a prefixed to any selector containing `:hover`. * [`postcss-pseudo-content-insert`] adds `content: ''` to `:before` and `:after` if it is missing. * [`postcss-pseudo-element-cases`] converts `.style::BEFORE` into `.style::before` and vice versa. From 0b8b228eefbdaa6e7e89ed14473fde6ee0791dad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 20 Aug 2021 22:04:21 +0200 Subject: [PATCH 2330/3047] Speed up tests --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index 703367642..a131b53fc 100644 --- a/package.json +++ b/package.json @@ -145,6 +145,11 @@ "jest": { "preset": "ts-jest", "testEnvironment": "node", + "globals": { + "ts-jest": { + "isolatedModules": true + } + }, "coverageThreshold": { "global": { "statements": 100 From 3a590ae5102903d31e0a0931c449873bfa223dc8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 20 Aug 2021 22:08:40 +0200 Subject: [PATCH 2331/3047] Update dependencies --- package.json | 34 +- yarn.lock | 867 ++++++++++++++++++++++++--------------------------- 2 files changed, 419 insertions(+), 482 deletions(-) diff --git a/package.json b/package.json index a131b53fc..7416da80b 100644 --- a/package.json +++ b/package.json @@ -67,41 +67,41 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", + "colorette": "^1.3.0", + "nanoid": "^3.1.25", "source-map-js": "^0.6.2" }, "devDependencies": { - "@logux/eslint-config": "^45.4.6", - "@size-limit/preset-small-lib": "^5.0.1", + "@logux/eslint-config": "^45.4.7", + "@size-limit/preset-small-lib": "^5.0.3", "@types/fs-extra": "^9.0.12", - "@types/jest": "^26.0.24", - "@types/node": "^16.4.0", - "@typescript-eslint/eslint-plugin": "^4.28.4", - "@typescript-eslint/parser": "^4.28.4", - "check-dts": "^0.5.4", + "@types/jest": "^27.0.1", + "@types/node": "^16.7.0", + "@typescript-eslint/eslint-plugin": "^4.29.2", + "@typescript-eslint/parser": "^4.29.2", + "check-dts": "^0.5.5", "ci-job-number": "^1.2.2", "clean-publish": "^2.2.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^7.31.0", + "eslint": "^7.32.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.23.4", - "eslint-plugin-jest": "^24.3.7", + "eslint-plugin-import": "^2.24.1", + "eslint-plugin-jest": "^24.4.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-security": "^1.4.0", - "eslint-plugin-unicorn": "^34.0.1", + "eslint-plugin-unicorn": "^35.0.0", "fs-extra": "^10.0.0", "jest": "^27.0.6", - "lint-staged": "^11.0.1", + "lint-staged": "^11.1.2", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.5", "prettier": "^2.3.2", - "simple-git-hooks": "^2.5.1", - "size-limit": "^5.0.1", + "simple-git-hooks": "^2.6.1", + "size-limit": "^5.0.3", "strip-ansi": "^6.0.0", - "ts-jest": "^27.0.4", + "ts-jest": "^27.0.5", "typescript": "^4.3.5", "yaspeller": "^7.0.0" }, diff --git a/yarn.lock b/yarn.lock index aa0327dea..4250d79a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,25 +16,25 @@ dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.14.5": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" - integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== +"@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== "@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" - integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.8" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.8" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.14.8" + "@babel/parser" "^7.15.0" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -43,29 +43,29 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.7.tgz#91be59a4f7dd60d02a3ef772d156976465596bda" - integrity sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ== + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz#b54f06e04d0e93aebcba99f89251e3bf0ee39f21" + integrity sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.14.8", "@babel/generator@^7.7.2": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.8.tgz#bf86fd6af96cf3b74395a8ca409515f89423e070" - integrity sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg== +"@babel/generator@^7.15.0", "@babel/generator@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== dependencies: - "@babel/types" "^7.14.8" + "@babel/types" "^7.15.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" - integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== +"@babel/helper-compilation-targets@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== dependencies: - "@babel/compat-data" "^7.14.5" + "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" browserslist "^4.16.6" semver "^6.3.0" @@ -93,12 +93,12 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.14.5": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" - integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.0" "@babel/helper-module-imports@^7.14.5": version "7.14.5" @@ -107,19 +107,19 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz#d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49" - integrity sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA== +"@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== dependencies: "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" "@babel/helper-simple-access" "^7.14.8" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.8" + "@babel/helper-validator-identifier" "^7.14.9" "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -133,15 +133,15 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-replace-supers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" - integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== +"@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/helper-simple-access@^7.14.8": version "7.14.8" @@ -157,10 +157,10 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" - integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== "@babel/helper-validator-option@^7.14.5": version "7.14.5" @@ -168,13 +168,13 @@ integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== "@babel/helpers@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" - integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== dependencies: "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -185,10 +185,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.7.2": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" - integrity sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.2": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -290,27 +290,27 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8", "@babel/traverse@^7.7.2": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.8.tgz#c0253f02677c5de1a8ff9df6b0aacbec7da1a8ce" - integrity sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.8" + "@babel/generator" "^7.15.0" "@babel/helper-function-name" "^7.14.5" "@babel/helper-hoist-variables" "^7.14.5" "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz#38109de8fcadc06415fbd9b74df0065d4d41c728" - integrity sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q== +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== dependencies: - "@babel/helper-validator-identifier" "^7.14.8" + "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -521,17 +521,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - "@jest/types@^27.0.6": version "27.0.6" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" @@ -543,12 +532,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@logux/eslint-config@^45.4.6": - version "45.4.6" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.6.tgz#250d4f585512a507510fae429eb2512fb9e257aa" - integrity sha512-JLzAjae2Tr4pG055WDufp5yFgms6IuXOc8nOfSPd2ASWiOxKWRtQ9hvtgj8p9Dc1gB9mMSrmI4Z/gqtescSpZw== +"@logux/eslint-config@^45.4.7": + version "45.4.7" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.7.tgz#3eb534449f69e6f0a51fc513f0824f278c6f0b87" + integrity sha512-rPdAQiH1taFvewx5taI1ZYGQOOB0vnYhAg0lakOHM3TKWK9Kzq6DLBERvDx7tQFFXGoqEO3B5UsVDtVHEbhkgA== dependencies: - globals "^13.9.0" + globals "^13.10.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -571,10 +560,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@polka/url@^1.0.0-next.15": - version "1.0.0-next.15" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" - integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== +"@polka/url@^1.0.0-next.17": + version "1.0.0-next.17" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.17.tgz#25fdbdfd282c2f86ddf3fcefbd98be99cd2627e2" + integrity sha512-0p1rCgM3LLbAdwBnc7gqgnvjHg9KpbhcSphergHShlkWz8EdPawoMJ3/VbezI0mGC5eKCDzMaPgF9Yca6cKvrg== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -590,33 +579,33 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.1.tgz#8cf5a550a88fe5972db31e65cfd0b040485fd141" - integrity sha512-BgbGFdFwijuR6tZRlmUoN3UzOIN+dt+28hzsYKjTl1LOn4zUJjTWgTCye11Qygj5L6+MkDZOA1ppEm4ZfjPgmQ== +"@size-limit/file@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.3.tgz#6b12240f4880e25736534542168ffd064a8e386f" + integrity sha512-tkxf5ntFdlZ1xHQAw4fYd+gIkH85S2D3Wb94upJhtOfPHwDsQoQycDFGQRwTgei07Eq5vA8Jj5f2mu/tAdoaXw== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.1.tgz#1a53bfe62fd3ff4f4793146cc110a00086173588" - integrity sha512-pscQMfUIiTQQ1VzsjNt+O70tr6NPVSK5UThdzWpAxikUF04ABQandQvhAFrOymGjx4CKcLva6ZGPibZ6uKL9RQ== +"@size-limit/preset-small-lib@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.3.tgz#c2ebf6851995de4f96b953d26720958deb132347" + integrity sha512-kQHU5s+DYHG2RIB8Bjm7qoxLpAt/HCr3zYS7d/1SUa1LTP44oxe3DaxBvs69Qg4+VplEh5LfEOOzzNZk3Tx4Ow== dependencies: - "@size-limit/file" "5.0.1" - "@size-limit/webpack" "5.0.1" + "@size-limit/file" "5.0.3" + "@size-limit/webpack" "5.0.3" -"@size-limit/webpack@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.1.tgz#029495f5227efec22ffe3c36e3b7f23d2d2a0c22" - integrity sha512-dG/H0GRc4P5Dc3KRjaQBq7EfGiOqGDw/eTBdkzvd2VnELl7DFcgoC1hULu9Y0XL50Ha+dGQ1AtNKWsZ3dacH/Q== +"@size-limit/webpack@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.3.tgz#d5d72ca9b0ac9f3642794aa8412c9fd7d553a4ce" + integrity sha512-G8UutozNS3jfG2AyKdeHsYeYJ0jXBfHdzzhVUi1zuv6B+HvCDExE0cnbnIAhLyGNp1uTY/miOHLyCKQsxold/g== dependencies: css-loader "^5.2.6" escape-string-regexp "^4.0.0" file-loader "^6.2.0" mkdirp "^1.0.4" - nanoid "^3.1.23" + nanoid "^3.1.25" optimize-css-assets-webpack-plugin "^6.0.1" - pnp-webpack-plugin "^1.6.4" + pnp-webpack-plugin "^1.7.0" style-loader "^2.0.0" webpack "^4.44.1" webpack-bundle-analyzer "^4.4.2" @@ -697,23 +686,23 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^26.0.24": - version "26.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== +"@types/jest@^27.0.1": + version "27.0.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.1.tgz#fafcc997da0135865311bb1215ba16dba6bdf4ca" + integrity sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw== dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" + jest-diff "^27.0.0" + pretty-format "^27.0.0" "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": - version "7.0.8" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" - integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== -"@types/node@*", "@types/node@^16.4.0": - version "16.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.0.tgz#2c219eaa3b8d1e4d04f4dd6e40bc68c7467d5272" - integrity sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg== +"@types/node@*", "@types/node@^16.7.0": + version "16.7.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.0.tgz#f0374c4e89d1fc1ef705caad3021ba34c1a9294c" + integrity sha512-e66BrnjWQ3BRBZ2+iA5e85fcH9GLNe4S0n1H0T3OalK2sXg5XWEFTO4xvmGrYQ3edy+q6fdOh5t0/HOY8OAqBg== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -745,13 +734,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^16.0.0": version "16.0.4" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" @@ -759,73 +741,73 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.28.4": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz#e73c8cabbf3f08dee0e1bda65ed4e622ae8f8921" - integrity sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw== +"@typescript-eslint/eslint-plugin@^4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.2.tgz#f54dc0a32b8f61c6024ab8755da05363b733838d" + integrity sha512-x4EMgn4BTfVd9+Z+r+6rmWxoAzBaapt4QFqE+d8L8sUtYZYLDTK6VG/y/SMMWA5t1/BVU5Kf+20rX4PtWzUYZg== dependencies: - "@typescript-eslint/experimental-utils" "4.28.4" - "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/experimental-utils" "4.29.2" + "@typescript-eslint/scope-manager" "4.29.2" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.28.4", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz#9c70c35ebed087a5c70fb0ecd90979547b7fec96" - integrity sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA== +"@typescript-eslint/experimental-utils@4.29.2", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.2.tgz#5f67fb5c5757ef2cb3be64817468ba35c9d4e3b7" + integrity sha512-P6mn4pqObhftBBPAv4GQtEK7Yos1fz/MlpT7+YjH9fTxZcALbiiPKuSIfYP/j13CeOjfq8/fr9Thr2glM9ub7A== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.28.4" - "@typescript-eslint/types" "4.28.4" - "@typescript-eslint/typescript-estree" "4.28.4" + "@typescript-eslint/scope-manager" "4.29.2" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/typescript-estree" "4.29.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.28.4": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.4.tgz#bc462dc2779afeefdcf49082516afdc3e7b96fab" - integrity sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA== +"@typescript-eslint/parser@^4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.2.tgz#1c7744f4c27aeb74610c955d3dce9250e95c370a" + integrity sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g== dependencies: - "@typescript-eslint/scope-manager" "4.28.4" - "@typescript-eslint/types" "4.28.4" - "@typescript-eslint/typescript-estree" "4.28.4" + "@typescript-eslint/scope-manager" "4.29.2" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/typescript-estree" "4.29.2" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.28.4": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz#bdbce9b6a644e34f767bd68bc17bb14353b9fe7f" - integrity sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w== +"@typescript-eslint/scope-manager@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.2.tgz#442b0f029d981fa402942715b1718ac7fcd5aa1b" + integrity sha512-mfHmvlQxmfkU8D55CkZO2sQOueTxLqGvzV+mG6S/6fIunDiD2ouwsAoiYCZYDDK73QCibYjIZmGhpvKwAB5BOA== dependencies: - "@typescript-eslint/types" "4.28.4" - "@typescript-eslint/visitor-keys" "4.28.4" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/visitor-keys" "4.29.2" -"@typescript-eslint/types@4.28.4": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.4.tgz#41acbd79b5816b7c0dd7530a43d97d020d3aeb42" - integrity sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww== +"@typescript-eslint/types@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.2.tgz#fc0489c6b89773f99109fb0aa0aaddff21f52fcd" + integrity sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ== -"@typescript-eslint/typescript-estree@4.28.4": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz#252e6863278dc0727244be9e371eb35241c46d00" - integrity sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ== +"@typescript-eslint/typescript-estree@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.2.tgz#a0ea8b98b274adbb2577100ba545ddf8bf7dc219" + integrity sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg== dependencies: - "@typescript-eslint/types" "4.28.4" - "@typescript-eslint/visitor-keys" "4.28.4" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/visitor-keys" "4.29.2" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.28.4": - version "4.28.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz#92dacfefccd6751cbb0a964f06683bfd72d0c4d3" - integrity sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg== +"@typescript-eslint/visitor-keys@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.2.tgz#d2da7341f3519486f50655159f4e5ecdcb2cd1df" + integrity sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag== dependencies: - "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/types" "4.29.2" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -1224,9 +1206,9 @@ async-each@^1.0.1: integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== asynckit@^0.4.0: version "0.4.0" @@ -1472,15 +1454,15 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" escalade "^3.1.1" - node-releases "^1.1.71" + node-releases "^1.1.75" bs-logger@0.x: version "0.2.6" @@ -1496,10 +1478,10 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-xor@^1.0.3: version "1.0.3" @@ -1599,10 +1581,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219: - version "1.0.30001246" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz#fe17d9919f87124d6bb416ef7b325356d69dc76c" - integrity sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001251: + version "1.0.30001251" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" + integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1614,9 +1596,9 @@ chalk@^2.0.0, chalk@^2.4.2: supports-color "^5.3.0" chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -1626,10 +1608,10 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -check-dts@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.5.4.tgz#56825c8ebd0939a86e033f636b0e6e5bab6d2694" - integrity sha512-PVGX9gw5JG1R/31kElzEF8E67lfC69ee7vW5DvEUItWnyE7lLDa5OrEm4auodeoGRlbaSkT+wVvn589Kgt9SUQ== +check-dts@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.5.5.tgz#53be0c5784e225f29006c357aa265c86f0f06fd8" + integrity sha512-jOTEnbuyNeRE4ljNJeFuqh5R0gV6vbQH/U29gO0+dy92x88TwNyPozckObgZhaB5UCYXTvrx64nLQWJGpfIwcQ== dependencies: colorette "^1.2.2" globby "^11.0.4" @@ -1801,15 +1783,15 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.3.0.tgz#72f27e99bac4d861e47f69b5ed1f54c9d8d58775" - integrity sha512-0NaS8lq6xZ9Zb+cWRwQf6ql1Z/7HMIAMzPrM2pgfAqskGAhUksBcaau6W8sL+6OK0xIujcSo1TJfdctG7K85Qg== +colord@^2.0.1, colord@^2.6: + version "2.7.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" + integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== combined-stream@^1.0.8: version "1.0.8" @@ -1988,20 +1970,15 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - css-color-names@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== css-declaration-sorter@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" - integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== + version "6.1.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz#77b32b644ba374bc562c0fc6f4fdaba4dfb0b749" + integrity sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q== dependencies: timsort "^0.3.0" @@ -2050,10 +2027,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz#caa54183a8c8df03124a9e23f374ab89df5a9a99" - integrity sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ== +cssnano-preset-default@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2" + integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -2067,7 +2044,7 @@ cssnano-preset-default@^5.1.3: postcss-merge-longhand "^5.0.2" postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.1" + postcss-minify-gradients "^5.0.2" postcss-minify-params "^5.0.1" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" @@ -2091,11 +2068,11 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.2: - version "5.0.7" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.7.tgz#e81894bdf31aa01a0ca3d1d0eee47be18f7f3012" - integrity sha512-7C0tbb298hef3rq+TtBbMuezBQ9VrFtrQEsPNuBKNVgWny/67vdRsnq8EoNu7TRjAHURgYvWlRIpCUmcMZkRzw== + version "5.0.8" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" + integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== dependencies: - cssnano-preset-default "^5.1.3" + cssnano-preset-default "^5.1.4" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -2231,11 +2208,6 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - diff-sequences@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" @@ -2328,10 +2300,10 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -electron-to-chromium@^1.3.723: - version "1.3.782" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz#522740fe6b4b5255ca754c68d9c406a17b0998e2" - integrity sha512-6AI2se1NqWA1SBf/tlD6tQD/6ZOt+yAhqmrTlh4XZw4/g0Mt3p6JhTQPZxRPxPZiOg0o7ss1EBP/CpYejfnoIA== +electron-to-chromium@^1.3.811: + version "1.3.813" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.813.tgz#751a007d71c00faed8b5e9edaf3634c14b9c5a1f" + integrity sha512-YcSRImHt6JZZ2sSuQ4Bzajtk98igQ0iKkksqlzZLzbh4p0OIyJRSvUbsgqfcR8txdfsoYCc4ym306t4p2kP/aw== elliptic@^6.5.3: version "6.5.4" @@ -2409,9 +2381,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" - integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -2419,11 +2391,12 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: get-intrinsic "^1.1.1" has "^1.0.3" has-symbols "^1.0.2" + internal-slot "^1.0.3" is-callable "^1.2.3" is-negative-zero "^2.0.1" is-regex "^1.1.3" is-string "^1.0.6" - object-inspect "^1.10.3" + object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" @@ -2481,18 +2454,18 @@ eslint-config-standard@^16.0.3: resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== -eslint-import-resolver-node@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== dependencies: - debug "^2.6.9" - resolve "^1.13.1" + debug "^3.2.7" + resolve "^1.20.0" -eslint-module-utils@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" - integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== dependencies: debug "^3.2.7" pkg-dir "^2.0.0" @@ -2505,31 +2478,31 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.23.4: - version "2.23.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" - integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== +eslint-plugin-import@^2.24.1: + version "2.24.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.1.tgz#64aba8b567a1ba9921d5465586e86c491b8e2135" + integrity sha512-KSFWhNxPH8OGJwpRJJs+Z7I0a13E2iFQZJIvSnCu6KUs4qmgAm3xN9GYBCSoiGWmwA7gERZPXqYQjcoCROnYhQ== dependencies: array-includes "^3.1.3" array.prototype.flat "^1.2.4" debug "^2.6.9" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.1" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.6.2" find-up "^2.0.0" has "^1.0.3" - is-core-module "^2.4.0" + is-core-module "^2.6.0" minimatch "^3.0.4" - object.values "^1.1.3" + object.values "^1.1.4" pkg-up "^2.0.0" read-pkg-up "^3.0.0" resolve "^1.20.0" - tsconfig-paths "^3.9.0" + tsconfig-paths "^3.10.1" -eslint-plugin-jest@^24.3.7: - version "24.3.7" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.3.7.tgz#a4deaa9e88182b92533a9c25cc4f3c369d7f33eb" - integrity sha512-pXED2NA4q2M/5mxlN6GyuUXAFJndT0uosOkQCHaUED9pqgBPd89ZzpcZEU6c5HtZNahC00M36FkwLdDHMDqaHw== +eslint-plugin-jest@^24.4.0: + version "24.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz#fa4b614dbd46a98b652d830377971f097bda9262" + integrity sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg== dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" @@ -2564,11 +2537,12 @@ eslint-plugin-security@^1.4.0: dependencies: safe-regex "^1.1.0" -eslint-plugin-unicorn@^34.0.1: - version "34.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-34.0.1.tgz#e31cfaf487591599ff1f1b1e74776cce59dcc3ae" - integrity sha512-GUBtRYRhPVOW/GDu6QtOjrneSZxY/MulOT8puJU+47VKCzNmMgS/iHO2gZqoQ7KPMrpNYlebUlvCWy3IR1USVQ== +eslint-plugin-unicorn@^35.0.0: + version "35.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-35.0.0.tgz#40797793d4f645bafaaa7a1396b8f4ca7b2a7dbd" + integrity sha512-FHsaO68tDPQILfs/mGF8eSISJp8RswR4FpUuBDnueK2wyEHC6zmsc9WxjYyldXoIsBuVmru6jQyFCbCWPoW/KQ== dependencies: + "@babel/helper-validator-identifier" "^7.14.9" ci-info "^3.2.0" clean-regexp "^1.0.0" eslint-template-visitor "^2.3.2" @@ -2578,7 +2552,6 @@ eslint-plugin-unicorn@^34.0.1: pluralize "^8.0.0" read-pkg-up "^7.0.1" regexp-tree "^0.1.23" - reserved-words "^0.1.2" safe-regex "^2.1.1" semver "^7.3.5" @@ -2633,10 +2606,10 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.31.0: - version "7.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca" - integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA== +eslint@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.3" @@ -2841,9 +2814,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastq@^1.6.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" - integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== dependencies: reusify "^1.0.4" @@ -2936,9 +2909,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.1.tgz#bbef080d95fca6709362c73044a1634f7c6e7d05" - integrity sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg== + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== flush-write-stream@^1.0.0: version "1.1.1" @@ -3044,7 +3017,7 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== @@ -3105,10 +3078,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" - integrity sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g== +globals@^13.10.0, globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== dependencies: type-fest "^0.20.2" @@ -3125,9 +3098,9 @@ globby@^11.0.3, globby@^11.0.4: slash "^3.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== gzip-size@^6.0.0: version "6.0.0" @@ -3156,6 +3129,13 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -3211,11 +3191,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -3230,16 +3205,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -3365,6 +3330,15 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + is-absolute-url@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" @@ -3390,9 +3364,11 @@ is-arrayish@^0.2.1: integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" @@ -3409,11 +3385,12 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@^1.1.5: version "1.1.6" @@ -3433,9 +3410,9 @@ is-builtin-module@^3.1.0: builtin-modules "^3.0.0" is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^3.0.0: version "3.0.0" @@ -3444,22 +3421,10 @@ is-ci@^3.0.0: dependencies: ci-info "^3.1.1" -is-color-stop@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.2.0, is-core-module@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" - integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== +is-core-module@^2.2.0, is-core-module@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== dependencies: has "^1.0.3" @@ -3478,9 +3443,11 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" @@ -3547,9 +3514,11 @@ is-negative-zero@^2.0.1: integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" @@ -3581,12 +3550,12 @@ is-potential-custom-element-name@^1.0.1: integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.2" + has-tostringtag "^1.0.0" is-regexp@^1.0.0: version "1.0.0" @@ -3599,14 +3568,16 @@ is-resolvable@^1.1.0: integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" @@ -3782,17 +3753,7 @@ jest-config@^27.0.6: micromatch "^4.0.4" pretty-format "^27.0.6" -jest-diff@^26.0.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-diff@^27.0.6: +jest-diff@^27.0.0, jest-diff@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== @@ -3845,11 +3806,6 @@ jest-environment-node@^27.0.6: jest-mock "^27.0.6" jest-util "^27.0.6" -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - jest-get-type@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" @@ -4141,9 +4097,9 @@ js-yaml@^3.13.1: esprima "^4.0.0" jsdom@^16.6.0: - version "16.6.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" - integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== dependencies: abab "^2.0.5" acorn "^8.2.4" @@ -4170,7 +4126,7 @@ jsdom@^16.6.0: whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" whatwg-url "^8.5.0" - ws "^7.4.5" + ws "^7.4.6" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -4301,17 +4257,16 @@ linkify-it@^2.0.0: dependencies: uc.micro "^1.0.1" -lint-staged@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.0.1.tgz#1b8ae8ed5a52ed87252db95fe008c2618c85f55a" - integrity sha512-RkTA1ulE6jAGFskxpGAwxfVRXjHp7D9gFg/+KMARUWMPiVFP0t28Em2u0gL8sA0w3/ck3TC57F2v2RNeQ5XPnw== +lint-staged@^11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.1.2.tgz#4dd78782ae43ee6ebf2969cad9af67a46b33cd90" + integrity sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w== dependencies: chalk "^4.1.1" cli-truncate "^2.1.0" commander "^7.2.0" cosmiconfig "^7.0.0" debug "^4.3.1" - dedent "^0.7.0" enquirer "^2.3.6" execa "^5.0.0" listr2 "^3.8.2" @@ -4323,9 +4278,9 @@ lint-staged@^11.0.1: stringify-object "^3.3.0" listr2@^3.8.2: - version "3.10.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" - integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== + version "3.11.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" + integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== dependencies: cli-truncate "^2.1.0" colorette "^1.2.2" @@ -4548,10 +4503,10 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mico-spinner@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.1.1.tgz#b904cf4dc1ae247d9bff24b969d8bcbb08371f5d" - integrity sha512-b9F3Qx9l6fO141+FbR9hqRUJ15p4bGVsqgXiO/noxxXZmN+hYZVCuWd4LEubadrVkw0eIYAJDXWo0ZYGoLrmfg== +mico-spinner@^1.1.1, mico-spinner@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.2.2.tgz#0f00cbf45c81b58fbd7d0a7bb2dea8546867d413" + integrity sha512-jIsOIIk5xa+TmZJU2mPVTEk1AC7aKnrj8UJR58cTiK8msNWYvPuQxPx0ojNbtVOut/TjTgGkVLrEt1jsrceYfA== dependencies: colorette "^1.2.2" @@ -4590,17 +4545,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.48.0: - version "1.48.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" - integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== +mime-db@1.49.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== mime-types@^2.1.12: - version "2.1.31" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" - integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== dependencies: - mime-db "1.48.0" + mime-db "1.49.0" mime@^2.3.1: version "2.5.2" @@ -4658,11 +4613,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@1.x, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -4670,6 +4620,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3: dependencies: minimist "^1.2.5" +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -4703,19 +4658,19 @@ multimap@^1.1.0: integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== -nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== +nanoid@^3.1.23, nanoid@^3.1.25: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== nanomatch@^1.2.9: version "1.2.13" @@ -4788,10 +4743,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.71: - version "1.1.73" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" - integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -4853,7 +4808,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.10.3: +object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== @@ -4887,7 +4842,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.3: +object.values@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== @@ -5190,10 +5145,10 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pnp-webpack-plugin@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== +pnp-webpack-plugin@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" + integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== dependencies: ts-pnp "^1.1.6" @@ -5274,13 +5229,13 @@ postcss-minify-font-values@^5.0.1: dependencies: postcss-value-parser "^4.1.0" -postcss-minify-gradients@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" - integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== +postcss-minify-gradients@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5" + integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ== dependencies: + colord "^2.6" cssnano-utils "^2.0.1" - is-color-stop "^1.1.0" postcss-value-parser "^4.1.0" postcss-minify-params@^5.0.1: @@ -5461,9 +5416,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.3.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" - integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -5484,17 +5439,7 @@ prettier@^2.3.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^27.0.6: +pretty-format@^27.0.0, pretty-format@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== @@ -5751,11 +5696,6 @@ requireindex@~1.2.0: resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== -reserved-words@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" - integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -5778,7 +5718,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.20.0: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -5804,16 +5744,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -5980,22 +5910,31 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-git-hooks@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.5.1.tgz#78ed9cfa552843bc45cd36ad5b7424567119c2f4" - integrity sha512-iI/MEEVObv45slsxz+BT+5NCS2UDgVIqfQKmNjL4/XnEfacpdYAHd71Imc5Nw/FY100A+i1PIXdIdkLHYcC2Bg== +simple-git-hooks@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.6.1.tgz#0843d7ad7d3be3bb877b86f218d0abea87611584" + integrity sha512-nvqaNfgvcjN3cGSYJSdjwB+tP8YKRCyvuUvQ24luIjIpGhUCPpZDTJ+p+hcJiwc0lZlTCl0NayfBVDoIMG7Jpg== sirv@^1.0.7: - version "1.0.12" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" - integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== + version "1.0.14" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.14.tgz#b826343f573e12653c5b3c3080a3a2a6a06595cd" + integrity sha512-czTFDFjK9lXj0u9mJ3OmJoXFztoilYS+NdRPcJoT182w44wSEkHSiO7A2517GLJ8wKM4GjCm2OXE66Dhngbzjg== dependencies: - "@polka/url" "^1.0.0-next.15" + "@polka/url" "^1.0.0-next.17" mime "^2.3.1" totalist "^1.0.0" @@ -6004,18 +5943,18 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.1.tgz#9aedea30bfb7cea17e78d86bc19c61d3df53b91e" - integrity sha512-FZwVay5fCdatHoZU1lGyvVK3KrI4puMKbU1UoLLhEaMjQBxPuovuF+eJIDzmJN+xZRk3thuG7yS77DhuWF4fEQ== +size-limit@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.3.tgz#de4d4e9366274bd7987673ae76d51af02f57089b" + integrity sha512-522c33FTs09sDCN3SUjtxF3Jg361O8Xm1Rh9MUuGGVwY7XGvroE/vL20+//qGltUprGzYQONBbzy9TTdOJWgbw== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" - colorette "^1.2.2" + colorette "^1.3.0" globby "^11.0.4" lilconfig "^2.0.3" - mico-spinner "^1.1.1" + mico-spinner "^1.2.2" slash@^3.0.0: version "3.0.0" @@ -6141,9 +6080,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" - integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== spinnies@^0.5.1: version "0.5.1" @@ -6366,12 +6305,12 @@ supports-hyperlinks@^2.0.0: supports-color "^7.0.0" svgo@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.1.tgz#603a69ce50311c0e36791528f549644ec1b3f4bc" - integrity sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.4.0.tgz#0c42653101fd668692c0f69b55b8d7b182ef422b" + integrity sha512-W25S1UUm9Lm9VnE0TvCzL7aso/NCzDEaXLaElCUO/KaVitw0+IBicSVfM1L1c0YHK5TOFh73yQ2naCpVHEQ/OQ== dependencies: "@trysound/sax" "0.1.1" - chalk "^4.1.0" + colorette "^1.2.2" commander "^7.1.0" css-select "^4.1.3" css-tree "^1.1.2" @@ -6544,19 +6483,17 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -ts-jest@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.4.tgz#df49683535831560ccb58f94c023d831b1b80df0" - integrity sha512-c4E1ECy9Xz2WGfTMyHbSaArlIva7Wi2p43QOMmCqjSSjHP06KXv+aT+eSY+yZMuqsMi3k7pyGsGj2q5oSl5WfQ== +ts-jest@^27.0.5: + version "27.0.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" + integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== dependencies: bs-logger "0.x" - buffer-from "1.x" fast-json-stable-stringify "2.x" jest-util "^27.0.0" json5 "2.x" lodash "4.x" make-error "1.x" - mkdirp "1.x" semver "7.x" yargs-parser "20.x" @@ -6565,7 +6502,7 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tsconfig-paths@^3.9.0: +tsconfig-paths@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7" integrity sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q== @@ -6801,17 +6738,17 @@ vfile-location@^4.0.1: vfile "^5.0.0" vfile-message@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.1.tgz#b9bcf87cb5525e61777e0c6df07e816a577588a3" - integrity sha512-gYmSHcZZUEtYpTmaWaFJwsuUD70/rTY4v09COp8TGtOkix6gGxb/a8iTQByIY9ciTk9GwAwIXd/J9OPfM4Bvaw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.2.tgz#db7eaebe7fecb853010f2ef1664427f52baf8f74" + integrity sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.0.2.tgz#57773d1d91478b027632c23afab58ec3590344f0" - integrity sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw== + version "5.1.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.1.0.tgz#18e78016f0f71e98d737d40f0fca921dc264a600" + integrity sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -7008,7 +6945,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^7.3.1, ws@^7.4.5: +ws@^7.3.1, ws@^7.4.6: version "7.5.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== From 2e27259d5195c8d567d048179f26ca49d177cd48 Mon Sep 17 00:00:00 2001 From: Andrew Bruce Date: Wed, 25 Aug 2021 00:00:19 +0100 Subject: [PATCH 2332/3047] Community fixes error in English :) --- docs/guidelines/runner.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 21307acd2..30abab2a4 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -150,7 +150,7 @@ if (result.map) { ### 5.1. Document your runner in English -PostCSS runners must have their `README.md` wrote in English. Do not be afraid +PostCSS runners must have their `README.md` written in English. Do not be afraid of your English skills, as the open source community will fix your errors. Of course, you are welcome to write documentation in other languages; From b7da9eacc4b26de25ba45d6ebfb9f25dede76572 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Sep 2021 01:18:33 +0000 Subject: [PATCH 2333/3047] Bump tmpl from 1.0.4 to 1.0.5 Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5. - [Release notes](https://github.com/daaku/nodejs-tmpl/releases) - [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5) --- updated-dependencies: - dependency-name: tmpl dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4250d79a4..eb1e3da13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6416,9 +6416,9 @@ timsort@^0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== to-arraybuffer@^1.0.0: version "1.0.1" From 0b74a0109cc5ece98d1bbd694744e1939ec3d390 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Sep 2021 01:22:57 +0000 Subject: [PATCH 2334/3047] Bump nth-check from 2.0.0 to 2.0.1 Bumps [nth-check](https://github.com/fb55/nth-check) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/fb55/nth-check/releases) - [Commits](https://github.com/fb55/nth-check/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: nth-check dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index eb1e3da13..9960dd4c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4783,9 +4783,9 @@ npm-run-path@^4.0.1: path-key "^3.0.0" nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" - integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== dependencies: boolbase "^1.0.0" From a482e70126973257734dc7fff2f2b53ac0661f02 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 21 Sep 2021 13:13:19 +0200 Subject: [PATCH 2335/3047] Replace colorette to nanocolors --- lib/css-syntax-error.js | 4 ++-- lib/terminal-highlight.js | 2 +- package.json | 3 +-- test/browser.test.ts | 32 +++++--------------------------- test/css-syntax-error.test.ts | 2 +- yarn.lock | 5 +++++ 6 files changed, 15 insertions(+), 33 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index c20aa12a5..433d35bfa 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,6 +1,6 @@ 'use strict' -let { red, bold, gray, options: colorette } = require('colorette') +let { red, bold, gray, isColorSupported } = require('nanocolors') let terminalHighlight = require('./terminal-highlight') @@ -44,7 +44,7 @@ class CssSyntaxError extends Error { if (!this.source) return '' let css = this.source - if (color == null) color = colorette.enabled + if (color == null) color = isColorSupported if (terminalHighlight) { if (color) css = terminalHighlight(css) } diff --git a/lib/terminal-highlight.js b/lib/terminal-highlight.js index 60282bd0e..37e2e3d22 100644 --- a/lib/terminal-highlight.js +++ b/lib/terminal-highlight.js @@ -1,6 +1,6 @@ 'use strict' -let { cyan, gray, green, yellow, magenta } = require('colorette') +let { cyan, gray, green, yellow, magenta } = require('nanocolors') let tokenizer = require('./tokenize') diff --git a/package.json b/package.json index 7416da80b..8f46effed 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "colorette": "^1.3.0", + "nanocolors": "^0.1.1", "nanoid": "^3.1.25", "source-map-js": "^0.6.2" }, @@ -131,7 +131,6 @@ "browser": { "./lib/terminal-highlight": false, "source-map-js": false, - "colorette": false, "path": false, "url": false, "fs": false diff --git a/test/browser.test.ts b/test/browser.test.ts index f1e9192d2..c586a7f36 100644 --- a/test/browser.test.ts +++ b/test/browser.test.ts @@ -1,17 +1,13 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -import { options, bold, red, gray, yellow } from 'colorette' +import { bold, red, gray, yellow } from 'nanocolors' beforeEach(() => { jest.resetModules() jest.doMock('fs', () => ({})) - jest.doMock('colorette', () => ({ options, bold, red, gray, yellow })) + jest.doMock('nanocolors', () => ({ bold, red, gray, yellow })) }) -afterEach(() => { - options.enabled = true -}) - -it('shows code with colors (default)', () => { +it('shows code with colors', () => { let postcss = require('../lib/postcss.js') let error @@ -24,7 +20,7 @@ it('shows code with colors (default)', () => { throw e } } - expect(error.showSourceCode()).toEqual( + expect(error.showSourceCode(true)).toEqual( bold(red('>')) + gray(' 1 | ') + 'a' + @@ -35,25 +31,7 @@ it('shows code with colors (default)', () => { ) }) -it('shows code without colors (default)', () => { - let postcss = require('../lib/postcss.js') - - let error - options.enabled = false - - try { - postcss.parse('a{') - } catch (e) { - if (e.name === 'CssSyntaxError') { - error = e - } else { - throw e - } - } - expect(error.showSourceCode()).toEqual('> 1 | a{\n' + ' | ^') -}) - -it('shows code without colors (setting)', () => { +it('shows code without colors', () => { let postcss = require('../lib/postcss.js') let error diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 7b960eaed..4bafb4608 100644 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -1,4 +1,4 @@ -import { red, bold, magenta, yellow, gray, cyan } from 'colorette' +import { red, bold, magenta, yellow, gray, cyan } from 'nanocolors' import { join, resolve as pathResolve } from 'path' import { pathToFileURL } from 'url' import stripAnsi from 'strip-ansi' diff --git a/yarn.lock b/yarn.lock index 9960dd4c9..5bc4cfd31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4662,6 +4662,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +nanocolors@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.1.tgz#1b148b06c6279084709675fb3d699e0cdc668114" + integrity sha512-9XCSSmaAkJVops0tOTkt1lUXO8iO7vTYr1X45I8kCbgP2cMS9RvPGVnp/Ou+ISsm9JhKpKCON7zwOFyWcWrzhA== + nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" From acabfd39e8e65970fb38a3d4415c7587fc0bb7cf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Sep 2021 07:52:00 +0200 Subject: [PATCH 2336/3047] Update dependencies --- package.json | 34 +- yarn.lock | 1397 ++++++++++++++++++++++++++------------------------ 2 files changed, 734 insertions(+), 697 deletions(-) diff --git a/package.json b/package.json index 8f46effed..2347e5421 100644 --- a/package.json +++ b/package.json @@ -67,42 +67,42 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanocolors": "^0.1.1", + "nanocolors": "^0.1.5", "nanoid": "^3.1.25", "source-map-js": "^0.6.2" }, "devDependencies": { - "@logux/eslint-config": "^45.4.7", - "@size-limit/preset-small-lib": "^5.0.3", - "@types/fs-extra": "^9.0.12", - "@types/jest": "^27.0.1", - "@types/node": "^16.7.0", - "@typescript-eslint/eslint-plugin": "^4.29.2", - "@typescript-eslint/parser": "^4.29.2", - "check-dts": "^0.5.5", + "@logux/eslint-config": "^45.4.8", + "@size-limit/preset-small-lib": "^5.0.4", + "@types/fs-extra": "^9.0.13", + "@types/jest": "^27.0.2", + "@types/node": "^16.9.6", + "@typescript-eslint/eslint-plugin": "^4.31.2", + "@typescript-eslint/parser": "^4.31.2", + "check-dts": "^0.5.6", "ci-job-number": "^1.2.2", "clean-publish": "^2.2.0", "concat-with-sourcemaps": "^1.1.0", "eslint": "^7.32.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.24.1", - "eslint-plugin-jest": "^24.4.0", + "eslint-plugin-import": "^2.24.2", + "eslint-plugin-jest": "^24.4.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-security": "^1.4.0", - "eslint-plugin-unicorn": "^35.0.0", + "eslint-plugin-unicorn": "^36.0.0", "fs-extra": "^10.0.0", - "jest": "^27.0.6", + "jest": "^27.2.1", "lint-staged": "^11.1.2", "nanodelay": "^1.0.8", - "postcss-parser-tests": "^8.3.5", - "prettier": "^2.3.2", + "postcss-parser-tests": "^8.3.6", + "prettier": "^2.4.1", "simple-git-hooks": "^2.6.1", - "size-limit": "^5.0.3", + "size-limit": "^5.0.4", "strip-ansi": "^6.0.0", "ts-jest": "^27.0.5", - "typescript": "^4.3.5", + "typescript": "^4.4.3", "yaspeller": "^7.0.0" }, "lint-staged": { diff --git a/yarn.lock b/yarn.lock index 5bc4cfd31..220aa04f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,19 +22,19 @@ integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== "@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" - integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== + version "7.15.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" + integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.15.0" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/generator" "^7.15.4" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.4" + "@babel/helpers" "^7.15.4" + "@babel/parser" "^7.15.5" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -43,138 +43,138 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz#b54f06e04d0e93aebcba99f89251e3bf0ee39f21" - integrity sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw== + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.7.tgz#2dc3d0ff0ea22bb1e08d93b4eeb1149bf1c75f2d" + integrity sha512-yJkHyomClm6A2Xzb8pdAo4HzYMSXFn1O5zrCYvbFP0yQFvHueLedV8WiEno8yJOKStjUXzBZzJFeWQ7b3YMsqQ== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.15.0", "@babel/generator@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== +"@babel/generator@^7.15.4", "@babel/generator@^7.7.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" + integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.15.4" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" - integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== +"@babel/helper-compilation-targets@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" + integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== +"@babel/helper-function-name@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" + integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/helper-get-function-arity" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/types" "^7.15.4" -"@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== +"@babel/helper-get-function-arity@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b" + integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.4" -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== +"@babel/helper-hoist-variables@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df" + integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.4" -"@babel/helper-member-expression-to-functions@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" - integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== +"@babel/helper-member-expression-to-functions@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef" + integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.15.4" -"@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== +"@babel/helper-module-imports@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" + integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.4" -"@babel/helper-module-transforms@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" - integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== +"@babel/helper-module-transforms@^7.15.4": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226" + integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-simple-access" "^7.14.8" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.9" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/helper-module-imports" "^7.15.4" + "@babel/helper-replace-supers" "^7.15.4" + "@babel/helper-simple-access" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.6" -"@babel/helper-optimise-call-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" - integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== +"@babel/helper-optimise-call-expression@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171" + integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.4" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-replace-supers@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" - integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== +"@babel/helper-replace-supers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" + integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/helper-member-expression-to-functions" "^7.15.4" + "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" -"@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== +"@babel/helper-simple-access@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b" + integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== dependencies: - "@babel/types" "^7.14.8" + "@babel/types" "^7.15.4" -"@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== +"@babel/helper-split-export-declaration@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" + integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.15.4" -"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helpers@^7.14.8": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" - integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== +"@babel/helpers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" + integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -185,10 +185,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.2": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== +"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5", "@babel/parser@^7.7.2": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" + integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -281,34 +281,34 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/template@^7.14.5", "@babel/template@^7.3.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== +"@babel/template@^7.15.4", "@babel/template@^7.3.3": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" + integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" - integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== +"@babel/types@^7.0.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.15.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" + integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== dependencies: "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" @@ -363,94 +363,94 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" - integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== +"@jest/console@^27.2.0": + version "27.2.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.0.tgz#57f702837ec52899be58c3794dce5941c77a8b63" + integrity sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.0.6" - jest-util "^27.0.6" + jest-message-util "^27.2.0" + jest-util "^27.2.0" slash "^3.0.0" -"@jest/core@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" - integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== - dependencies: - "@jest/console" "^27.0.6" - "@jest/reporters" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" +"@jest/core@^27.2.1": + version "27.2.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.1.tgz#93dc50e2aaba2c944e5765cf658dcd98d804c970" + integrity sha512-XcGt9UgPyzylThvezwUIMCNVp8xxN78Ic3WwhJZehZt4n2hPHR6Bd85A1nKFZBeqW58Vd+Cx/LaN6YL4n58KlA== + dependencies: + "@jest/console" "^27.2.0" + "@jest/reporters" "^27.2.1" + "@jest/test-result" "^27.2.0" + "@jest/transform" "^27.2.1" + "@jest/types" "^27.1.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.0.6" - jest-config "^27.0.6" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" + jest-changed-files "^27.1.1" + jest-config "^27.2.1" + jest-haste-map "^27.2.0" + jest-message-util "^27.2.0" jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-resolve-dependencies "^27.0.6" - jest-runner "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - jest-watcher "^27.0.6" + jest-resolve "^27.2.0" + jest-resolve-dependencies "^27.2.1" + jest-runner "^27.2.1" + jest-runtime "^27.2.1" + jest-snapshot "^27.2.1" + jest-util "^27.2.0" + jest-validate "^27.2.0" + jest-watcher "^27.2.0" micromatch "^4.0.4" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" - integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== +"@jest/environment@^27.2.0": + version "27.2.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.0.tgz#48d1dbfa65f8e4a5a5c6cbeb9c59d1a5c2776f6b" + integrity sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ== dependencies: - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/fake-timers" "^27.2.0" + "@jest/types" "^27.1.1" "@types/node" "*" - jest-mock "^27.0.6" + jest-mock "^27.1.1" -"@jest/fake-timers@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" - integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== +"@jest/fake-timers@^27.2.0": + version "27.2.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.0.tgz#560841bc21ae7fbeff0cbff8de8f5cf43ad3561d" + integrity sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" "@sinonjs/fake-timers" "^7.0.2" "@types/node" "*" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-message-util "^27.2.0" + jest-mock "^27.1.1" + jest-util "^27.2.0" -"@jest/globals@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" - integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== +"@jest/globals@^27.2.1": + version "27.2.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.1.tgz#6842c70b6713fbe2fcaf89eac20d77eeeb0e282c" + integrity sha512-4P46Zr4cckSitsWtOMRvgMMn7mOKbBsQdYxHeGSIG3kpI4gNR2vk51balPulZHnBQCQb/XBptprtoSv1REfaew== dependencies: - "@jest/environment" "^27.0.6" - "@jest/types" "^27.0.6" - expect "^27.0.6" + "@jest/environment" "^27.2.0" + "@jest/types" "^27.1.1" + expect "^27.2.1" -"@jest/reporters@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" - integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== +"@jest/reporters@^27.2.1": + version "27.2.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.1.tgz#2e43361b962e26975d40eafd7b4f14c70b4fe9a0" + integrity sha512-ILqR+bIIBlhaHjDtQR/0Z20YkKAQVM+NVRuJLaWFCoRx/rKQQSxG01ZLiLV0MsA6wkBHf6J9fzFuXp0k5l7epw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^27.2.0" + "@jest/test-result" "^27.2.0" + "@jest/transform" "^27.2.1" + "@jest/types" "^27.1.1" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -461,10 +461,10 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-haste-map "^27.2.0" + jest-resolve "^27.2.0" + jest-util "^27.2.0" + jest-worker "^27.2.0" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" @@ -480,51 +480,51 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" - integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== +"@jest/test-result@^27.2.0": + version "27.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.0.tgz#377b46a41a6415dd4839fd0bed67b89fecea6b20" + integrity sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA== dependencies: - "@jest/console" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^27.2.0" + "@jest/types" "^27.1.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" - integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== +"@jest/test-sequencer@^27.2.1": + version "27.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.1.tgz#1682cd3a16198fa358ff9565b0d2792919f36562" + integrity sha512-fWcEgWQXgvU4DFY5YHfQsGwqfJWyuCUzdOzLZTYtyLB3WK1mFPQGYAszM7mCEZjyVon5XRuCa+2/+hif/uMucQ== dependencies: - "@jest/test-result" "^27.0.6" + "@jest/test-result" "^27.2.0" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-runtime "^27.0.6" + jest-haste-map "^27.2.0" + jest-runtime "^27.2.1" -"@jest/transform@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" - integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== +"@jest/transform@^27.2.1": + version "27.2.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.1.tgz#743443adb84b3b7419951fc702515ce20ba6285e" + integrity sha512-xmB5vh81KK8DiiCMtI5vI59mP+GggNmc9BiN+fg4mKdQHV369+WuZc1Lq2xWFCOCsRPHt24D9h7Idp4YaMB1Ww== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" + jest-haste-map "^27.2.0" jest-regex-util "^27.0.6" - jest-util "^27.0.6" + jest-util "^27.2.0" micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" - integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== +"@jest/types@^27.1.1": + version "27.1.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.1.tgz#77a3fc014f906c65752d12123a0134359707c0ad" + integrity sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -532,12 +532,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@logux/eslint-config@^45.4.7": - version "45.4.7" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.7.tgz#3eb534449f69e6f0a51fc513f0824f278c6f0b87" - integrity sha512-rPdAQiH1taFvewx5taI1ZYGQOOB0vnYhAg0lakOHM3TKWK9Kzq6DLBERvDx7tQFFXGoqEO3B5UsVDtVHEbhkgA== +"@logux/eslint-config@^45.4.8": + version "45.4.8" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.8.tgz#28edb449fcaecaf99a55645905e924061a87a1c6" + integrity sha512-WbHqu38BMWaP5ywiSLoUzpSxODGwR/OgBV36xAQLr8fAKp/e4Z3ctvAuVAYotJS7c6aCpWxnGPEs48B+0UZ1Yg== dependencies: - globals "^13.10.0" + globals "^13.11.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -560,10 +560,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@polka/url@^1.0.0-next.17": - version "1.0.0-next.17" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.17.tgz#25fdbdfd282c2f86ddf3fcefbd98be99cd2627e2" - integrity sha512-0p1rCgM3LLbAdwBnc7gqgnvjHg9KpbhcSphergHShlkWz8EdPawoMJ3/VbezI0mGC5eKCDzMaPgF9Yca6cKvrg== +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.20" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.20.tgz#111b5db0f501aa89b05076fa31f0ea0e0c292cd3" + integrity sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -579,25 +579,25 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.3.tgz#6b12240f4880e25736534542168ffd064a8e386f" - integrity sha512-tkxf5ntFdlZ1xHQAw4fYd+gIkH85S2D3Wb94upJhtOfPHwDsQoQycDFGQRwTgei07Eq5vA8Jj5f2mu/tAdoaXw== +"@size-limit/file@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.4.tgz#d3bb30214218376db12c6fbc93498bcde1a65939" + integrity sha512-NXWk7fkI304TazIzG2d7co2X+XB52pHPr0CEXoj52Dx1olXcQqbx+6cg6im0FzhL91iCp1eAjhfeOq8h5D4B/Q== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.3.tgz#c2ebf6851995de4f96b953d26720958deb132347" - integrity sha512-kQHU5s+DYHG2RIB8Bjm7qoxLpAt/HCr3zYS7d/1SUa1LTP44oxe3DaxBvs69Qg4+VplEh5LfEOOzzNZk3Tx4Ow== +"@size-limit/preset-small-lib@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.4.tgz#5eb19889df8cd9a78a48369dfe2cc9b7e2dc8da6" + integrity sha512-2DRnZUte+WThsE/Lzu3uR7RkmzK/tJcgl2rCIsrfDQ4Kn23uesXVD2y19nWHzpEc4H62bxS13SmkTi84o5mBiQ== dependencies: - "@size-limit/file" "5.0.3" - "@size-limit/webpack" "5.0.3" + "@size-limit/file" "5.0.4" + "@size-limit/webpack" "5.0.4" -"@size-limit/webpack@5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.3.tgz#d5d72ca9b0ac9f3642794aa8412c9fd7d553a4ce" - integrity sha512-G8UutozNS3jfG2AyKdeHsYeYJ0jXBfHdzzhVUi1zuv6B+HvCDExE0cnbnIAhLyGNp1uTY/miOHLyCKQsxold/g== +"@size-limit/webpack@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.4.tgz#1d3d3d802064aa132b35fc4b55984ef694ff928b" + integrity sha512-wFJ90kwJ60AAZ3Ln4Egc6Tbpl7AcibGJKawHp41HpV2TeJT4IQOsgYXj/QOnVzz75+MKX/aZVa6OIlyWR7KORw== dependencies: css-loader "^5.2.6" escape-string-regexp "^4.0.0" @@ -615,15 +615,15 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@trysound/sax@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" - integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.15" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" - integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== + version "7.1.16" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" + integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -653,10 +653,10 @@ dependencies: "@babel/types" "^7.3.0" -"@types/fs-extra@^9.0.12": - version "9.0.12" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" - integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: "@types/node" "*" @@ -686,10 +686,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^27.0.1": - version "27.0.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.1.tgz#fafcc997da0135865311bb1215ba16dba6bdf4ca" - integrity sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw== +"@types/jest@^27.0.2": + version "27.0.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.2.tgz#ac383c4d4aaddd29bbf2b916d8d105c304a5fcd7" + integrity sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA== dependencies: jest-diff "^27.0.0" pretty-format "^27.0.0" @@ -699,10 +699,15 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== -"@types/node@*", "@types/node@^16.7.0": - version "16.7.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.0.tgz#f0374c4e89d1fc1ef705caad3021ba34c1a9294c" - integrity sha512-e66BrnjWQ3BRBZ2+iA5e85fcH9GLNe4S0n1H0T3OalK2sXg5XWEFTO4xvmGrYQ3edy+q6fdOh5t0/HOY8OAqBg== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/node@*", "@types/node@^16.9.6": + version "16.9.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04" + integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -741,73 +746,73 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.2.tgz#f54dc0a32b8f61c6024ab8755da05363b733838d" - integrity sha512-x4EMgn4BTfVd9+Z+r+6rmWxoAzBaapt4QFqE+d8L8sUtYZYLDTK6VG/y/SMMWA5t1/BVU5Kf+20rX4PtWzUYZg== +"@typescript-eslint/eslint-plugin@^4.31.2": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.2.tgz#9f41efaee32cdab7ace94b15bd19b756dd099b0a" + integrity sha512-w63SCQ4bIwWN/+3FxzpnWrDjQRXVEGiTt9tJTRptRXeFvdZc/wLiz3FQUwNQ2CVoRGI6KUWMNUj/pk63noUfcA== dependencies: - "@typescript-eslint/experimental-utils" "4.29.2" - "@typescript-eslint/scope-manager" "4.29.2" + "@typescript-eslint/experimental-utils" "4.31.2" + "@typescript-eslint/scope-manager" "4.31.2" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.29.2", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.2.tgz#5f67fb5c5757ef2cb3be64817468ba35c9d4e3b7" - integrity sha512-P6mn4pqObhftBBPAv4GQtEK7Yos1fz/MlpT7+YjH9fTxZcALbiiPKuSIfYP/j13CeOjfq8/fr9Thr2glM9ub7A== +"@typescript-eslint/experimental-utils@4.31.2", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.2.tgz#98727a9c1e977dd5d20c8705e69cd3c2a86553fa" + integrity sha512-3tm2T4nyA970yQ6R3JZV9l0yilE2FedYg8dcXrTar34zC9r6JB7WyBQbpIVongKPlhEMjhQ01qkwrzWy38Bk1Q== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.29.2" - "@typescript-eslint/types" "4.29.2" - "@typescript-eslint/typescript-estree" "4.29.2" + "@typescript-eslint/scope-manager" "4.31.2" + "@typescript-eslint/types" "4.31.2" + "@typescript-eslint/typescript-estree" "4.31.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.2.tgz#1c7744f4c27aeb74610c955d3dce9250e95c370a" - integrity sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g== +"@typescript-eslint/parser@^4.31.2": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.2.tgz#54aa75986e3302d91eff2bbbaa6ecfa8084e9c34" + integrity sha512-EcdO0E7M/sv23S/rLvenHkb58l3XhuSZzKf6DBvLgHqOYdL6YFMYVtreGFWirxaU2mS1GYDby3Lyxco7X5+Vjw== dependencies: - "@typescript-eslint/scope-manager" "4.29.2" - "@typescript-eslint/types" "4.29.2" - "@typescript-eslint/typescript-estree" "4.29.2" + "@typescript-eslint/scope-manager" "4.31.2" + "@typescript-eslint/types" "4.31.2" + "@typescript-eslint/typescript-estree" "4.31.2" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.2.tgz#442b0f029d981fa402942715b1718ac7fcd5aa1b" - integrity sha512-mfHmvlQxmfkU8D55CkZO2sQOueTxLqGvzV+mG6S/6fIunDiD2ouwsAoiYCZYDDK73QCibYjIZmGhpvKwAB5BOA== +"@typescript-eslint/scope-manager@4.31.2": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.2.tgz#1d528cb3ed3bcd88019c20a57c18b897b073923a" + integrity sha512-2JGwudpFoR/3Czq6mPpE8zBPYdHWFGL6lUNIGolbKQeSNv4EAiHaR5GVDQaLA0FwgcdcMtRk+SBJbFGL7+La5w== dependencies: - "@typescript-eslint/types" "4.29.2" - "@typescript-eslint/visitor-keys" "4.29.2" + "@typescript-eslint/types" "4.31.2" + "@typescript-eslint/visitor-keys" "4.31.2" -"@typescript-eslint/types@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.2.tgz#fc0489c6b89773f99109fb0aa0aaddff21f52fcd" - integrity sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ== +"@typescript-eslint/types@4.31.2": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.2.tgz#2aea7177d6d744521a168ed4668eddbd912dfadf" + integrity sha512-kWiTTBCTKEdBGrZKwFvOlGNcAsKGJSBc8xLvSjSppFO88AqGxGNYtF36EuEYG6XZ9vT0xX8RNiHbQUKglbSi1w== -"@typescript-eslint/typescript-estree@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.2.tgz#a0ea8b98b274adbb2577100ba545ddf8bf7dc219" - integrity sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg== +"@typescript-eslint/typescript-estree@4.31.2": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.2.tgz#abfd50594d8056b37e7428df3b2d185ef2d0060c" + integrity sha512-ieBq8U9at6PvaC7/Z6oe8D3czeW5d//Fo1xkF/s9394VR0bg/UaMYPdARiWyKX+lLEjY3w/FNZJxitMsiWv+wA== dependencies: - "@typescript-eslint/types" "4.29.2" - "@typescript-eslint/visitor-keys" "4.29.2" + "@typescript-eslint/types" "4.31.2" + "@typescript-eslint/visitor-keys" "4.31.2" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.2.tgz#d2da7341f3519486f50655159f4e5ecdcb2cd1df" - integrity sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag== +"@typescript-eslint/visitor-keys@4.31.2": + version "4.31.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.2.tgz#7d5b4a4705db7fe59ecffb273c1d082760f635cc" + integrity sha512-PrBId7EQq2Nibns7dd/ch6S6/M4/iwLM9McbgeEbCXfxdwRUNxJ4UNreJ6Gh3fI2GNKNrWnQxKL7oCPmngKBug== dependencies: - "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/types" "4.31.2" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -989,9 +994,9 @@ acorn-walk@^7.1.1: integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn-walk@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" - integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^6.4.1: version "6.4.2" @@ -1004,9 +1009,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4, acorn@^8.2.4: - version "8.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== + version "8.5.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== agent-base@6: version "6.0.2" @@ -1044,9 +1049,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" - integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + version "8.6.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1076,9 +1081,9 @@ ansi-regex@^4.1.0: integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" @@ -1225,16 +1230,16 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -babel-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" - integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== +babel-jest@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.1.tgz#48edfa5cf8d59ab293da94321a369ccc7b67a4b1" + integrity sha512-kkaekSJHew1zfDW3cA2QiSBPg4uiLpiW0OwJKqFv0r2/mFgym/IBn7hxPntL6FvS66G/ROh+lz4pRiCJAH1/UQ== dependencies: - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/transform" "^27.2.1" + "@jest/types" "^27.1.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.0.6" + babel-preset-jest "^27.2.0" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -1250,10 +1255,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" - integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== +babel-plugin-jest-hoist@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz#79f37d43f7e5c4fdc4b2ca3e10cc6cf545626277" + integrity sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -1278,12 +1283,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" - integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== +babel-preset-jest@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz#556bbbf340608fed5670ab0ea0c8ef2449fba885" + integrity sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg== dependencies: - babel-plugin-jest-hoist "^27.0.6" + babel-plugin-jest-hoist "^27.2.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1454,15 +1459,15 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.16.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" - integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== + version "4.17.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9" + integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ== dependencies: - caniuse-lite "^1.0.30001251" - colorette "^1.3.0" - electron-to-chromium "^1.3.811" + caniuse-lite "^1.0.30001259" + electron-to-chromium "^1.3.846" escalade "^3.1.1" - node-releases "^1.1.75" + nanocolors "^0.1.5" + node-releases "^1.1.76" bs-logger@0.x: version "0.2.6" @@ -1581,10 +1586,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001251: - version "1.0.30001251" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" - integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001259: + version "1.0.30001259" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001259.tgz#ae21691d3da9c4be6144403ac40f71d9f6efd790" + integrity sha512-V7mQTFhjITxuk9zBpI6nYsiTXhcPe05l+364nZjK7MFK/E7ibvYBSAXr4YcA6oPR8j3ZLM/LN+lUqUVAQEUZFg== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1608,15 +1613,15 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -check-dts@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.5.5.tgz#53be0c5784e225f29006c357aa265c86f0f06fd8" - integrity sha512-jOTEnbuyNeRE4ljNJeFuqh5R0gV6vbQH/U29gO0+dy92x88TwNyPozckObgZhaB5UCYXTvrx64nLQWJGpfIwcQ== +check-dts@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.5.6.tgz#b77dd0cee7a960594e8afc2ddeeaf6cd2f1121f3" + integrity sha512-XG3LVaofida0uw0iSirzjPBOmLq2uAPbyehW/TK0pJVREk/1nJeCw7dInFEtQIem2Ahx85S0TYyxVripJfDQsQ== dependencies: - colorette "^1.2.2" globby "^11.0.4" - mico-spinner "^1.1.1" - typescript "^4.3.5" + mico-spinner "^1.2.2" + nanocolors "^0.1.0" + typescript "^4.4.3" vfile-location "^4.0.1" chokidar@^2.1.8: @@ -1788,10 +1793,10 @@ colord@^2.0.1, colord@^2.6: resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== -colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" - integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== +colorette@^1.2.2, colorette@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== combined-stream@^1.0.8: version "1.0.8" @@ -1815,7 +1820,7 @@ commander@^6.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.1.0, commander@^7.2.0: +commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -1887,9 +1892,9 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^6.0.0: version "6.0.0" @@ -1903,9 +1908,9 @@ cosmiconfig@^6.0.0: yaml "^1.7.2" cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -1976,9 +1981,9 @@ css-color-names@^1.0.1: integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== css-declaration-sorter@^6.0.3: - version "6.1.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz#77b32b644ba374bc562c0fc6f4fdaba4dfb0b749" - integrity sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q== + version "6.1.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" + integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== dependencies: timsort "^0.3.0" @@ -2009,7 +2014,7 @@ css-select@^4.1.3: domutils "^2.6.0" nth-check "^2.0.0" -css-tree@^1.1.2: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -2152,9 +2157,9 @@ dedent@^0.7.0: integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: version "4.2.2" @@ -2270,16 +2275,16 @@ domexception@^2.0.1: webidl-conversions "^5.0.0" domhandler@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" - integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== dependencies: domelementtype "^2.2.0" domutils@^2.6.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" - integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" @@ -2300,10 +2305,10 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -electron-to-chromium@^1.3.811: - version "1.3.813" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.813.tgz#751a007d71c00faed8b5e9edaf3634c14b9c5a1f" - integrity sha512-YcSRImHt6JZZ2sSuQ4Bzajtk98igQ0iKkksqlzZLzbh4p0OIyJRSvUbsgqfcR8txdfsoYCc4ym306t4p2kP/aw== +electron-to-chromium@^1.3.846: + version "1.3.846" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.846.tgz#a55fd59613dbcaed609e965e3e88f42b08c401d3" + integrity sha512-2jtSwgyiRzybHRxrc2nKI+39wH3AwQgn+sogQ+q814gv8hIFwrcZbV07Ea9f8AmK0ufPVZUvvAG1uZJ+obV4Jw== elliptic@^6.5.3: version "6.5.4" @@ -2381,21 +2386,22 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" - integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== + version "1.18.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456" + integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" has "^1.0.3" has-symbols "^1.0.2" internal-slot "^1.0.3" - is-callable "^1.2.3" + is-callable "^1.2.4" is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" + is-regex "^1.1.4" + is-string "^1.0.7" object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" @@ -2478,10 +2484,10 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.24.1: - version "2.24.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.1.tgz#64aba8b567a1ba9921d5465586e86c491b8e2135" - integrity sha512-KSFWhNxPH8OGJwpRJJs+Z7I0a13E2iFQZJIvSnCu6KUs4qmgAm3xN9GYBCSoiGWmwA7gERZPXqYQjcoCROnYhQ== +eslint-plugin-import@^2.24.2: + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== dependencies: array-includes "^3.1.3" array.prototype.flat "^1.2.4" @@ -2497,12 +2503,12 @@ eslint-plugin-import@^2.24.1: pkg-up "^2.0.0" read-pkg-up "^3.0.0" resolve "^1.20.0" - tsconfig-paths "^3.10.1" + tsconfig-paths "^3.11.0" -eslint-plugin-jest@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz#fa4b614dbd46a98b652d830377971f097bda9262" - integrity sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg== +eslint-plugin-jest@^24.4.2: + version "24.4.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.4.2.tgz#9e8cf05ee6a0e3025e6149df2f36950abfa8d5bf" + integrity sha512-jNMnqwX75z0RXRMXkxwb/+9ylKJYJLJ8nT8nBT0XFM5qx4IQGxP4edMawa0qGkSbHae0BDPBmi8I2QF0/F04XQ== dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" @@ -2537,10 +2543,10 @@ eslint-plugin-security@^1.4.0: dependencies: safe-regex "^1.1.0" -eslint-plugin-unicorn@^35.0.0: - version "35.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-35.0.0.tgz#40797793d4f645bafaaa7a1396b8f4ca7b2a7dbd" - integrity sha512-FHsaO68tDPQILfs/mGF8eSISJp8RswR4FpUuBDnueK2wyEHC6zmsc9WxjYyldXoIsBuVmru6jQyFCbCWPoW/KQ== +eslint-plugin-unicorn@^36.0.0: + version "36.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-36.0.0.tgz#db50e1426839e401d33c5a279f49d4a5bbb640d8" + integrity sha512-xxN2vSctGWnDW6aLElm/LKIwcrmk6mdiEcW55Uv5krcrVcIFSWMmEgc/hwpemYfZacKZ5npFERGNz4aThsp1AA== dependencies: "@babel/helper-validator-identifier" "^7.14.9" ci-info "^3.2.0" @@ -2741,16 +2747,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" - integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== +expect@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.1.tgz#5f882b308716618613f0106a488b46c303908157" + integrity sha512-ekOA2mBtT2phxcoPVHCXIzbJxCvRXhx2fr7m28IgGdZxUOh8UvxvoRz1FcPlfgZMpE92biHB6woIcAKXqR28hA== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" ansi-styles "^5.0.0" jest-get-type "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" + jest-matcher-utils "^27.2.0" + jest-message-util "^27.2.0" jest-regex-util "^27.0.6" extend-shallow@^2.0.1: @@ -2814,9 +2820,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -3041,6 +3047,14 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3078,7 +3092,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.10.0, globals@^13.6.0, globals@^13.9.0: +globals@^13.11.0, globals@^13.6.0, globals@^13.9.0: version "13.11.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== @@ -3409,7 +3423,7 @@ is-builtin-module@^3.1.0: dependencies: builtin-modules "^3.0.0" -is-callable@^1.1.4, is-callable@^1.2.3: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== @@ -3549,7 +3563,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.3: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -3572,7 +3586,7 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5, is-string@^1.0.6: +is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== @@ -3674,94 +3688,94 @@ isutf8@^2.1.0: resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== -jest-changed-files@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" - integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== +jest-changed-files@^27.1.1: + version "27.1.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.1.1.tgz#9b3f67a34cc58e3e811e2e1e21529837653e4200" + integrity sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" - integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== +jest-circus@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.1.tgz#c5166052b328c0df932cdaf89f5982085e7b4812" + integrity sha512-9q/8X8DgJmW8IqXsJNnS2E28iarx990hf6D+frS3P0lB+avhFDD33alLwZzKgm45u0wvEi6iFh43WjNbp5fhjw== dependencies: - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^27.2.0" + "@jest/test-result" "^27.2.0" + "@jest/types" "^27.1.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.0.6" + expect "^27.2.1" is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" + jest-each "^27.2.0" + jest-matcher-utils "^27.2.0" + jest-message-util "^27.2.0" + jest-runtime "^27.2.1" + jest-snapshot "^27.2.1" + jest-util "^27.2.0" + pretty-format "^27.2.0" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" - integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== +jest-cli@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.1.tgz#031e887245945864cc6ed8605c939f1937858c09" + integrity sha512-IfxuGkBZS/ogY7yFvvD1dFidzQRXlSBHtUZQ3UTIHydzNMF4/ZRTdGFso6HkbCkemwLh4hnNybONexEqWmYwjw== dependencies: - "@jest/core" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/core" "^27.2.1" + "@jest/test-result" "^27.2.0" + "@jest/types" "^27.1.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-config "^27.2.1" + jest-util "^27.2.0" + jest-validate "^27.2.0" prompts "^2.0.1" yargs "^16.0.3" -jest-config@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" - integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== +jest-config@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.1.tgz#2e727e023fc4b77a9f067a40c5448a939aa8386b" + integrity sha512-BAOemP8udmFw9nkgaLAac7vXORdvrt4yrJWoh7uYb0nPZeSsu0kGwJU18SwtY4paq9fed5OgAssC3A+Bf4WMQA== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.0.6" - "@jest/types" "^27.0.6" - babel-jest "^27.0.6" + "@jest/test-sequencer" "^27.2.1" + "@jest/types" "^27.1.1" + babel-jest "^27.2.1" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" is-ci "^3.0.0" - jest-circus "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" + jest-circus "^27.2.1" + jest-environment-jsdom "^27.2.0" + jest-environment-node "^27.2.0" jest-get-type "^27.0.6" - jest-jasmine2 "^27.0.6" + jest-jasmine2 "^27.2.1" jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runner "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-resolve "^27.2.0" + jest-runner "^27.2.1" + jest-util "^27.2.0" + jest-validate "^27.2.0" micromatch "^4.0.4" - pretty-format "^27.0.6" + pretty-format "^27.2.0" -jest-diff@^27.0.0, jest-diff@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" - integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== +jest-diff@^27.0.0, jest-diff@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.0.tgz#bda761c360f751bab1e7a2fe2fc2b0a35ce8518c" + integrity sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw== dependencies: chalk "^4.0.0" diff-sequences "^27.0.6" jest-get-type "^27.0.6" - pretty-format "^27.0.6" + pretty-format "^27.2.0" jest-docblock@^27.0.6: version "27.0.6" @@ -3770,53 +3784,53 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" -jest-each@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" - integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== +jest-each@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.0.tgz#4c531c7223de289429fc7b2473a86e653c86d61f" + integrity sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" chalk "^4.0.0" jest-get-type "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" + jest-util "^27.2.0" + pretty-format "^27.2.0" -jest-environment-jsdom@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" - integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== +jest-environment-jsdom@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.0.tgz#c654dfae50ca2272c2a2e2bb95ff0af298283a3c" + integrity sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA== dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^27.2.0" + "@jest/fake-timers" "^27.2.0" + "@jest/types" "^27.1.1" "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-mock "^27.1.1" + jest-util "^27.2.0" jsdom "^16.6.0" -jest-environment-node@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" - integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== +jest-environment-node@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.0.tgz#73ef2151cb62206669becb94cd84f33276252de5" + integrity sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg== dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^27.2.0" + "@jest/fake-timers" "^27.2.0" + "@jest/types" "^27.1.1" "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-mock "^27.1.1" + jest-util "^27.2.0" jest-get-type@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== -jest-haste-map@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" - integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== +jest-haste-map@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.0.tgz#703b3a473e3f2e27d75ab07864ffd7bbaad0d75e" + integrity sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -3824,76 +3838,76 @@ jest-haste-map@^27.0.6: graceful-fs "^4.2.4" jest-regex-util "^27.0.6" jest-serializer "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-util "^27.2.0" + jest-worker "^27.2.0" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" - integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== +jest-jasmine2@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.1.tgz#30ee71f38670a621ecf3b6dcb89875933f780de6" + integrity sha512-3vytj3+S49+XYsxGJyjlchDo4xblYzjDY4XK7pV2IAdspbMFOpmeNMOeDonYuvlbUtcV8yrFLA6XtliXapDmMA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.0.6" + "@jest/environment" "^27.2.0" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^27.2.0" + "@jest/types" "^27.1.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.0.6" + expect "^27.2.1" is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" + jest-each "^27.2.0" + jest-matcher-utils "^27.2.0" + jest-message-util "^27.2.0" + jest-runtime "^27.2.1" + jest-snapshot "^27.2.1" + jest-util "^27.2.0" + pretty-format "^27.2.0" throat "^6.0.1" -jest-leak-detector@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" - integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== +jest-leak-detector@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.0.tgz#9a7ca2dad1a21c4e49ad2a8ad7f1214ffdb86a28" + integrity sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA== dependencies: jest-get-type "^27.0.6" - pretty-format "^27.0.6" + pretty-format "^27.2.0" -jest-matcher-utils@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" - integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== +jest-matcher-utils@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.0.tgz#b4d224ab88655d5fab64b96b989ac349e2f5da43" + integrity sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw== dependencies: chalk "^4.0.0" - jest-diff "^27.0.6" + jest-diff "^27.2.0" jest-get-type "^27.0.6" - pretty-format "^27.0.6" + pretty-format "^27.2.0" -jest-message-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" - integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== +jest-message-util@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.0.tgz#2f65c71df55267208686b1d7514e18106c91ceaf" + integrity sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.4" - pretty-format "^27.0.6" + pretty-format "^27.2.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" - integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== +jest-mock@^27.1.1: + version "27.1.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.1.1.tgz#c7a2e81301fdcf3dab114931d23d89ec9d0c3a82" + integrity sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -3906,86 +3920,88 @@ jest-regex-util@^27.0.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" - integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== +jest-resolve-dependencies@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.1.tgz#239be969ece749d4dc2e1efcf3d2b86c99525c2e" + integrity sha512-9bKEwmz4YshGPjGZAVZOVw6jt7pq2/FjWJmyhnWhvDuiRCHVZBcJhycinX+e/EJ7jafsq26bTpzBIQas3xql1g== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" jest-regex-util "^27.0.6" - jest-snapshot "^27.0.6" + jest-snapshot "^27.2.1" -jest-resolve@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" - integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== +jest-resolve@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.0.tgz#f5d053693ab3806ec2f778e6df8b0aa4cfaef95f" + integrity sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" chalk "^4.0.0" escalade "^3.1.1" graceful-fs "^4.2.4" + jest-haste-map "^27.2.0" jest-pnp-resolver "^1.2.2" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-util "^27.2.0" + jest-validate "^27.2.0" resolve "^1.20.0" slash "^3.0.0" -jest-runner@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" - integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== - dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" +jest-runner@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.1.tgz#3443b1fc08b8a50f305dfc2d41dd2badf335843b" + integrity sha512-USHitkUUzcB3Y5mRdzlp+KHgRRR2VsXDq5OeATuDmq1qXfT/RwwnQykUhn+KVx3FotxK3pID74UY7o6HYIR8vA== + dependencies: + "@jest/console" "^27.2.0" + "@jest/environment" "^27.2.0" + "@jest/test-result" "^27.2.0" + "@jest/transform" "^27.2.1" + "@jest/types" "^27.1.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" jest-docblock "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-haste-map "^27.0.6" - jest-leak-detector "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runtime "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-environment-jsdom "^27.2.0" + jest-environment-node "^27.2.0" + jest-haste-map "^27.2.0" + jest-leak-detector "^27.2.0" + jest-message-util "^27.2.0" + jest-resolve "^27.2.0" + jest-runtime "^27.2.1" + jest-util "^27.2.0" + jest-worker "^27.2.0" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" - integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== +jest-runtime@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.1.tgz#db506f679356f5b94b7be20e770f2541b7c2b339" + integrity sha512-QJNnwL4iteDE/Jq4TfQK7AjhPoUZflBKTtUIkRnFYFkTAZTP/o8k7ekaROiVjmo+NYop5+DQPqX6pz4vWbZSOQ== dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/globals" "^27.0.6" + "@jest/console" "^27.2.0" + "@jest/environment" "^27.2.0" + "@jest/fake-timers" "^27.2.0" + "@jest/globals" "^27.2.1" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^27.2.0" + "@jest/transform" "^27.2.1" + "@jest/types" "^27.1.1" "@types/yargs" "^16.0.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" + execa "^5.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" + jest-haste-map "^27.2.0" + jest-message-util "^27.2.0" + jest-mock "^27.1.1" jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-resolve "^27.2.0" + jest-snapshot "^27.2.1" + jest-util "^27.2.0" + jest-validate "^27.2.0" slash "^3.0.0" strip-bom "^4.0.0" yargs "^16.0.3" @@ -3998,10 +4014,10 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" - integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== +jest-snapshot@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.1.tgz#385accf3bb71ac84e9a6bda4fc9bb458d53abb35" + integrity sha512-8CTg2YrgZuQbPHW7G0YvLTj4yTRXLmSeEO+ka3eC5lbu5dsTRyoDNS1L7x7EFUTyYQhFH9HQG1/TNlbUgR9Lug== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -4009,79 +4025,79 @@ jest-snapshot@^27.0.6: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/transform" "^27.2.1" + "@jest/types" "^27.1.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.0.6" + expect "^27.2.1" graceful-fs "^4.2.4" - jest-diff "^27.0.6" + jest-diff "^27.2.0" jest-get-type "^27.0.6" - jest-haste-map "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" + jest-haste-map "^27.2.0" + jest-matcher-utils "^27.2.0" + jest-message-util "^27.2.0" + jest-resolve "^27.2.0" + jest-util "^27.2.0" natural-compare "^1.4.0" - pretty-format "^27.0.6" + pretty-format "^27.2.0" semver "^7.3.2" -jest-util@^27.0.0, jest-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" - integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== +jest-util@^27.0.0, jest-util@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.0.tgz#bfccb85cfafae752257319e825a5b8d4ada470dc" + integrity sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^3.0.0" picomatch "^2.2.3" -jest-validate@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" - integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== +jest-validate@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.0.tgz#b7535f12d95dd3b4382831f4047384ca098642ab" + integrity sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^27.0.6" leven "^3.1.0" - pretty-format "^27.0.6" + pretty-format "^27.2.0" -jest-watcher@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" - integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== +jest-watcher@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.0.tgz#dc2eef4c13c6d41cebf3f1fc5f900a54b51c2ea0" + integrity sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg== dependencies: - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^27.2.0" + "@jest/types" "^27.1.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.0.6" + jest-util "^27.2.0" string-length "^4.0.1" -jest-worker@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== +jest-worker@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0" + integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" - integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== +jest@^27.2.1: + version "27.2.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.2.1.tgz#9263102056fe152fd2478d181cf9bbbd2a6a8da4" + integrity sha512-0MyvNS7J1HbkeotYaqKNGioN+p1/AAPtI1Z8iwMtCBE+PwBT+M4l25D9Pve8/KdhktYLgZaGyyj9CoDytD+R2Q== dependencies: - "@jest/core" "^27.0.6" + "@jest/core" "^27.2.1" import-local "^3.0.2" - jest-cli "^27.0.6" + jest-cli "^27.2.1" js-tokens@^4.0.0: version "4.0.0" @@ -4159,7 +4175,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.x, json5@^2.1.2, json5@^2.2.0: +json5@2.x, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -4278,12 +4294,12 @@ lint-staged@^11.1.2: stringify-object "^3.3.0" listr2@^3.8.2: - version "3.11.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" - integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== + version "3.12.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.1.tgz#75e515b86c66b60baf253542cc0dced6b60fedaf" + integrity sha512-oB1DlXlCzGPbvWhqYBZUQEPJKqsmebQWofXG6Mpbe3uIvoNl8mctBEojyF13ZyqwQ91clCWXpwsWp+t98K4FOQ== dependencies: cli-truncate "^2.1.0" - colorette "^1.2.2" + colorette "^1.4.0" log-update "^4.0.0" p-map "^4.0.0" rxjs "^6.6.7" @@ -4503,7 +4519,7 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mico-spinner@^1.1.1, mico-spinner@^1.2.2: +mico-spinner@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.2.2.tgz#0f00cbf45c81b58fbd7d0a7bb2dea8546867d413" integrity sha512-jIsOIIk5xa+TmZJU2mPVTEk1AC7aKnrj8UJR58cTiK8msNWYvPuQxPx0ojNbtVOut/TjTgGkVLrEt1jsrceYfA== @@ -4662,10 +4678,10 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanocolors@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.1.tgz#1b148b06c6279084709675fb3d699e0cdc668114" - integrity sha512-9XCSSmaAkJVops0tOTkt1lUXO8iO7vTYr1X45I8kCbgP2cMS9RvPGVnp/Ou+ISsm9JhKpKCON7zwOFyWcWrzhA== +nanocolors@^0.1.0, nanocolors@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.5.tgz#b756736ad3e35f9e325f0cf319206f74cd2dafed" + integrity sha512-8qaMI2gVxDmSUgoSXwWwkDDKxVePjhYaPIoy0e1xRMP52EAQINxGJ04GfyUPs+Z2g83RPwuHx+mBiaUFJGfTCA== nanodelay@^1.0.8: version "1.0.8" @@ -4705,9 +4721,11 @@ neo-async@^2.5.0, neo-async@^2.6.1: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-fetch@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + version "2.6.4" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.4.tgz#7f1d13b8f9ff0c1a994dc6f73c69f7d652c7ace2" + integrity sha512-aD1fO+xtLiSCc9vuD+sYMxpIuQyhHscGSkBEo2o5LTV/3bTEAYvdUii29n8LlO5uLCmWdGP7uVUVXFo5SRdkLA== + dependencies: + whatwg-url "^5.0.0" node-int64@^0.4.0: version "0.4.0" @@ -4748,10 +4766,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.75: - version "1.1.75" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" - integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== +node-releases@^1.1.76: + version "1.1.76" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e" + integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -5365,13 +5383,13 @@ postcss-ordered-values@^5.0.2: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-parser-tests@^8.3.5: - version "8.3.5" - resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.5.tgz#375ee766d7d171b833d7c35e40e9df105f0ecc75" - integrity sha512-7hrbR2ON2PA51+UUhbPJEI2SJeKbyoCQFMxC90IhxiilMk+MnVHdeNFAZ99rtiUhggmnfXbGNh27rkq7sPoC9A== +postcss-parser-tests@^8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.6.tgz#59f81ac983e4d1568dc0c767c981ce0f7d7362e0" + integrity sha512-8EoUK+bz0lUZvpajGsNMhjbFKSgo38BpqCaKywHxGHkpPN7jlaNni0XiXYzkcHP5cgohniZnN7dXRamQi/lMRw== dependencies: ci-job-number "^1.2.2" - colorette "^1.2.1" + nanocolors "^0.1.5" spinnies "^0.5.1" postcss-reduce-initial@^5.0.1: @@ -5439,17 +5457,17 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== +prettier@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" + integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== -pretty-format@^27.0.0, pretty-format@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" - integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== +pretty-format@^27.0.0, pretty-format@^27.2.0: + version "27.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" + integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.1" ansi-regex "^5.0.0" ansi-styles "^5.0.0" react-is "^17.0.1" @@ -5662,9 +5680,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp-tree@^0.1.23, regexp-tree@~0.1.1: - version "0.1.23" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.23.tgz#8a8ce1cc5e971acef62213a7ecdb1f6e18a1f1b2" - integrity sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw== + version "0.1.24" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" + integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== regexpp@^3.0.0, regexpp@^3.1.0: version "3.2.0" @@ -5925,9 +5943,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7" + integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q== simple-git-hooks@^2.6.1: version "2.6.1" @@ -5935,11 +5953,11 @@ simple-git-hooks@^2.6.1: integrity sha512-nvqaNfgvcjN3cGSYJSdjwB+tP8YKRCyvuUvQ24luIjIpGhUCPpZDTJ+p+hcJiwc0lZlTCl0NayfBVDoIMG7Jpg== sirv@^1.0.7: - version "1.0.14" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.14.tgz#b826343f573e12653c5b3c3080a3a2a6a06595cd" - integrity sha512-czTFDFjK9lXj0u9mJ3OmJoXFztoilYS+NdRPcJoT182w44wSEkHSiO7A2517GLJ8wKM4GjCm2OXE66Dhngbzjg== + version "1.0.17" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.17.tgz#86e2c63c612da5a1dace1c16c46f524aaa26ac45" + integrity sha512-qx9go5yraB7ekT7bCMqUHJ5jEaOC/GXBxUWv+jeWnb7WzHUFdcQPGWk7YmAwFBaQBrogpuSqd/azbC2lZRqqmw== dependencies: - "@polka/url" "^1.0.0-next.17" + "@polka/url" "^1.0.0-next.20" mime "^2.3.1" totalist "^1.0.0" @@ -5948,18 +5966,18 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.3.tgz#de4d4e9366274bd7987673ae76d51af02f57089b" - integrity sha512-522c33FTs09sDCN3SUjtxF3Jg361O8Xm1Rh9MUuGGVwY7XGvroE/vL20+//qGltUprGzYQONBbzy9TTdOJWgbw== +size-limit@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.4.tgz#8223efa9dbf0e3dae2dc9c60b1558b5d2a0f820a" + integrity sha512-xAe8sZ7MZe48glBetVFG3DlfMNXIS2V/PQsy9RPj8PRBCvIg5ESLFZQxJnxf7jsp47sKBUO+XVvablL3S4szog== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" - colorette "^1.3.0" globby "^11.0.4" lilconfig "^2.0.3" mico-spinner "^1.2.2" + nanocolors "^0.1.0" slash@^3.0.0: version "3.0.0" @@ -6036,9 +6054,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.6, source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + version "0.5.20" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -6123,9 +6141,9 @@ stable@^0.1.8: integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== stack-utils@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" - integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== dependencies: escape-string-regexp "^2.0.0" @@ -6310,15 +6328,15 @@ supports-hyperlinks@^2.0.0: supports-color "^7.0.0" svgo@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.4.0.tgz#0c42653101fd668692c0f69b55b8d7b182ef422b" - integrity sha512-W25S1UUm9Lm9VnE0TvCzL7aso/NCzDEaXLaElCUO/KaVitw0+IBicSVfM1L1c0YHK5TOFh73yQ2naCpVHEQ/OQ== + version "2.6.1" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.6.1.tgz#60b613937e0081028cffc2369090e366b08f1f0e" + integrity sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q== dependencies: - "@trysound/sax" "0.1.1" - colorette "^1.2.2" - commander "^7.1.0" + "@trysound/sax" "0.2.0" + colorette "^1.4.0" + commander "^7.2.0" css-select "^4.1.3" - css-tree "^1.1.2" + css-tree "^1.1.3" csso "^4.2.0" stable "^0.1.8" @@ -6488,6 +6506,11 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + ts-jest@^27.0.5: version "27.0.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" @@ -6507,12 +6530,13 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tsconfig-paths@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7" - integrity sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q== +tsconfig-paths@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== dependencies: - json5 "^2.2.0" + "@types/json5" "^0.0.29" + json5 "^1.0.1" minimist "^1.2.0" strip-bom "^3.0.0" @@ -6584,10 +6608,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" + integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -6804,6 +6828,11 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -6878,6 +6907,14 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" @@ -6951,9 +6988,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.3.1, ws@^7.4.6: - version "7.5.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + version "7.5.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" + integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== xml-name-validator@^3.0.0: version "3.0.0" From d6a194df25d973457d8cb0d02860a72dc03a02ce Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Sep 2021 07:54:06 +0200 Subject: [PATCH 2337/3047] Release 8.3.7 version --- CHANGELOG.md | 5 +++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c90fb4bd..1ba7c43d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.7 +* Replaced `colorette` to `nanocolors`. +* Added bug field to `package.json` (by Christian Oliff). +* Improved docs (by Paul Shryock). + ## 8.3.6 * Fixed column in `missed semicolon` error (by @Gusted). diff --git a/lib/processor.js b/lib/processor.js index 74bf89229..f86213042 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.6' + this.version = '8.3.7' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 2347e5421..f48d9d961 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.6", + "version": "8.3.7", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From d1ba5f95fb64d194ba5bf92074777c9803e73d78 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Sep 2021 08:02:22 +0200 Subject: [PATCH 2338/3047] Fix types --- test/browser.test.ts | 14 ++++++++------ test/container.test.ts | 2 +- test/css-syntax-error.test.ts | 18 ++++++++++++------ test/parse.test.ts | 6 +++--- test/processor.test.ts | 13 +++++++------ test/visitor.test.ts | 14 +++++++------- 6 files changed, 38 insertions(+), 29 deletions(-) diff --git a/test/browser.test.ts b/test/browser.test.ts index c586a7f36..0c6842816 100644 --- a/test/browser.test.ts +++ b/test/browser.test.ts @@ -1,6 +1,8 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import { bold, red, gray, yellow } from 'nanocolors' +import CssSyntaxError from '../lib/css-syntax-error.js' + beforeEach(() => { jest.resetModules() jest.doMock('fs', () => ({})) @@ -10,17 +12,17 @@ beforeEach(() => { it('shows code with colors', () => { let postcss = require('../lib/postcss.js') - let error + let error: CssSyntaxError | undefined try { postcss.parse('a{') } catch (e) { - if (e.name === 'CssSyntaxError') { + if (e instanceof CssSyntaxError) { error = e } else { throw e } } - expect(error.showSourceCode(true)).toEqual( + expect(error?.showSourceCode(true)).toEqual( bold(red('>')) + gray(' 1 | ') + 'a' + @@ -34,17 +36,17 @@ it('shows code with colors', () => { it('shows code without colors', () => { let postcss = require('../lib/postcss.js') - let error + let error: CssSyntaxError | undefined try { postcss.parse('a{') } catch (e) { - if (e.name === 'CssSyntaxError') { + if (e instanceof CssSyntaxError) { error = e } else { throw e } } - expect(error.showSourceCode(false)).toEqual('> 1 | a{\n' + ' | ^') + expect(error?.showSourceCode(false)).toEqual('> 1 | a{\n' + ' | ^') }) it('generates source map without fs', () => { diff --git a/test/container.test.ts b/test/container.test.ts index ae09699c7..7e24017db 100644 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -200,7 +200,7 @@ it('walk() adds CSS position to error stack', () => { let error = new Error('T') error.stack = 'Error: T\n at b (b.js:2:4)\n at a (a.js:2:1)' let root = parse(example, { from: '/c.css' }) - let catched + let catched: any try { root.walk(() => { throw error diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 4bafb4608..27abfb129 100644 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -11,12 +11,19 @@ import postcss, { Rule } from '../lib/postcss.js' +function isSyntaxError(e: unknown): e is CssSyntaxError { + return e instanceof Error && e.name === 'CssSyntaxError' +} + async function catchError(cb: () => Promise): Promise { try { await cb() } catch (e) { - if (e.name !== 'CssSyntaxError') throw e - return e + if (isSyntaxError(e)) { + return e + } else { + throw e + } } throw new Error('Error was not thrown') } @@ -25,17 +32,16 @@ function parseError( css: string, opts?: Pick ): CssSyntaxError { - let error try { postcss.parse(css, opts) } catch (e) { - if (e.name === 'CssSyntaxError') { - error = e + if (isSyntaxError(e)) { + return e } else { throw e } } - return error + throw new Error('Error was not thrown') } it('saves source', () => { diff --git a/test/parse.test.ts b/test/parse.test.ts index c2455f723..19ccd07e7 100644 --- a/test/parse.test.ts +++ b/test/parse.test.ts @@ -177,7 +177,7 @@ it('throws on just colon', () => { }) it('does not suggest different parsers for CSS', () => { - let error + let error: any try { parse('a { one:: 1 }', { from: 'app.css' }) } catch (e) { @@ -205,7 +205,7 @@ it('suggests postcss-less for Less sources', () => { }) it('should give the correct column of missed semicolon with !important', () => { - let error + let error: any try { parse('a { \n color: red !important\n background-color: black;\n}') } catch (e) { @@ -215,7 +215,7 @@ it('should give the correct column of missed semicolon with !important', () => { }) it('should give the correct column of missed semicolon without !important', () => { - let error + let error: any try { parse('a { \n color: red\n background-color: black;\n}') } catch (e) { diff --git a/test/processor.test.ts b/test/processor.test.ts index ff06c1f79..06eafab91 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -12,6 +12,7 @@ import postcss, { Parser, Stringifier } from '../lib/postcss.js' +import CssSyntaxError from '../lib/css-syntax-error.js' import LazyResult from '../lib/lazy-result.js' import Processor from '../lib/processor.js' import Rule from '../lib/rule.js' @@ -36,7 +37,7 @@ async function catchError(cb: () => Promise): Promise { try { await cb() } catch (e) { - return e + if (e instanceof Error) return e } throw new Error('Error was not thrown') } @@ -147,19 +148,19 @@ it('inlines maps from previous result', () => { }) it('throws with file name', () => { - let error + let error: CssSyntaxError | undefined try { new Processor([() => {}]).process('a {', { from: 'a.css' }).css } catch (e) { - if (e.name === 'CssSyntaxError') { + if (e instanceof CssSyntaxError) { error = e } else { throw e } } - expect(error.file).toEqual(pathResolve('a.css')) - expect(error.message).toMatch(/a.css:1:1: Unclosed block$/) + expect(error?.file).toEqual(pathResolve('a.css')) + expect(error?.message).toMatch(/a.css:1:1: Unclosed block$/) }) it('allows to replace Root', () => { @@ -373,7 +374,7 @@ it('remembers errors', async () => { processing.root }).toThrow('test') - let asyncError + let asyncError: any try { await processing } catch (e) { diff --git a/test/visitor.test.ts b/test/visitor.test.ts index 5a45992ac..44e568bd5 100644 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -514,7 +514,7 @@ it('adds plugin to error', async () => { throw rule.error('test') } } - let error + let error: any try { postcss([broken]).process('a{}', { from: 'broken.css' }).css } catch (e) { @@ -533,7 +533,7 @@ it('adds plugin to async error', async () => { throw rule.error('test') } } - let error + let error: any try { await postcss([broken]).process('a{}', { from: 'broken.css' }) } catch (e) { @@ -551,7 +551,7 @@ it('adds sync plugin to async error', async () => { throw rule.error('test') } } - let error + let error: any try { await postcss([broken]).process('a{}', { from: 'broken.css' }) } catch (e) { @@ -569,7 +569,7 @@ it('adds node to error', async () => { throw new Error('test') } } - let error + let error: any try { postcss([broken]).process('a{}', { from: 'broken.css' }).css } catch (e) { @@ -588,7 +588,7 @@ it('adds node to async error', async () => { throw new Error('test') } } - let error + let error: any try { await postcss([broken]).process('a{}', { from: 'broken.css' }) } catch (e) { @@ -604,7 +604,7 @@ it('shows error on sync call async plugins', () => { postcssPlugin: 'asyncPlugin', async Rule() {} } - let error + let error: any try { postcss([asyncPlugin]).process('a{}', { from: 'broken.css' }).css } catch (e) { @@ -1400,7 +1400,7 @@ it('throws error from async OnceExit', async () => { from: 'a.css' }) - let error + let error: any try { await result } catch (e) { From 9a596f74145b508c6723c643c1c66bc3596cca2d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Sep 2021 08:06:21 +0200 Subject: [PATCH 2339/3047] Add missed author to ChangeLog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ba7c43d8..2ca13748b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ This project adheres to [Semantic Versioning](https://semver.org/). ## 8.3.7 * Replaced `colorette` to `nanocolors`. * Added bug field to `package.json` (by Christian Oliff). -* Improved docs (by Paul Shryock). +* Improved docs (by Andrew Bruce and Paul Shryock). ## 8.3.6 * Fixed column in `missed semicolon` error (by @Gusted). From bda43e20bf44d11dc0d9993da762482311404b9f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Sep 2021 08:07:38 +0200 Subject: [PATCH 2340/3047] Fix tests --- test/browser.test.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/browser.test.ts b/test/browser.test.ts index 0c6842816..2e0651688 100644 --- a/test/browser.test.ts +++ b/test/browser.test.ts @@ -3,6 +3,10 @@ import { bold, red, gray, yellow } from 'nanocolors' import CssSyntaxError from '../lib/css-syntax-error.js' +function isSyntaxError(e: unknown): e is CssSyntaxError { + return e instanceof Error && e.name === 'CssSyntaxError' +} + beforeEach(() => { jest.resetModules() jest.doMock('fs', () => ({})) @@ -16,7 +20,7 @@ it('shows code with colors', () => { try { postcss.parse('a{') } catch (e) { - if (e instanceof CssSyntaxError) { + if (isSyntaxError(e)) { error = e } else { throw e @@ -40,7 +44,7 @@ it('shows code without colors', () => { try { postcss.parse('a{') } catch (e) { - if (e instanceof CssSyntaxError) { + if (isSyntaxError(e)) { error = e } else { throw e From f20af5f909639416f8634e9c4d2f078b0e313071 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 22 Sep 2021 08:09:49 +0200 Subject: [PATCH 2341/3047] Reduce size limit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f48d9d961..90e906c67 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "size-limit": [ { "path": "lib/postcss.js", - "limit": "23 KB" + "limit": "22 KB" } ], "jest": { From 0452afa864e9c104e4fe62e536a331407f2b9ea7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Sep 2021 09:27:59 +0200 Subject: [PATCH 2342/3047] Rebase ChangeLog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ca13748b..b5345a407 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -197,6 +197,9 @@ This project adheres to [Semantic Versioning](https://semver.org/). * Removed docs from npm package. * Replaced `chalk` to `colorette`. +## 7.0.37 +* Backport `chalk` to `nanocolors` migration. + ## 7.0.36 * Backport ReDoS vulnerabilities from PostCSS 8. From 7156fbaecc713f0da223a7b54b4b8d60627da076 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Sep 2021 09:28:07 +0200 Subject: [PATCH 2343/3047] Update Nano Colors --- package.json | 2 +- yarn.lock | 113 +++++++++++++++++++++++++++------------------------ 2 files changed, 61 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 90e906c67..93bf0afc9 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanocolors": "^0.1.5", + "nanocolors": "^0.2.2", "nanoid": "^3.1.25", "source-map-js": "^0.6.2" }, diff --git a/yarn.lock b/yarn.lock index 220aa04f1..15bf947d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -720,9 +720,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" - integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.0.tgz#900b13362610ccd3570fb6eefb911a6732973d00" + integrity sha512-WHRsy5nMpjXfU9B0LqOqPT06EI2+8Xv5NERy0pLxJLbU98q7uhcGogQzfX+rXpU7S5mgHsLxHrLCufZcV/P8TQ== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -1080,7 +1080,7 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: +ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -1587,9 +1587,11 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001259: - version "1.0.30001259" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001259.tgz#ae21691d3da9c4be6144403ac40f71d9f6efd790" - integrity sha512-V7mQTFhjITxuk9zBpI6nYsiTXhcPe05l+364nZjK7MFK/E7ibvYBSAXr4YcA6oPR8j3ZLM/LN+lUqUVAQEUZFg== + version "1.0.30001260" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz#e3be3f34ddad735ca4a2736fa9e768ef34316270" + integrity sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg== + dependencies: + nanocolors "^0.1.0" chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1789,11 +1791,11 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colord@^2.0.1, colord@^2.6: - version "2.7.0" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" - integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== + version "2.8.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.8.0.tgz#64fb7aa03de7652b5a39eee50271a104c2783b12" + integrity sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA== -colorette@^1.2.2, colorette@^1.4.0: +colorette@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== @@ -2306,9 +2308,9 @@ duplexify@^3.4.2, duplexify@^3.6.0: stream-shift "^1.0.0" electron-to-chromium@^1.3.846: - version "1.3.846" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.846.tgz#a55fd59613dbcaed609e965e3e88f42b08c401d3" - integrity sha512-2jtSwgyiRzybHRxrc2nKI+39wH3AwQgn+sogQ+q814gv8hIFwrcZbV07Ea9f8AmK0ufPVZUvvAG1uZJ+obV4Jw== + version "1.3.850" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.850.tgz#c56c72abfeab051b4b328beb894461c5912d0456" + integrity sha512-ZzkDcdzePeF4dhoGZQT77V2CyJOpwfTZEOg4h0x6R/jQhGt/rIRpbRyVreWLtD7B/WsVxo91URm2WxMKR9JQZA== elliptic@^6.5.3: version "6.5.4" @@ -3076,9 +3078,9 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: is-glob "^4.0.1" glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3643,9 +3645,9 @@ isobject@^3.0.0, isobject@^3.0.1: integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz#e8900b3ed6069759229cf30f7067388d148aeb5e" + integrity sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ== istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" @@ -4294,9 +4296,9 @@ lint-staged@^11.1.2: stringify-object "^3.3.0" listr2@^3.8.2: - version "3.12.1" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.1.tgz#75e515b86c66b60baf253542cc0dced6b60fedaf" - integrity sha512-oB1DlXlCzGPbvWhqYBZUQEPJKqsmebQWofXG6Mpbe3uIvoNl8mctBEojyF13ZyqwQ91clCWXpwsWp+t98K4FOQ== + version "3.12.2" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.2.tgz#2d55cc627111603ad4768a9e87c9c7bb9b49997e" + integrity sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A== dependencies: cli-truncate "^2.1.0" colorette "^1.4.0" @@ -4520,11 +4522,11 @@ merge2@^1.3.0: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== mico-spinner@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.2.2.tgz#0f00cbf45c81b58fbd7d0a7bb2dea8546867d413" - integrity sha512-jIsOIIk5xa+TmZJU2mPVTEk1AC7aKnrj8UJR58cTiK8msNWYvPuQxPx0ojNbtVOut/TjTgGkVLrEt1jsrceYfA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.3.0.tgz#aa8611aceb551522f5bab7f2895a159ac0c29d6a" + integrity sha512-iwc0mhP+H/qorAKhDsDW40QOb3kKxAIwH1ImoIkFUWP3kT4gn6UZ2gdyT0uNRLrCx7fADY1F7OFBuFM1/wfflQ== dependencies: - colorette "^1.2.2" + nanocolors "^0.1.1" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -4678,17 +4680,22 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanocolors@^0.1.0, nanocolors@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.5.tgz#b756736ad3e35f9e325f0cf319206f74cd2dafed" - integrity sha512-8qaMI2gVxDmSUgoSXwWwkDDKxVePjhYaPIoy0e1xRMP52EAQINxGJ04GfyUPs+Z2g83RPwuHx+mBiaUFJGfTCA== +nanocolors@^0.1.0, nanocolors@^0.1.1, nanocolors@^0.1.12, nanocolors@^0.1.5: + version "0.1.12" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" + integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== + +nanocolors@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.2.tgz#94a4b7e45ecdebdbea7cb0a8349f9447a9677675" + integrity sha512-t4mwdKizEGLFeZzDbr1r6SjwKYZQEB0Z/trGsdAIsw5EadaR010/zvJ0arkw6vznyTevcMi9BtppprJ5aqLXRg== nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== -nanoid@^3.1.23, nanoid@^3.1.25: +nanoid@^3.1.25: version "3.1.25" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== @@ -4721,9 +4728,9 @@ neo-async@^2.5.0, neo-async@^2.6.1: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-fetch@^2.6.0: - version "2.6.4" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.4.tgz#7f1d13b8f9ff0c1a994dc6f73c69f7d652c7ace2" - integrity sha512-aD1fO+xtLiSCc9vuD+sYMxpIuQyhHscGSkBEo2o5LTV/3bTEAYvdUii29n8LlO5uLCmWdGP7uVUVXFo5SRdkLA== + version "2.6.5" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" + integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== dependencies: whatwg-url "^5.0.0" @@ -5439,12 +5446,12 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" - integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + version "8.3.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.7.tgz#ec88563588c8da8e58e7226f7633b51ae221eeda" + integrity sha512-9SaY7nnyQ63/WittqZYAvkkYPyKxchMKH71UDzeTmWuLSvxTRpeEeABZAzlCi55cuGcoFyoV/amX2BdsafQidQ== dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" + nanocolors "^0.1.5" + nanoid "^3.1.25" source-map-js "^0.6.2" prelude-ls@^1.2.1: @@ -6201,13 +6208,13 @@ string-length@^4.0.1: strip-ansi "^6.0.0" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" string.prototype.trimend@^1.0.4: version "1.0.4" @@ -6255,12 +6262,12 @@ strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" @@ -6328,16 +6335,16 @@ supports-hyperlinks@^2.0.0: supports-color "^7.0.0" svgo@^2.3.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.6.1.tgz#60b613937e0081028cffc2369090e366b08f1f0e" - integrity sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q== + version "2.7.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.7.0.tgz#e164cded22f4408fe4978f082be80159caea1e2d" + integrity sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w== dependencies: "@trysound/sax" "0.2.0" - colorette "^1.4.0" commander "^7.2.0" css-select "^4.1.3" css-tree "^1.1.3" csso "^4.2.0" + nanocolors "^0.1.12" stable "^0.1.8" symbol-tree@^3.2.4: From 76867fde3ac44c5c26d369ab9bc4344a26a212a0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Sep 2021 09:32:01 +0200 Subject: [PATCH 2344/3047] Update ChangeLog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5345a407..1042c2a12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -197,6 +197,9 @@ This project adheres to [Semantic Versioning](https://semver.org/). * Removed docs from npm package. * Replaced `chalk` to `colorette`. +## 7.0.38 +* Update `Processor#version`. + ## 7.0.37 * Backport `chalk` to `nanocolors` migration. From e2f59d057f30d419e8fa7fac0095d3a47795714d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 25 Sep 2021 09:33:10 +0200 Subject: [PATCH 2345/3047] Release 8.3.8 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1042c2a12..148108b6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.8 +* Update `nanocolors`. + ## 8.3.7 * Replaced `colorette` to `nanocolors`. * Added bug field to `package.json` (by Christian Oliff). diff --git a/lib/processor.js b/lib/processor.js index f86213042..306cd0eee 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.7' + this.version = '8.3.8' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 93bf0afc9..fb4de64d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.7", + "version": "8.3.8", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 7939103e7a8b03d6319a152d824de307ff6f1196 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 Oct 2021 22:00:11 +0200 Subject: [PATCH 2346/3047] Replace nanocolors with picocolors --- lib/css-syntax-error.js | 5 +++-- lib/terminal-highlight.js | 32 ++++++++++++++++---------------- package.json | 2 +- test/browser.test.ts | 5 +++-- test/css-syntax-error.test.ts | 20 ++++++++++---------- yarn.lock | 10 +++++----- 6 files changed, 38 insertions(+), 36 deletions(-) diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 433d35bfa..3161f21fb 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -1,6 +1,6 @@ 'use strict' -let { red, bold, gray, isColorSupported } = require('nanocolors') +let pico = require('picocolors') let terminalHighlight = require('./terminal-highlight') @@ -44,7 +44,7 @@ class CssSyntaxError extends Error { if (!this.source) return '' let css = this.source - if (color == null) color = isColorSupported + if (color == null) color = pico.isColorSupported if (terminalHighlight) { if (color) css = terminalHighlight(css) } @@ -57,6 +57,7 @@ class CssSyntaxError extends Error { let mark, aside if (color) { + let { bold, red, gray } = pico.createColors(true) mark = text => bold(red(text)) aside = text => gray(text) } else { diff --git a/lib/terminal-highlight.js b/lib/terminal-highlight.js index 37e2e3d22..1f9f19e7a 100644 --- a/lib/terminal-highlight.js +++ b/lib/terminal-highlight.js @@ -1,6 +1,6 @@ 'use strict' -let { cyan, gray, green, yellow, magenta } = require('nanocolors') +let pico = require('picocolors') let tokenizer = require('./tokenize') @@ -11,21 +11,21 @@ function registerInput(dependant) { } const HIGHLIGHT_THEME = { - 'brackets': cyan, - 'at-word': cyan, - 'comment': gray, - 'string': green, - 'class': yellow, - 'hash': magenta, - 'call': cyan, - '(': cyan, - ')': cyan, - '{': yellow, - '}': yellow, - '[': yellow, - ']': yellow, - ':': yellow, - ';': yellow + 'brackets': pico.cyan, + 'at-word': pico.cyan, + 'comment': pico.gray, + 'string': pico.green, + 'class': pico.yellow, + 'hash': pico.magenta, + 'call': pico.cyan, + '(': pico.cyan, + ')': pico.cyan, + '{': pico.yellow, + '}': pico.yellow, + '[': pico.yellow, + ']': pico.yellow, + ':': pico.yellow, + ';': pico.yellow } function getTokenType([type, value], processor) { diff --git a/package.json b/package.json index fb4de64d3..e52d7b419 100644 --- a/package.json +++ b/package.json @@ -67,8 +67,8 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanocolors": "^0.2.2", "nanoid": "^3.1.25", + "picocolors": "^0.2.1", "source-map-js": "^0.6.2" }, "devDependencies": { diff --git a/test/browser.test.ts b/test/browser.test.ts index 2e0651688..c18fe852c 100644 --- a/test/browser.test.ts +++ b/test/browser.test.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -import { bold, red, gray, yellow } from 'nanocolors' +import pico from 'picocolors' import CssSyntaxError from '../lib/css-syntax-error.js' @@ -7,10 +7,11 @@ function isSyntaxError(e: unknown): e is CssSyntaxError { return e instanceof Error && e.name === 'CssSyntaxError' } +let { bold, red, gray, yellow } = pico.createColors(true) + beforeEach(() => { jest.resetModules() jest.doMock('fs', () => ({})) - jest.doMock('nanocolors', () => ({ bold, red, gray, yellow })) }) it('shows code with colors', () => { diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 27abfb129..15118fd32 100644 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -1,4 +1,4 @@ -import { red, bold, magenta, yellow, gray, cyan } from 'nanocolors' +import pico from 'picocolors' import { join, resolve as pathResolve } from 'path' import { pathToFileURL } from 'url' import stripAnsi from 'strip-ansi' @@ -70,19 +70,19 @@ it('has stack trace', () => { it('highlights broken line with colors', () => { expect(parseError('#a .b c() {').showSourceCode(true)).toEqual( - bold(red('>')) + - gray(' 1 | ') + - magenta('#a') + + pico.bold(pico.red('>')) + + pico.gray(' 1 | ') + + pico.magenta('#a') + ' ' + - yellow('.b') + + pico.yellow('.b') + ' ' + - cyan('c') + - cyan('()') + + pico.cyan('c') + + pico.cyan('()') + ' ' + - yellow('{') + + pico.yellow('{') + '\n ' + - gray(' | ') + - bold(red('^')) + pico.gray(' | ') + + pico.bold(pico.red('^')) ) }) diff --git a/yarn.lock b/yarn.lock index 15bf947d4..be13d537f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4685,11 +4685,6 @@ nanocolors@^0.1.0, nanocolors@^0.1.1, nanocolors@^0.1.12, nanocolors@^0.1.5: resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== -nanocolors@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.2.tgz#94a4b7e45ecdebdbea7cb0a8349f9447a9677675" - integrity sha512-t4mwdKizEGLFeZzDbr1r6SjwKYZQEB0Z/trGsdAIsw5EadaR010/zvJ0arkw6vznyTevcMi9BtppprJ5aqLXRg== - nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" @@ -5113,6 +5108,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" From 4b512eb1d29e4ecc71a2652834ae411ce4584605 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 Oct 2021 22:01:22 +0200 Subject: [PATCH 2347/3047] Update dependencies and reduce docs in npm package --- package.json | 23 +- yarn.lock | 1082 +++++++++++++++++++++++++------------------------- 2 files changed, 551 insertions(+), 554 deletions(-) diff --git a/package.json b/package.json index e52d7b419..126e5aa6b 100644 --- a/package.json +++ b/package.json @@ -67,39 +67,39 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.1.25", + "nanoid": "^3.1.28", "picocolors": "^0.2.1", "source-map-js": "^0.6.2" }, "devDependencies": { "@logux/eslint-config": "^45.4.8", - "@size-limit/preset-small-lib": "^5.0.4", + "@size-limit/preset-small-lib": "^5.0.5", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", - "@types/node": "^16.9.6", - "@typescript-eslint/eslint-plugin": "^4.31.2", - "@typescript-eslint/parser": "^4.31.2", + "@types/node": "^16.10.2", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", "check-dts": "^0.5.6", "ci-job-number": "^1.2.2", - "clean-publish": "^2.2.0", + "clean-publish": "^3.0.3", "concat-with-sourcemaps": "^1.1.0", "eslint": "^7.32.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.24.2", - "eslint-plugin-jest": "^24.4.2", + "eslint-plugin-jest": "^24.5.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-security": "^1.4.0", "eslint-plugin-unicorn": "^36.0.0", "fs-extra": "^10.0.0", - "jest": "^27.2.1", - "lint-staged": "^11.1.2", + "jest": "^27.2.4", + "lint-staged": "^11.2.0", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.6", "prettier": "^2.4.1", "simple-git-hooks": "^2.6.1", - "size-limit": "^5.0.4", + "size-limit": "^5.0.5", "strip-ansi": "^6.0.0", "ts-jest": "^27.0.5", "typescript": "^4.4.3", @@ -188,6 +188,9 @@ "docs/api/assets/", "errors.ts" ], + "clean-publish": { + "cleanDocs": true + }, "yaspeller": { "lang": "en", "ignoreCapitalization": true, diff --git a/yarn.lock b/yarn.lock index be13d537f..72dacd87b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -363,94 +363,93 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.0.tgz#57f702837ec52899be58c3794dce5941c77a8b63" - integrity sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw== +"@jest/console@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.4.tgz#2f1a4bf82b9940065d4818fac271def99ec55e5e" + integrity sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.2.0" - jest-util "^27.2.0" + jest-message-util "^27.2.4" + jest-util "^27.2.4" slash "^3.0.0" -"@jest/core@^27.2.1": - version "27.2.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.1.tgz#93dc50e2aaba2c944e5765cf658dcd98d804c970" - integrity sha512-XcGt9UgPyzylThvezwUIMCNVp8xxN78Ic3WwhJZehZt4n2hPHR6Bd85A1nKFZBeqW58Vd+Cx/LaN6YL4n58KlA== +"@jest/core@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.4.tgz#0b932da787d64848eab720dbb88e5b7a3f86e539" + integrity sha512-UNQLyy+rXoojNm2MGlapgzWhZD1CT1zcHZQYeiD0xE7MtJfC19Q6J5D/Lm2l7i4V97T30usKDoEtjI8vKwWcLg== dependencies: - "@jest/console" "^27.2.0" - "@jest/reporters" "^27.2.1" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.1" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.4" + "@jest/reporters" "^27.2.4" + "@jest/test-result" "^27.2.4" + "@jest/transform" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.1.1" - jest-config "^27.2.1" - jest-haste-map "^27.2.0" - jest-message-util "^27.2.0" + jest-changed-files "^27.2.4" + jest-config "^27.2.4" + jest-haste-map "^27.2.4" + jest-message-util "^27.2.4" jest-regex-util "^27.0.6" - jest-resolve "^27.2.0" - jest-resolve-dependencies "^27.2.1" - jest-runner "^27.2.1" - jest-runtime "^27.2.1" - jest-snapshot "^27.2.1" - jest-util "^27.2.0" - jest-validate "^27.2.0" - jest-watcher "^27.2.0" + jest-resolve "^27.2.4" + jest-resolve-dependencies "^27.2.4" + jest-runner "^27.2.4" + jest-runtime "^27.2.4" + jest-snapshot "^27.2.4" + jest-util "^27.2.4" + jest-validate "^27.2.4" + jest-watcher "^27.2.4" micromatch "^4.0.4" - p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.0.tgz#48d1dbfa65f8e4a5a5c6cbeb9c59d1a5c2776f6b" - integrity sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ== +"@jest/environment@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.4.tgz#db3e60f7dd30ab950f6ce2d6d7293ed9a6b7cbcd" + integrity sha512-wkuui5yr3SSQW0XD0Qm3TATUbL/WE3LDEM3ulC+RCQhMf2yxhci8x7svGkZ4ivJ6Pc94oOzpZ6cdHBAMSYd1ew== dependencies: - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/fake-timers" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" - jest-mock "^27.1.1" + jest-mock "^27.2.4" -"@jest/fake-timers@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.0.tgz#560841bc21ae7fbeff0cbff8de8f5cf43ad3561d" - integrity sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w== +"@jest/fake-timers@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.4.tgz#00df08bd60332bd59503cb5b6db21e4903785f86" + integrity sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w== dependencies: - "@jest/types" "^27.1.1" - "@sinonjs/fake-timers" "^7.0.2" + "@jest/types" "^27.2.4" + "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.2.0" - jest-mock "^27.1.1" - jest-util "^27.2.0" + jest-message-util "^27.2.4" + jest-mock "^27.2.4" + jest-util "^27.2.4" -"@jest/globals@^27.2.1": - version "27.2.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.1.tgz#6842c70b6713fbe2fcaf89eac20d77eeeb0e282c" - integrity sha512-4P46Zr4cckSitsWtOMRvgMMn7mOKbBsQdYxHeGSIG3kpI4gNR2vk51balPulZHnBQCQb/XBptprtoSv1REfaew== +"@jest/globals@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.4.tgz#0aeb22b011f8c8c4b8ff3b4dbd1ee0392fe0dd8a" + integrity sha512-DRsRs5dh0i+fA9mGHylTU19+8fhzNJoEzrgsu+zgJoZth3x8/0juCQ8nVVdW1er4Cqifb/ET7/hACYVPD0dBEA== dependencies: - "@jest/environment" "^27.2.0" - "@jest/types" "^27.1.1" - expect "^27.2.1" + "@jest/environment" "^27.2.4" + "@jest/types" "^27.2.4" + expect "^27.2.4" -"@jest/reporters@^27.2.1": - version "27.2.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.1.tgz#2e43361b962e26975d40eafd7b4f14c70b4fe9a0" - integrity sha512-ILqR+bIIBlhaHjDtQR/0Z20YkKAQVM+NVRuJLaWFCoRx/rKQQSxG01ZLiLV0MsA6wkBHf6J9fzFuXp0k5l7epw== +"@jest/reporters@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.4.tgz#1482ff007f2e919d85c54b1563abb8b2ea2d5198" + integrity sha512-LHeSdDnDZkDnJ8kvnjcqV8P1Yv/32yL4d4XfR5gBiy3xGO0onwll1QEbvtW96fIwhx2nejug0GTaEdNDoyr3fQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.1" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.4" + "@jest/test-result" "^27.2.4" + "@jest/transform" "^27.2.4" + "@jest/types" "^27.2.4" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -461,15 +460,15 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.2.0" - jest-resolve "^27.2.0" - jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-haste-map "^27.2.4" + jest-resolve "^27.2.4" + jest-util "^27.2.4" + jest-worker "^27.2.4" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^8.0.0" + v8-to-istanbul "^8.1.0" "@jest/source-map@^27.0.6": version "27.0.6" @@ -480,51 +479,51 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.0.tgz#377b46a41a6415dd4839fd0bed67b89fecea6b20" - integrity sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA== +"@jest/test-result@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.4.tgz#d1ca8298d168f1b0be834bfb543b1ac0294c05d7" + integrity sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ== dependencies: - "@jest/console" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.4" + "@jest/types" "^27.2.4" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.2.1": - version "27.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.1.tgz#1682cd3a16198fa358ff9565b0d2792919f36562" - integrity sha512-fWcEgWQXgvU4DFY5YHfQsGwqfJWyuCUzdOzLZTYtyLB3WK1mFPQGYAszM7mCEZjyVon5XRuCa+2/+hif/uMucQ== +"@jest/test-sequencer@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.4.tgz#df66422a3e9e7440ce8b7498e255fa6b52c0bc03" + integrity sha512-fpk5eknU3/DXE2QCCG1wv/a468+cfPo3Asu6d6yUtM9LOPh709ubZqrhuUOYfM8hXMrIpIdrv1CdCrWWabX0rQ== dependencies: - "@jest/test-result" "^27.2.0" + "@jest/test-result" "^27.2.4" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" - jest-runtime "^27.2.1" + jest-haste-map "^27.2.4" + jest-runtime "^27.2.4" -"@jest/transform@^27.2.1": - version "27.2.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.1.tgz#743443adb84b3b7419951fc702515ce20ba6285e" - integrity sha512-xmB5vh81KK8DiiCMtI5vI59mP+GggNmc9BiN+fg4mKdQHV369+WuZc1Lq2xWFCOCsRPHt24D9h7Idp4YaMB1Ww== +"@jest/transform@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.4.tgz#2fe5b6836895f7a1b8bdec442c51e83943c62733" + integrity sha512-n5FlX2TH0oQGwyVDKPxdJ5nI2sO7TJBFe3u3KaAtt7TOiV4yL+Y+rSFDl+Ic5MpbiA/eqXmLAQxjnBmWgS2rEA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" + jest-haste-map "^27.2.4" jest-regex-util "^27.0.6" - jest-util "^27.2.0" + jest-util "^27.2.4" micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^27.1.1": - version "27.1.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.1.tgz#77a3fc014f906c65752d12123a0134359707c0ad" - integrity sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA== +"@jest/types@^27.2.4": + version "27.2.4" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.4.tgz#2430042a66e00dc5b140c3636f4474d464c21ee8" + integrity sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -561,9 +560,9 @@ fastq "^1.6.0" "@polka/url@^1.0.0-next.20": - version "1.0.0-next.20" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.20.tgz#111b5db0f501aa89b05076fa31f0ea0e0c292cd3" - integrity sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q== + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -572,38 +571,38 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^7.0.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== +"@sinonjs/fake-timers@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz#1c1c9a91419f804e59ae8df316a07dd1c3a76b94" + integrity sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew== dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.4.tgz#d3bb30214218376db12c6fbc93498bcde1a65939" - integrity sha512-NXWk7fkI304TazIzG2d7co2X+XB52pHPr0CEXoj52Dx1olXcQqbx+6cg6im0FzhL91iCp1eAjhfeOq8h5D4B/Q== +"@size-limit/file@5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.5.tgz#fc62708e626e2f154412f65d618937d8a2b081ef" + integrity sha512-lnrQYRmTt0QzV08R9M61q0+EM7Jkcp1qZ/+BG01OOFA0rZtfHt9aKCdvoSEoMrIxK44A9lWHRmyNVnKKDfKbWA== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.4.tgz#5eb19889df8cd9a78a48369dfe2cc9b7e2dc8da6" - integrity sha512-2DRnZUte+WThsE/Lzu3uR7RkmzK/tJcgl2rCIsrfDQ4Kn23uesXVD2y19nWHzpEc4H62bxS13SmkTi84o5mBiQ== +"@size-limit/preset-small-lib@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.5.tgz#0f5eac605f1d3f1b7129a215a2abe11ff47c3cc3" + integrity sha512-BHZwlSEaxHPqOOienQpgoH+ueWYryXiusFpNKRj1Jmyv6/rlOxww1nTCljNhh9+hOKOsahqGbvl43cr8o7NQiQ== dependencies: - "@size-limit/file" "5.0.4" - "@size-limit/webpack" "5.0.4" + "@size-limit/file" "5.0.5" + "@size-limit/webpack" "5.0.5" -"@size-limit/webpack@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.4.tgz#1d3d3d802064aa132b35fc4b55984ef694ff928b" - integrity sha512-wFJ90kwJ60AAZ3Ln4Egc6Tbpl7AcibGJKawHp41HpV2TeJT4IQOsgYXj/QOnVzz75+MKX/aZVa6OIlyWR7KORw== +"@size-limit/webpack@5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.5.tgz#368eb926087120b43592aa97cc69e6bca3c7575c" + integrity sha512-caLXPNj1iRNeBRoycKTLMLRlLTCjIv80VmBTCag5QZMuNNu4g0weoxjnU7Jbf5YneTuXuEhKSjpc95rB4Biq7Q== dependencies: css-loader "^5.2.6" escape-string-regexp "^4.0.0" file-loader "^6.2.0" mkdirp "^1.0.4" - nanoid "^3.1.25" + nanoid "^3.1.28" optimize-css-assets-webpack-plugin "^6.0.1" pnp-webpack-plugin "^1.7.0" style-loader "^2.0.0" @@ -704,10 +703,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^16.9.6": - version "16.9.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04" - integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ== +"@types/node@*", "@types/node@^16.10.2": + version "16.10.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" + integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -720,9 +719,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.0.tgz#900b13362610ccd3570fb6eefb911a6732973d00" - integrity sha512-WHRsy5nMpjXfU9B0LqOqPT06EI2+8Xv5NERy0pLxJLbU98q7uhcGogQzfX+rXpU7S5mgHsLxHrLCufZcV/P8TQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" + integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -746,73 +745,74 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.31.2": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.2.tgz#9f41efaee32cdab7ace94b15bd19b756dd099b0a" - integrity sha512-w63SCQ4bIwWN/+3FxzpnWrDjQRXVEGiTt9tJTRptRXeFvdZc/wLiz3FQUwNQ2CVoRGI6KUWMNUj/pk63noUfcA== +"@typescript-eslint/eslint-plugin@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== dependencies: - "@typescript-eslint/experimental-utils" "4.31.2" - "@typescript-eslint/scope-manager" "4.31.2" + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" debug "^4.3.1" functional-red-black-tree "^1.0.1" + ignore "^5.1.8" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.31.2", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.2.tgz#98727a9c1e977dd5d20c8705e69cd3c2a86553fa" - integrity sha512-3tm2T4nyA970yQ6R3JZV9l0yilE2FedYg8dcXrTar34zC9r6JB7WyBQbpIVongKPlhEMjhQ01qkwrzWy38Bk1Q== +"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.31.2" - "@typescript-eslint/types" "4.31.2" - "@typescript-eslint/typescript-estree" "4.31.2" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.31.2": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.2.tgz#54aa75986e3302d91eff2bbbaa6ecfa8084e9c34" - integrity sha512-EcdO0E7M/sv23S/rLvenHkb58l3XhuSZzKf6DBvLgHqOYdL6YFMYVtreGFWirxaU2mS1GYDby3Lyxco7X5+Vjw== +"@typescript-eslint/parser@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== dependencies: - "@typescript-eslint/scope-manager" "4.31.2" - "@typescript-eslint/types" "4.31.2" - "@typescript-eslint/typescript-estree" "4.31.2" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.31.2": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.2.tgz#1d528cb3ed3bcd88019c20a57c18b897b073923a" - integrity sha512-2JGwudpFoR/3Czq6mPpE8zBPYdHWFGL6lUNIGolbKQeSNv4EAiHaR5GVDQaLA0FwgcdcMtRk+SBJbFGL7+La5w== +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== dependencies: - "@typescript-eslint/types" "4.31.2" - "@typescript-eslint/visitor-keys" "4.31.2" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" -"@typescript-eslint/types@4.31.2": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.2.tgz#2aea7177d6d744521a168ed4668eddbd912dfadf" - integrity sha512-kWiTTBCTKEdBGrZKwFvOlGNcAsKGJSBc8xLvSjSppFO88AqGxGNYtF36EuEYG6XZ9vT0xX8RNiHbQUKglbSi1w== +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/typescript-estree@4.31.2": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.2.tgz#abfd50594d8056b37e7428df3b2d185ef2d0060c" - integrity sha512-ieBq8U9at6PvaC7/Z6oe8D3czeW5d//Fo1xkF/s9394VR0bg/UaMYPdARiWyKX+lLEjY3w/FNZJxitMsiWv+wA== +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== dependencies: - "@typescript-eslint/types" "4.31.2" - "@typescript-eslint/visitor-keys" "4.31.2" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.31.2": - version "4.31.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.2.tgz#7d5b4a4705db7fe59ecffb273c1d082760f635cc" - integrity sha512-PrBId7EQq2Nibns7dd/ch6S6/M4/iwLM9McbgeEbCXfxdwRUNxJ4UNreJ6Gh3fI2GNKNrWnQxKL7oCPmngKBug== +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== dependencies: - "@typescript-eslint/types" "4.31.2" + "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -1080,7 +1080,7 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -1169,13 +1169,13 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" - integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" + integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.19.0" asn1.js@^5.2.0: version "5.4.1" @@ -1220,23 +1220,18 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -babel-jest@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.1.tgz#48edfa5cf8d59ab293da94321a369ccc7b67a4b1" - integrity sha512-kkaekSJHew1zfDW3cA2QiSBPg4uiLpiW0OwJKqFv0r2/mFgym/IBn7hxPntL6FvS66G/ROh+lz4pRiCJAH1/UQ== +babel-jest@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.4.tgz#21ed6729d51bdd75470bbbf3c8b08d86209fb0dc" + integrity sha512-f24OmxyWymk5jfgLdlCMu4fTs4ldxFBIdn5sJdhvGC1m08rSkJ5hYbWkNmfBSvE/DjhCVNSHXepxsI6THGfGsg== dependencies: - "@jest/transform" "^27.2.1" - "@jest/types" "^27.1.1" + "@jest/transform" "^27.2.4" + "@jest/types" "^27.2.4" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" babel-preset-jest "^27.2.0" @@ -1459,15 +1454,15 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.17.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9" - integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ== + version "4.17.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.3.tgz#2844cd6eebe14d12384b0122d217550160d2d624" + integrity sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ== dependencies: - caniuse-lite "^1.0.30001259" - electron-to-chromium "^1.3.846" + caniuse-lite "^1.0.30001264" + electron-to-chromium "^1.3.857" escalade "^3.1.1" - nanocolors "^0.1.5" - node-releases "^1.1.76" + node-releases "^1.1.77" + picocolors "^0.2.1" bs-logger@0.x: version "0.2.6" @@ -1586,12 +1581,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001259: - version "1.0.30001260" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz#e3be3f34ddad735ca4a2736fa9e768ef34316270" - integrity sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg== - dependencies: - nanocolors "^0.1.0" +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001264: + version "1.0.30001264" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001264.tgz#88f625a60efb6724c7c62ac698bc8dbd9757e55b" + integrity sha512-Ftfqqfcs/ePiUmyaySsQ4PUsdcYyXG2rfoBVsk3iY1ahHaJEw65vfb7Suzqm+cEkwwPIv/XWkg27iCpRavH4zA== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1602,7 +1595,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1703,14 +1696,14 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-publish@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-2.2.0.tgz#3d249934128757e457dc060511a056d32487f38d" - integrity sha512-U+/Y5YXbxnqWlh8y/toKSEGbMvIvsgfkfJ7yK0v0uQ1mz07lNNSxceY7XaFweEw8LFQo8Al3H7SuQHXbf5Xw8g== +clean-publish@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.0.3.tgz#d7181d9fd109765226d4174706947759b215f4c7" + integrity sha512-Ly9CrWC4yDgNQF1qaLVVUNLN/VGM2GqJC3itbamP14Ioj4+G3jwFfL2xu6pF2GNvdXEzZZxzUkCV48rbMrUfJA== dependencies: cross-spawn "^7.0.3" - fs-extra "^9.1.0" - lilconfig "^2.0.2" + fs-extra "^10.0.0" + lilconfig "^2.0.3" clean-regexp@^1.0.0: version "1.0.0" @@ -1731,7 +1724,7 @@ cli-cursor@^3.0.0, cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-truncate@^2.1.0: +cli-truncate@2.1.0, cli-truncate@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== @@ -1827,6 +1820,11 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.2.0.tgz#37fe2bde301d87d47a53adeff8b5915db1381ca8" + integrity sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1909,7 +1907,7 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7.0.0: +cosmiconfig@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== @@ -2122,7 +2120,7 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -2307,10 +2305,10 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -electron-to-chromium@^1.3.846: - version "1.3.850" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.850.tgz#c56c72abfeab051b4b328beb894461c5912d0456" - integrity sha512-ZzkDcdzePeF4dhoGZQT77V2CyJOpwfTZEOg4h0x6R/jQhGt/rIRpbRyVreWLtD7B/WsVxo91URm2WxMKR9JQZA== +electron-to-chromium@^1.3.857: + version "1.3.857" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.857.tgz#dcc239ff8a12b6e4b501e6a5ad20fd0d5a3210f9" + integrity sha512-a5kIr2lajm4bJ5E4D3fp8Y/BRB0Dx2VOcCRE5Gtb679mXIME/OFhWler8Gy2ksrf8gFX+EFCSIGA33FB3gqYpg== elliptic@^6.5.3: version "6.5.4" @@ -2387,10 +2385,10 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456" - integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ== +es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -2403,7 +2401,9 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: is-callable "^1.2.4" is-negative-zero "^2.0.1" is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" is-string "^1.0.7" + is-weakref "^1.0.1" object-inspect "^1.11.0" object-keys "^1.1.1" object.assign "^4.1.2" @@ -2507,10 +2507,10 @@ eslint-plugin-import@^2.24.2: resolve "^1.20.0" tsconfig-paths "^3.11.0" -eslint-plugin-jest@^24.4.2: - version "24.4.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.4.2.tgz#9e8cf05ee6a0e3025e6149df2f36950abfa8d5bf" - integrity sha512-jNMnqwX75z0RXRMXkxwb/+9ylKJYJLJ8nT8nBT0XFM5qx4IQGxP4edMawa0qGkSbHae0BDPBmi8I2QF0/F04XQ== +eslint-plugin-jest@^24.5.2: + version "24.5.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.5.2.tgz#f71f98f27fd18b50f55246ca090f36d1730e36a6" + integrity sha512-lrI3sGAyZi513RRmP08sIW241Ti/zMnn/6wbE4ZBhb3M2pJ9ztaZMnSKSKKBUfotVdwqU8W1KtD8ao2/FR8DIg== dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" @@ -2716,7 +2716,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -2749,16 +2749,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.1.tgz#5f882b308716618613f0106a488b46c303908157" - integrity sha512-ekOA2mBtT2phxcoPVHCXIzbJxCvRXhx2fr7m28IgGdZxUOh8UvxvoRz1FcPlfgZMpE92biHB6woIcAKXqR28hA== +expect@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.4.tgz#4debf546050bcdad8914a8c95fec7662e02bf67c" + integrity sha512-gOtuonQ8TCnbNNCSw2fhVzRf8EFYDII4nB5NmG4IEV0rbUnW1I5zXvoTntU4iicB/Uh0oZr20NGlOLdJiwsOZA== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" ansi-styles "^5.0.0" jest-get-type "^27.0.6" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" + jest-matcher-utils "^27.2.4" + jest-message-util "^27.2.4" jest-regex-util "^27.0.6" extend-shallow@^2.0.1: @@ -2967,16 +2967,6 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -3287,7 +3277,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4: +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -3301,9 +3291,9 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" + integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -3438,9 +3428,9 @@ is-ci@^3.0.0: ci-info "^3.1.1" is-core-module@^2.2.0, is-core-module@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" - integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + version "2.7.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" + integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== dependencies: has "^1.0.3" @@ -3518,9 +3508,9 @@ is-glob@^3.1.0: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" @@ -3583,6 +3573,11 @@ is-resolvable@^1.1.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -3607,10 +3602,12 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-weakref@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" + integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + dependencies: + call-bind "^1.0.0" is-windows@^1.0.2: version "1.0.2" @@ -3690,94 +3687,94 @@ isutf8@^2.1.0: resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== -jest-changed-files@^27.1.1: - version "27.1.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.1.1.tgz#9b3f67a34cc58e3e811e2e1e21529837653e4200" - integrity sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA== +jest-changed-files@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.2.4.tgz#d7de46e90e5a599c47e260760f5ab53516e835e6" + integrity sha512-eeO1C1u4ex7pdTroYXezr+rbr957myyVoKGjcY4R1TJi3A+9v+4fu1Iv9J4eLq1bgFyT3O3iRWU9lZsEE7J72Q== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.1.tgz#c5166052b328c0df932cdaf89f5982085e7b4812" - integrity sha512-9q/8X8DgJmW8IqXsJNnS2E28iarx990hf6D+frS3P0lB+avhFDD33alLwZzKgm45u0wvEi6iFh43WjNbp5fhjw== +jest-circus@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.4.tgz#3bd898a29dcaf6a506f3f1b780dff5f67ca83c23" + integrity sha512-TtheheTElrGjlsY9VxkzUU1qwIx05ItIusMVKnvNkMt4o/PeegLRcjq3Db2Jz0GGdBalJdbzLZBgeulZAJxJWA== dependencies: - "@jest/environment" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/environment" "^27.2.4" + "@jest/test-result" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.2.1" + expect "^27.2.4" is-generator-fn "^2.0.0" - jest-each "^27.2.0" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" - jest-runtime "^27.2.1" - jest-snapshot "^27.2.1" - jest-util "^27.2.0" - pretty-format "^27.2.0" + jest-each "^27.2.4" + jest-matcher-utils "^27.2.4" + jest-message-util "^27.2.4" + jest-runtime "^27.2.4" + jest-snapshot "^27.2.4" + jest-util "^27.2.4" + pretty-format "^27.2.4" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.1.tgz#031e887245945864cc6ed8605c939f1937858c09" - integrity sha512-IfxuGkBZS/ogY7yFvvD1dFidzQRXlSBHtUZQ3UTIHydzNMF4/ZRTdGFso6HkbCkemwLh4hnNybONexEqWmYwjw== +jest-cli@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.4.tgz#acda7f367aa6e674723fc1a7334e0ae1799448d2" + integrity sha512-4kpQQkg74HYLaXo3nzwtg4PYxSLgL7puz1LXHj5Tu85KmlIpxQFjRkXlx4V47CYFFIDoyl3rHA/cXOxUWyMpNg== dependencies: - "@jest/core" "^27.2.1" - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/core" "^27.2.4" + "@jest/test-result" "^27.2.4" + "@jest/types" "^27.2.4" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.2.1" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-config "^27.2.4" + jest-util "^27.2.4" + jest-validate "^27.2.4" prompts "^2.0.1" - yargs "^16.0.3" + yargs "^16.2.0" -jest-config@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.1.tgz#2e727e023fc4b77a9f067a40c5448a939aa8386b" - integrity sha512-BAOemP8udmFw9nkgaLAac7vXORdvrt4yrJWoh7uYb0nPZeSsu0kGwJU18SwtY4paq9fed5OgAssC3A+Bf4WMQA== +jest-config@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.4.tgz#0204969f5ae2e5190d47be2c14c04d631b7836e2" + integrity sha512-tWy0UxhdzqiKyp4l5Vq4HxLyD+gH5td+GCF3c22/DJ0bYAOsMo+qi2XtbJI6oYMH5JOJQs9nLW/r34nvFCehjA== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.2.1" - "@jest/types" "^27.1.1" - babel-jest "^27.2.1" + "@jest/test-sequencer" "^27.2.4" + "@jest/types" "^27.2.4" + babel-jest "^27.2.4" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" is-ci "^3.0.0" - jest-circus "^27.2.1" - jest-environment-jsdom "^27.2.0" - jest-environment-node "^27.2.0" + jest-circus "^27.2.4" + jest-environment-jsdom "^27.2.4" + jest-environment-node "^27.2.4" jest-get-type "^27.0.6" - jest-jasmine2 "^27.2.1" + jest-jasmine2 "^27.2.4" jest-regex-util "^27.0.6" - jest-resolve "^27.2.0" - jest-runner "^27.2.1" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-resolve "^27.2.4" + jest-runner "^27.2.4" + jest-util "^27.2.4" + jest-validate "^27.2.4" micromatch "^4.0.4" - pretty-format "^27.2.0" + pretty-format "^27.2.4" -jest-diff@^27.0.0, jest-diff@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.0.tgz#bda761c360f751bab1e7a2fe2fc2b0a35ce8518c" - integrity sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw== +jest-diff@^27.0.0, jest-diff@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.4.tgz#171c51d3d2c105c457100fee6e7bf7cee51c8d8c" + integrity sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg== dependencies: chalk "^4.0.0" diff-sequences "^27.0.6" jest-get-type "^27.0.6" - pretty-format "^27.2.0" + pretty-format "^27.2.4" jest-docblock@^27.0.6: version "27.0.6" @@ -3786,53 +3783,53 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" -jest-each@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.0.tgz#4c531c7223de289429fc7b2473a86e653c86d61f" - integrity sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA== +jest-each@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.4.tgz#b4f280aafd63129ba82e345f0e74c5a10200aeef" + integrity sha512-w9XVc+0EDBUTJS4xBNJ7N2JCcWItFd006lFjz77OarAQcQ10eFDBMrfDv2GBJMKlXe9aq0HrIIF51AXcZrRJyg== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" chalk "^4.0.0" jest-get-type "^27.0.6" - jest-util "^27.2.0" - pretty-format "^27.2.0" + jest-util "^27.2.4" + pretty-format "^27.2.4" -jest-environment-jsdom@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.0.tgz#c654dfae50ca2272c2a2e2bb95ff0af298283a3c" - integrity sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA== +jest-environment-jsdom@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.4.tgz#39ae80bbb8675306bfaf0440be1e5f877554539a" + integrity sha512-X70pTXFSypD7AIzKT1mLnDi5hP9w9mdTRcOGOmoDoBrNyNEg4rYm6d4LQWFLc9ps1VnMuDOkFSG0wjSNYGjkng== dependencies: - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/environment" "^27.2.4" + "@jest/fake-timers" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" - jest-mock "^27.1.1" - jest-util "^27.2.0" + jest-mock "^27.2.4" + jest-util "^27.2.4" jsdom "^16.6.0" -jest-environment-node@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.0.tgz#73ef2151cb62206669becb94cd84f33276252de5" - integrity sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg== +jest-environment-node@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.4.tgz#b79f98cb36e0c9111aac859c9c99f04eb2f74ff6" + integrity sha512-ZbVbFSnbzTvhLOIkqh5lcLuGCCFvtG4xTXIRPK99rV2KzQT3kNg16KZwfTnLNlIiWCE8do960eToeDfcqmpSAw== dependencies: - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/environment" "^27.2.4" + "@jest/fake-timers" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" - jest-mock "^27.1.1" - jest-util "^27.2.0" + jest-mock "^27.2.4" + jest-util "^27.2.4" jest-get-type@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== -jest-haste-map@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.0.tgz#703b3a473e3f2e27d75ab07864ffd7bbaad0d75e" - integrity sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q== +jest-haste-map@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.4.tgz#f8974807bedf07348ca9fd24e5861ab7c8e61aba" + integrity sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -3840,76 +3837,76 @@ jest-haste-map@^27.2.0: graceful-fs "^4.2.4" jest-regex-util "^27.0.6" jest-serializer "^27.0.6" - jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-util "^27.2.4" + jest-worker "^27.2.4" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.1.tgz#30ee71f38670a621ecf3b6dcb89875933f780de6" - integrity sha512-3vytj3+S49+XYsxGJyjlchDo4xblYzjDY4XK7pV2IAdspbMFOpmeNMOeDonYuvlbUtcV8yrFLA6XtliXapDmMA== +jest-jasmine2@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.4.tgz#4a1608133dbdb4d68b5929bfd785503ed9c9ba51" + integrity sha512-fcffjO/xLWLVnW2ct3No4EksxM5RyPwHDYu9QU+90cC+/eSMLkFAxS55vkqsxexOO5zSsZ3foVpMQcg/amSeIQ== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.2.0" + "@jest/environment" "^27.2.4" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/test-result" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.2.1" + expect "^27.2.4" is-generator-fn "^2.0.0" - jest-each "^27.2.0" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" - jest-runtime "^27.2.1" - jest-snapshot "^27.2.1" - jest-util "^27.2.0" - pretty-format "^27.2.0" + jest-each "^27.2.4" + jest-matcher-utils "^27.2.4" + jest-message-util "^27.2.4" + jest-runtime "^27.2.4" + jest-snapshot "^27.2.4" + jest-util "^27.2.4" + pretty-format "^27.2.4" throat "^6.0.1" -jest-leak-detector@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.0.tgz#9a7ca2dad1a21c4e49ad2a8ad7f1214ffdb86a28" - integrity sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA== +jest-leak-detector@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.4.tgz#9bb7eab26a73bb280e9298be8d80f389288ec8f1" + integrity sha512-SrcHWbe0EHg/bw2uBjVoHacTo5xosl068x2Q0aWsjr2yYuW2XwqrSkZV4lurUop0jhv1709ymG4or+8E4sH27Q== dependencies: jest-get-type "^27.0.6" - pretty-format "^27.2.0" + pretty-format "^27.2.4" -jest-matcher-utils@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.0.tgz#b4d224ab88655d5fab64b96b989ac349e2f5da43" - integrity sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw== +jest-matcher-utils@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.4.tgz#008fff018151415ad1b6cfc083fd70fe1e012525" + integrity sha512-nQeLfFAIPPkyhkDfifAPfP/U5wm1x0fLtAzqXZSSKckXDNuk2aaOfQiDYv1Mgf5GY6yOsxfUnvNm3dDjXM+BXw== dependencies: chalk "^4.0.0" - jest-diff "^27.2.0" + jest-diff "^27.2.4" jest-get-type "^27.0.6" - pretty-format "^27.2.0" + pretty-format "^27.2.4" -jest-message-util@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.0.tgz#2f65c71df55267208686b1d7514e18106c91ceaf" - integrity sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w== +jest-message-util@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.4.tgz#667e8c0f2b973156d1bac7398a7f677705cafaca" + integrity sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.4" - pretty-format "^27.2.0" + pretty-format "^27.2.4" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.1.1: - version "27.1.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.1.1.tgz#c7a2e81301fdcf3dab114931d23d89ec9d0c3a82" - integrity sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw== +jest-mock@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.2.4.tgz#c8f0ef33f73d8ff53e3f60b16d59f1128f4072ae" + integrity sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -3922,72 +3919,72 @@ jest-regex-util@^27.0.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.1.tgz#239be969ece749d4dc2e1efcf3d2b86c99525c2e" - integrity sha512-9bKEwmz4YshGPjGZAVZOVw6jt7pq2/FjWJmyhnWhvDuiRCHVZBcJhycinX+e/EJ7jafsq26bTpzBIQas3xql1g== +jest-resolve-dependencies@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.4.tgz#20c41cc02b66aa45169b282356ec73b133013089" + integrity sha512-i5s7Uh9B3Q6uwxLpMhNKlgBf6pcemvWaORxsW1zNF/YCY3jd5EftvnGBI+fxVwJ1CBxkVfxqCvm1lpZkbaoGmg== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" jest-regex-util "^27.0.6" - jest-snapshot "^27.2.1" + jest-snapshot "^27.2.4" -jest-resolve@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.0.tgz#f5d053693ab3806ec2f778e6df8b0aa4cfaef95f" - integrity sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw== +jest-resolve@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.4.tgz#d3b999f073ff84a8ae109ce99ff7f3223048701a" + integrity sha512-IsAO/3+3BZnKjI2I4f3835TBK/90dxR7Otgufn3mnrDFTByOSXclDi3G2XJsawGV4/18IMLARJ+V7Wm7t+J89Q== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" chalk "^4.0.0" escalade "^3.1.1" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" + jest-haste-map "^27.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-util "^27.2.4" + jest-validate "^27.2.4" resolve "^1.20.0" slash "^3.0.0" -jest-runner@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.1.tgz#3443b1fc08b8a50f305dfc2d41dd2badf335843b" - integrity sha512-USHitkUUzcB3Y5mRdzlp+KHgRRR2VsXDq5OeATuDmq1qXfT/RwwnQykUhn+KVx3FotxK3pID74UY7o6HYIR8vA== +jest-runner@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.4.tgz#d816f4cb4af04f3cba703afcf5a35a335b77cad4" + integrity sha512-hIo5PPuNUyVDidZS8EetntuuJbQ+4IHWxmHgYZz9FIDbG2wcZjrP6b52uMDjAEQiHAn8yn8ynNe+TL8UuGFYKg== dependencies: - "@jest/console" "^27.2.0" - "@jest/environment" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.1" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.4" + "@jest/environment" "^27.2.4" + "@jest/test-result" "^27.2.4" + "@jest/transform" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" jest-docblock "^27.0.6" - jest-environment-jsdom "^27.2.0" - jest-environment-node "^27.2.0" - jest-haste-map "^27.2.0" - jest-leak-detector "^27.2.0" - jest-message-util "^27.2.0" - jest-resolve "^27.2.0" - jest-runtime "^27.2.1" - jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-environment-jsdom "^27.2.4" + jest-environment-node "^27.2.4" + jest-haste-map "^27.2.4" + jest-leak-detector "^27.2.4" + jest-message-util "^27.2.4" + jest-resolve "^27.2.4" + jest-runtime "^27.2.4" + jest-util "^27.2.4" + jest-worker "^27.2.4" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.1.tgz#db506f679356f5b94b7be20e770f2541b7c2b339" - integrity sha512-QJNnwL4iteDE/Jq4TfQK7AjhPoUZflBKTtUIkRnFYFkTAZTP/o8k7ekaROiVjmo+NYop5+DQPqX6pz4vWbZSOQ== +jest-runtime@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.4.tgz#170044041e5d30625ab8d753516bbe503f213a5c" + integrity sha512-ICKzzYdjIi70P17MZsLLIgIQFCQmIjMFf+xYww3aUySiUA/QBPUTdUqo5B2eg4HOn9/KkUsV0z6GVgaqAPBJvg== dependencies: - "@jest/console" "^27.2.0" - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/globals" "^27.2.1" + "@jest/console" "^27.2.4" + "@jest/environment" "^27.2.4" + "@jest/fake-timers" "^27.2.4" + "@jest/globals" "^27.2.4" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.1" - "@jest/types" "^27.1.1" + "@jest/test-result" "^27.2.4" + "@jest/transform" "^27.2.4" + "@jest/types" "^27.2.4" "@types/yargs" "^16.0.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" @@ -3996,17 +3993,17 @@ jest-runtime@^27.2.1: exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" - jest-message-util "^27.2.0" - jest-mock "^27.1.1" + jest-haste-map "^27.2.4" + jest-message-util "^27.2.4" + jest-mock "^27.2.4" jest-regex-util "^27.0.6" - jest-resolve "^27.2.0" - jest-snapshot "^27.2.1" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-resolve "^27.2.4" + jest-snapshot "^27.2.4" + jest-util "^27.2.4" + jest-validate "^27.2.4" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^16.0.3" + yargs "^16.2.0" jest-serializer@^27.0.6: version "27.0.6" @@ -4016,10 +4013,10 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.1.tgz#385accf3bb71ac84e9a6bda4fc9bb458d53abb35" - integrity sha512-8CTg2YrgZuQbPHW7G0YvLTj4yTRXLmSeEO+ka3eC5lbu5dsTRyoDNS1L7x7EFUTyYQhFH9HQG1/TNlbUgR9Lug== +jest-snapshot@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.4.tgz#277b2269437e3ffcb91d95a73b24becf33c5a871" + integrity sha512-5DFxK31rYS8X8C6WXsFx8XxrxW3PGa6+9IrUcZdTLg1aEyXDGIeiBh4jbwvh655bg/9vTETbEj/njfZicHTZZw== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -4027,79 +4024,79 @@ jest-snapshot@^27.2.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.2.1" - "@jest/types" "^27.1.1" + "@jest/transform" "^27.2.4" + "@jest/types" "^27.2.4" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.2.1" + expect "^27.2.4" graceful-fs "^4.2.4" - jest-diff "^27.2.0" + jest-diff "^27.2.4" jest-get-type "^27.0.6" - jest-haste-map "^27.2.0" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" - jest-resolve "^27.2.0" - jest-util "^27.2.0" + jest-haste-map "^27.2.4" + jest-matcher-utils "^27.2.4" + jest-message-util "^27.2.4" + jest-resolve "^27.2.4" + jest-util "^27.2.4" natural-compare "^1.4.0" - pretty-format "^27.2.0" + pretty-format "^27.2.4" semver "^7.3.2" -jest-util@^27.0.0, jest-util@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.0.tgz#bfccb85cfafae752257319e825a5b8d4ada470dc" - integrity sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A== +jest-util@^27.0.0, jest-util@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.4.tgz#3d7ce081b2e7f4cfe0156452ac01f3cb456cc656" + integrity sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^3.0.0" picomatch "^2.2.3" -jest-validate@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.0.tgz#b7535f12d95dd3b4382831f4047384ca098642ab" - integrity sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ== +jest-validate@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.4.tgz#b66d462b2fb93d7e16a47d1aa8763d5600bf2cfa" + integrity sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.4" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^27.0.6" leven "^3.1.0" - pretty-format "^27.2.0" + pretty-format "^27.2.4" -jest-watcher@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.0.tgz#dc2eef4c13c6d41cebf3f1fc5f900a54b51c2ea0" - integrity sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg== +jest-watcher@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.4.tgz#b1d5c39ab94f59f4f35f66cc96f7761a10e0cfc4" + integrity sha512-LXC/0+dKxhK7cfF7reflRYlzDIaQE+fL4ynhKhzg8IMILNMuI4xcjXXfUJady7OR4/TZeMg7X8eHx8uan9vqaQ== dependencies: - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/test-result" "^27.2.4" + "@jest/types" "^27.2.4" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.2.0" + jest-util "^27.2.4" string-length "^4.0.1" -jest-worker@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0" - integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA== +jest-worker@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.4.tgz#881455df75e22e7726a53f43703ab74d6b36f82d" + integrity sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.2.1.tgz#9263102056fe152fd2478d181cf9bbbd2a6a8da4" - integrity sha512-0MyvNS7J1HbkeotYaqKNGioN+p1/AAPtI1Z8iwMtCBE+PwBT+M4l25D9Pve8/KdhktYLgZaGyyj9CoDytD+R2Q== +jest@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.2.4.tgz#70e27bef873138afc123aa4769f7124c50ad3efb" + integrity sha512-h4uqb1EQLfPulWyUFFWv9e9Nn8sCqsJ/j3wk/KCY0p4s4s0ICCfP3iMf6hRf5hEhsDyvyrCgKiZXma63gMz16A== dependencies: - "@jest/core" "^27.2.1" + "@jest/core" "^27.2.4" import-local "^3.0.2" - jest-cli "^27.2.1" + jest-cli "^27.2.4" js-tokens@^4.0.0: version "4.0.0" @@ -4258,7 +4255,7 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lilconfig@^2.0.2, lilconfig@^2.0.3: +lilconfig@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== @@ -4275,27 +4272,27 @@ linkify-it@^2.0.0: dependencies: uc.micro "^1.0.1" -lint-staged@^11.1.2: - version "11.1.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.1.2.tgz#4dd78782ae43ee6ebf2969cad9af67a46b33cd90" - integrity sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w== +lint-staged@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.0.tgz#6b9774a74b3eb4bef5c59fb6475bff84d6853008" + integrity sha512-0KIcRuO4HQS2Su7qWtjrfTXgSklvyIb9Fk9qVWRZkGHa5S81Vj6WBbs+ogQBvHUwLJYq1eQ4R+H82GSak4OM7w== dependencies: - chalk "^4.1.1" - cli-truncate "^2.1.0" - commander "^7.2.0" - cosmiconfig "^7.0.0" - debug "^4.3.1" + cli-truncate "2.1.0" + colorette "^1.4.0" + commander "^8.2.0" + cosmiconfig "^7.0.1" + debug "^4.3.2" enquirer "^2.3.6" - execa "^5.0.0" - listr2 "^3.8.2" - log-symbols "^4.1.0" + execa "^5.1.1" + listr2 "^3.12.2" micromatch "^4.0.4" normalize-path "^3.0.0" please-upgrade-node "^3.2.0" string-argv "0.3.1" - stringify-object "^3.3.0" + stringify-object "3.3.0" + supports-color "8.1.1" -listr2@^3.8.2: +listr2@^3.12.2: version "3.12.2" resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.2.tgz#2d55cc627111603ad4768a9e87c9c7bb9b49997e" integrity sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A== @@ -4394,14 +4391,6 @@ lodash@4.x, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - log-update@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" @@ -4521,7 +4510,7 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mico-spinner@^1.2.2: +mico-spinner@^1.2.2, mico-spinner@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.3.0.tgz#aa8611aceb551522f5bab7f2895a159ac0c29d6a" integrity sha512-iwc0mhP+H/qorAKhDsDW40QOb3kKxAIwH1ImoIkFUWP3kT4gn6UZ2gdyT0uNRLrCx7fADY1F7OFBuFM1/wfflQ== @@ -4563,17 +4552,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.49.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.50.0: + version "1.50.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== mime-types@^2.1.12: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + version "2.1.33" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: - mime-db "1.49.0" + mime-db "1.50.0" mime@^2.3.1: version "2.5.2" @@ -4685,15 +4674,20 @@ nanocolors@^0.1.0, nanocolors@^0.1.1, nanocolors@^0.1.12, nanocolors@^0.1.5: resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== +nanocolors@^0.2.2: + version "0.2.12" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.12.tgz#4d05932e70116078673ea4cc6699a1c56cc77777" + integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug== + nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== -nanoid@^3.1.25: - version "3.1.25" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" - integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== +nanoid@^3.1.25, nanoid@^3.1.28: + version "3.1.28" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" + integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== nanomatch@^1.2.9: version "1.2.13" @@ -4768,10 +4762,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.76: - version "1.1.76" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e" - integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA== +node-releases@^1.1.77: + version "1.1.77" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" + integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -4868,13 +4862,13 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -4933,11 +4927,6 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -5108,6 +5097,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +picocolors@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.1.0.tgz#e10d446a03ca5f127e9680865fbfe80ee5148266" + integrity sha512-W+3MFREUEjPt0MnYaR51VkLw8tY8UubrLOqcBmaQocZhM34hQhjg50FQ0c6f0UldPlecieoqUqI6ToM/dNblDw== + picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" @@ -5446,11 +5440,11 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.1, postcss@^8.2.15: - version "8.3.7" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.7.tgz#ec88563588c8da8e58e7226f7633b51ae221eeda" - integrity sha512-9SaY7nnyQ63/WittqZYAvkkYPyKxchMKH71UDzeTmWuLSvxTRpeEeABZAzlCi55cuGcoFyoV/amX2BdsafQidQ== + version "8.3.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" + integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== dependencies: - nanocolors "^0.1.5" + nanocolors "^0.2.2" nanoid "^3.1.25" source-map-js "^0.6.2" @@ -5469,13 +5463,13 @@ prettier@^2.4.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== -pretty-format@^27.0.0, pretty-format@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" - integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== +pretty-format@^27.0.0, pretty-format@^27.2.4: + version "27.2.4" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.4.tgz#08ea39c5eab41b082852d7093059a091f6ddc748" + integrity sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg== dependencies: - "@jest/types" "^27.1.1" - ansi-regex "^5.0.0" + "@jest/types" "^27.2.4" + ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" @@ -5950,9 +5944,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7" - integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q== + version "3.0.5" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" + integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== simple-git-hooks@^2.6.1: version "2.6.1" @@ -5973,18 +5967,18 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.4.tgz#8223efa9dbf0e3dae2dc9c60b1558b5d2a0f820a" - integrity sha512-xAe8sZ7MZe48glBetVFG3DlfMNXIS2V/PQsy9RPj8PRBCvIg5ESLFZQxJnxf7jsp47sKBUO+XVvablL3S4szog== +size-limit@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.5.tgz#860643aade5dae4bd9afc72ab0ef081e987e5377" + integrity sha512-DtblS3Qc1SmtEtAYE6RGmg1UFdIzz2aWhlnzbBc3FYc0XMsTVT0kKB40DMIZ/yU5JztkMetdqB5Q5Pow/iVazg== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" globby "^11.0.4" lilconfig "^2.0.3" - mico-spinner "^1.2.2" - nanocolors "^0.1.0" + mico-spinner "^1.3.0" + picocolors "^0.1.0" slash@^3.0.0: version "3.0.0" @@ -6207,7 +6201,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6246,7 +6240,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@^3.3.0: +stringify-object@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== @@ -6305,6 +6299,13 @@ stylehacks@^5.0.1: browserslist "^4.16.0" postcss-selector-parser "^6.0.4" +supports-color@8.1.1, supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6319,13 +6320,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -6353,16 +6347,16 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^6.0.9: - version "6.7.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" - integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + version "6.7.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0" + integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g== dependencies: ajv "^8.0.1" lodash.clonedeep "^4.5.0" lodash.truncate "^4.4.2" slice-ansi "^4.0.0" - string-width "^4.2.0" - strip-ansi "^6.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -6743,10 +6737,10 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" - integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== +v8-to-istanbul@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" + integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -7062,7 +7056,7 @@ yargs-parser@20.x, yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^16.0.3: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== From 90777162aaf844510d786e6070879fe861937066 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 4 Oct 2021 22:14:01 +0200 Subject: [PATCH 2348/3047] Release 8.3.9 version --- CHANGELOG.md | 4 ++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 148108b6f..b44add929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.9 +* Replaced `nanocolors` to `picocolors`. +* Reduced package size. + ## 8.3.8 * Update `nanocolors`. diff --git a/lib/processor.js b/lib/processor.js index 306cd0eee..40cac2e4f 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.8' + this.version = '8.3.9' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 126e5aa6b..37c627e04 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.8", + "version": "8.3.9", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 6cf4616e4168ae07c3dbca6c3fa68668c928a000 Mon Sep 17 00:00:00 2001 From: ambar Date: Tue, 12 Oct 2021 17:18:14 +0800 Subject: [PATCH 2349/3047] Add postcss-theme-colors to plugins.md --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 7320e6e6e..55b0b6354 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -249,6 +249,7 @@ See also [`precss`] plugins pack to add them by one line of code. colorblindness. * [`postcss-contrast`] checks background-color and gives either white or black. * [`postcss-dark-theme-class`] to force dark or light theme by custom switcher. +* [`postcss-theme-colors`] add dark and light theme with color groups. * [`postcss-hexrgba`] adds shorthand hex `rgba(hex, alpha)` method. * [`postcss-rgb-plz`] converts 3 or 6 digit hex values to `rgb`. * [`postcss-rgba-hex`] converts `rgba` values to `hex` analogues. @@ -590,6 +591,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-selector-matches`]: https://github.com/postcss/postcss-selector-matches [`postcss-shorthand-expand`]: https://github.com/johnotander/postcss-shorthand-expand [`postcss-dark-theme-class`]: https://github.com/postcss/postcss-dark-theme-class +[`postcss-theme-colors`]: https://github.com/ambar/postcss-theme-colors [`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors [`postcss-border-shortcut`]: https://github.com/michelemazzucco/postcss-border-shortcut [`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha From 4bdc53f3ab0229f230310cb08d7fda09cc44c9d5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 20 Oct 2021 17:06:50 +0200 Subject: [PATCH 2350/3047] Update CI config --- .github/workflows/test.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a707bfa4..e65f7a2f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,8 +2,6 @@ name: Test on: push: pull_request: -env: - FORCE_COLOR: 2 jobs: full: name: Node.js 16 Full @@ -14,16 +12,20 @@ jobs: - name: Install Node.js uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 17 + cache: yarn - name: Install dependencies - uses: bahmutov/npm-install@v1 + run: yarn --frozen-lockfile - name: Run tests run: yarn test + env: + FORCE_COLOR: 2 short: runs-on: ubuntu-latest strategy: matrix: node-version: + - 16 - 14 - 12 - 10 @@ -35,12 +37,13 @@ jobs: uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} + cache: yarn - name: Install dependencies - uses: bahmutov/npm-install@v1 - with: - install-command: yarn --frozen-lockfile --ignore-engines + run: yarn --frozen-lockfile --ignore-engines - name: Run unit tests run: npx jest + env: + FORCE_COLOR: 2 windows: runs-on: windows-latest name: Windows Quick @@ -52,8 +55,11 @@ jobs: - name: Install Node.js LTS uses: actions/setup-node@v2 with: - node-version: 14 + node-version: 16 + cache: yarn - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests run: npx jest + env: + FORCE_COLOR: 2 From acbd3727ff3069fb8680ccbd040f7c2d51582446 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 20 Oct 2021 17:11:44 +0200 Subject: [PATCH 2351/3047] Remove Node.js 17 from CI until al problems will be fixed --- .github/workflows/test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e65f7a2f3..d80d24823 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v2 with: - node-version: 17 + node-version: 16 cache: yarn - name: Install dependencies run: yarn --frozen-lockfile @@ -25,7 +25,6 @@ jobs: strategy: matrix: node-version: - - 16 - 14 - 12 - 10 From 1d3651971ef238e37a93ed80a9bef0f0f259beab Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 20 Oct 2021 17:11:51 +0200 Subject: [PATCH 2352/3047] Update dependencies --- package.json | 40 +- test/at-rule.test.ts | 14 +- test/browser.test.ts | 2 +- test/comment.test.ts | 4 +- test/container.test.ts | 178 +- test/css-syntax-error.test.ts | 32 +- test/declaration.test.ts | 12 +- test/lazy-result.test.ts | 12 +- test/map.test.ts | 88 +- test/node.test.ts | 76 +- test/parse.test.ts | 16 +- test/postcss.test.ts | 16 +- test/previous-map.test.ts | 12 +- test/processor.test.ts | 50 +- test/result.test.ts | 4 +- test/root.test.ts | 20 +- test/rule.test.ts | 22 +- test/stringifier.test.js | 68 +- test/tokenize.test.js | 10 +- test/visitor.test.ts | 38 +- test/warning.test.ts | 24 +- yarn.lock | 3910 +++++++++++---------------------- 22 files changed, 1599 insertions(+), 3049 deletions(-) diff --git a/package.json b/package.json index 37c627e04..db026d42e 100644 --- a/package.json +++ b/package.json @@ -67,43 +67,43 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.1.28", - "picocolors": "^0.2.1", + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", "source-map-js": "^0.6.2" }, "devDependencies": { - "@logux/eslint-config": "^45.4.8", - "@size-limit/preset-small-lib": "^5.0.5", + "@logux/eslint-config": "^46.0.0", + "@size-limit/preset-small-lib": "^6.0.3", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", - "@types/node": "^16.10.2", - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.33.0", - "check-dts": "^0.5.6", + "@types/node": "^16.11.1", + "@typescript-eslint/eslint-plugin": "^5.1.0", + "@typescript-eslint/parser": "^5.1.0", + "check-dts": "^0.6.1", "ci-job-number": "^1.2.2", - "clean-publish": "^3.0.3", + "clean-publish": "^3.4.2", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^7.32.0", + "eslint": "^8.0.1", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.24.2", - "eslint-plugin-jest": "^24.5.2", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^25.2.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-security": "^1.4.0", - "eslint-plugin-unicorn": "^36.0.0", + "eslint-plugin-unicorn": "^37.0.1", "fs-extra": "^10.0.0", - "jest": "^27.2.4", - "lint-staged": "^11.2.0", + "jest": "^27.3.1", + "lint-staged": "^11.2.3", "nanodelay": "^1.0.8", - "postcss-parser-tests": "^8.3.6", + "postcss-parser-tests": "^8.3.7", "prettier": "^2.4.1", "simple-git-hooks": "^2.6.1", - "size-limit": "^5.0.5", + "size-limit": "^6.0.3", "strip-ansi": "^6.0.0", - "ts-jest": "^27.0.5", - "typescript": "^4.4.3", - "yaspeller": "^7.0.0" + "ts-jest": "^27.0.7", + "typescript": "^4.4.4", + "yaspeller": "^7.2.0" }, "lint-staged": { "*.md": "yaspeller", diff --git a/test/at-rule.test.ts b/test/at-rule.test.ts index 8d77d989b..820d228bb 100644 --- a/test/at-rule.test.ts +++ b/test/at-rule.test.ts @@ -3,10 +3,10 @@ import { AtRule, parse } from '../lib/postcss.js' it('initializes with properties', () => { let rule = new AtRule({ name: 'encoding', params: '"utf-8"' }) - expect(rule.name).toEqual('encoding') - expect(rule.params).toEqual('"utf-8"') + expect(rule.name).toBe('encoding') + expect(rule.params).toBe('"utf-8"') - expect(rule.toString()).toEqual('@encoding "utf-8"') + expect(rule.toString()).toBe('@encoding "utf-8"') }) it('does not fall on childless at-rule', () => { @@ -18,7 +18,7 @@ it('does not fall on childless at-rule', () => { it('creates nodes property on prepend()', () => { let rule = new AtRule() - expect(rule.nodes).not.toBeDefined() + expect(rule.nodes).toBeUndefined() rule.prepend('color: black') expect(rule.nodes).toHaveLength(1) @@ -26,7 +26,7 @@ it('creates nodes property on prepend()', () => { it('creates nodes property on append()', () => { let rule = new AtRule() - expect(rule.nodes).not.toBeDefined() + expect(rule.nodes).toBeUndefined() rule.append('color: black') expect(rule.nodes).toHaveLength(1) @@ -34,7 +34,7 @@ it('creates nodes property on append()', () => { it('inserts default spaces', () => { let rule = new AtRule({ name: 'page', params: 1, nodes: [] }) - expect(rule.toString()).toEqual('@page 1 {}') + expect(rule.toString()).toBe('@page 1 {}') }) it('clone spaces from another at-rule', () => { @@ -42,5 +42,5 @@ it('clone spaces from another at-rule', () => { let rule = new AtRule({ name: 'page', params: 1, nodes: [] }) root.append(rule) - expect(rule.toString()).toEqual('@page 1{}') + expect(rule.toString()).toBe('@page 1{}') }) diff --git a/test/browser.test.ts b/test/browser.test.ts index c18fe852c..32de2a73a 100644 --- a/test/browser.test.ts +++ b/test/browser.test.ts @@ -73,5 +73,5 @@ it(`doesn't throw error without path`, () => { expect( postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css - ).toEqual('a{}') + ).toBe('a{}') }) diff --git a/test/comment.test.ts b/test/comment.test.ts index 0bd1bdf0b..47996a326 100644 --- a/test/comment.test.ts +++ b/test/comment.test.ts @@ -2,7 +2,7 @@ import { Comment, parse } from '../lib/postcss.js' it('toString() inserts default spaces', () => { let comment = new Comment({ text: 'hi' }) - expect(comment.toString()).toEqual('/* hi */') + expect(comment.toString()).toBe('/* hi */') }) it('toString() clones spaces from another comment', () => { @@ -10,5 +10,5 @@ it('toString() clones spaces from another comment', () => { let comment = new Comment({ text: 'world' }) root.append(comment) - expect(root.toString()).toEqual('a{} /*hello*/ /*world*/') + expect(root.toString()).toBe('a{} /*hello*/ /*world*/') }) diff --git a/test/container.test.ts b/test/container.test.ts index 7e24017db..cdb450789 100644 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -32,9 +32,9 @@ it('throws error on unknown node type', () => { it('push() adds child without checks', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.push(new Declaration({ prop: 'c', value: '3' })) - expect(rule.toString()).toEqual('a { a: 1; b: 2; c: 3 }') + expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3 }') expect(rule.nodes).toHaveLength(3) - expect(rule.last?.raws.before).not.toBeDefined() + expect(rule.last?.raws.before).toBeUndefined() }) it('each() iterates', () => { @@ -46,7 +46,7 @@ it('each() iterates', () => { expect(decl).toBe(rule.nodes[i]) }) - expect(result).not.toBeDefined() + expect(result).toBeUndefined() expect(indexes).toEqual([0, 1]) }) @@ -59,7 +59,7 @@ it('each() iterates with prepend', () => { size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('each() iterates with prepend insertBefore', () => { @@ -73,7 +73,7 @@ it('each() iterates with prepend insertBefore', () => { size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('each() iterates with append insertBefore', () => { @@ -87,7 +87,7 @@ it('each() iterates with append insertBefore', () => { size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('each() iterates with prepend insertAfter', () => { @@ -99,7 +99,7 @@ it('each() iterates with prepend insertAfter', () => { size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('each() iterates with append insertAfter', () => { @@ -113,7 +113,7 @@ it('each() iterates with append insertAfter', () => { size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('each() iterates with remove', () => { @@ -125,7 +125,7 @@ it('each() iterates with remove', () => { size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('each() breaks iteration', () => { @@ -164,7 +164,7 @@ it('walk() iterates', () => { indexes.push(i) }) - expect(result).not.toBeDefined() + expect(result).toBeUndefined() expect(types).toEqual([ 'rule', 'decl', @@ -209,8 +209,8 @@ it('walk() adds CSS position to error stack', () => { catched = e } expect(catched).toBe(error) - expect(catched.postcssNode.toString()).toEqual('a { a: 1; b: 2 }') - expect(catched.stack.replace(/.:\\/i, '/')).toEqual( + expect(catched.postcssNode.toString()).toBe('a { a: 1; b: 2 }') + expect(catched.stack.replace(/.:\\/i, '/')).toBe( 'Error: T\n at /c.css:1:1\n at b (b.js:2:4)\n at a (a.js:2:1)' ) }) @@ -224,7 +224,7 @@ it('walkDecls() iterates', () => { indexes.push(i) }) - expect(result).not.toBeDefined() + expect(result).toBeUndefined() expect(props).toEqual(['a', 'b', 'c', 'd', 'e']) expect(indexes).toEqual([0, 1, 0, 0, 0]) }) @@ -235,7 +235,7 @@ it('walkDecls() iterates with changes', () => { decl.parent?.removeChild(i) size += 1 }) - expect(size).toEqual(5) + expect(size).toBe(5) }) it('walkDecls() breaks iteration', () => { @@ -255,11 +255,11 @@ it('walkDecls() filters declarations by property name', () => { let size = 0 css.walkDecls('one', decl => { - expect(decl.prop).toEqual('one') + expect(decl.prop).toBe('one') size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('walkDecls() breaks declarations filter by name', () => { @@ -271,7 +271,7 @@ it('walkDecls() breaks declarations filter by name', () => { return false }) - expect(size).toEqual(1) + expect(size).toBe(1) }) it('walkDecls() filters declarations by property regexp', () => { @@ -282,7 +282,7 @@ it('walkDecls() filters declarations by property regexp', () => { size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('walkDecls() breaks declarations filters by regexp', () => { @@ -294,7 +294,7 @@ it('walkDecls() breaks declarations filters by regexp', () => { return false }) - expect(size).toEqual(1) + expect(size).toBe(1) }) it('walkComments() iterates', () => { @@ -306,7 +306,7 @@ it('walkComments() iterates', () => { indexes.push(i) }) - expect(result).not.toBeDefined() + expect(result).toBeUndefined() expect(texts).toEqual(['a', 'b', 'c']) expect(indexes).toEqual([1, 0, 1]) }) @@ -317,7 +317,7 @@ it('walkComments() iterates with changes', () => { comment.parent?.removeChild(i) size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('walkComments() breaks iteration', () => { @@ -341,7 +341,7 @@ it('walkRules() iterates', () => { indexes.push(i) }) - expect(result).not.toBeDefined() + expect(result).toBeUndefined() expect(selectors).toEqual(['a', 'to', 'em']) expect(indexes).toEqual([0, 1, 0]) }) @@ -352,7 +352,7 @@ it('walkRules() iterates with changes', () => { rule.parent?.removeChild(i) size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('walkRules() breaks iteration', () => { @@ -370,10 +370,10 @@ it('walkRules() breaks iteration', () => { it('walkRules() filters by selector', () => { let size = 0 parse('a{}b{}a{}').walkRules('a', rule => { - expect(rule.selector).toEqual('a') + expect(rule.selector).toBe('a') size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('walkRules() breaks selector filters', () => { @@ -382,7 +382,7 @@ it('walkRules() breaks selector filters', () => { size += 1 return false }) - expect(size).toEqual(1) + expect(size).toBe(1) }) it('walkRules() filters by regexp', () => { @@ -391,7 +391,7 @@ it('walkRules() filters by regexp', () => { expect(rule.selector).toMatch(/^a/) size += 1 }) - expect(size).toEqual(2) + expect(size).toBe(2) }) it('walkRules() breaks selector regexp', () => { @@ -400,7 +400,7 @@ it('walkRules() breaks selector regexp', () => { size += 1 return false }) - expect(size).toEqual(1) + expect(size).toBe(1) }) it('walkAtRules() iterates', () => { @@ -412,7 +412,7 @@ it('walkAtRules() iterates', () => { indexes.push(i) }) - expect(result).not.toBeDefined() + expect(result).toBeUndefined() expect(names).toEqual(['keyframes', 'media', 'page']) expect(indexes).toEqual([2, 3, 1]) }) @@ -423,7 +423,7 @@ it('walkAtRules() iterates with changes', () => { atrule.parent?.removeChild(i) size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('walkAtRules() breaks iteration', () => { @@ -443,11 +443,11 @@ it('walkAtRules() filters at-rules by name', () => { let size = 0 css.walkAtRules('page', atrule => { - expect(atrule.name).toEqual('page') + expect(atrule.name).toBe('page') size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('walkAtRules() breaks name filter', () => { @@ -456,7 +456,7 @@ it('walkAtRules() breaks name filter', () => { size += 1 return false }) - expect(size).toEqual(1) + expect(size).toBe(1) }) it('walkAtRules() filters at-rules by name regexp', () => { @@ -467,7 +467,7 @@ it('walkAtRules() filters at-rules by name regexp', () => { size += 1 }) - expect(size).toEqual(3) + expect(size).toBe(3) }) it('walkAtRules() breaks regexp filter', () => { @@ -476,51 +476,51 @@ it('walkAtRules() breaks regexp filter', () => { size += 1 return false }) - expect(size).toEqual(1) + expect(size).toBe(1) }) it('append() appends child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; b: 2; c: 3 }') - expect(rule.last?.raws.before).toEqual(' ') + expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3 }') + expect(rule.last?.raws.before).toBe(' ') }) it('append() appends multiple children', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }) - expect(rule.toString()).toEqual('a { a: 1; b: 2; c: 3; d: 4 }') - expect(rule.last?.raws.before).toEqual(' ') + expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3; d: 4 }') + expect(rule.last?.raws.before).toBe(' ') }) it('append() has declaration shortcut', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; b: 2; c: 3 }') + expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3 }') }) it('append() has rule shortcut', () => { let root = new Root() root.append({ selector: 'a' }) - expect(root.first?.toString()).toEqual('a {}') + expect(root.first?.toString()).toBe('a {}') }) it('append() has at-rule shortcut', () => { let root = new Root() root.append({ name: 'encoding', params: '"utf-8"' }) - expect(root.first?.toString()).toEqual('@encoding "utf-8"') + expect(root.first?.toString()).toBe('@encoding "utf-8"') }) it('append() has comment shortcut', () => { let root = new Root() root.append({ text: 'ok' }) - expect(root.first?.toString()).toEqual('/* ok */') + expect(root.first?.toString()).toBe('/* ok */') }) it('append() receives root', () => { let css = parse('a {}') css.append(parse('b {}')) - expect(css.toString()).toEqual('a {}b {}') + expect(css.toString()).toBe('a {}b {}') }) it('append() reveives string', () => { @@ -528,8 +528,8 @@ it('append() reveives string', () => { root.append('a{}b{}') let a = root.first as Rule a.append('color:black') - expect(root.toString()).toEqual('a{color:black}b{}') - expect(a.first?.source).not.toBeDefined() + expect(root.toString()).toBe('a{color:black}b{}') + expect(a.first?.source).toBeUndefined() }) it('append() receives array', () => { @@ -539,8 +539,8 @@ it('append() receives array', () => { let bRule = b.first as Rule aRule.append(bRule.nodes) - expect(a.toString()).toEqual('a{ z-index: 1; width: 1px; height: 2px }') - expect(b.toString()).toEqual('b{ }') + expect(a.toString()).toBe('a{ z-index: 1; width: 1px; height: 2px }') + expect(b.toString()).toBe('b{ }') }) it('append() move node on insert', () => { @@ -551,40 +551,40 @@ it('append() move node on insert', () => { let bLast = b.last as Rule bLast.selector = 'b a' - expect(a.toString()).toEqual('') - expect(b.toString()).toEqual('b{}b a{}') + expect(a.toString()).toBe('') + expect(b.toString()).toBe('b{}b a{}') }) it('prepend() prepends child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.prepend({ prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { c: 3; a: 1; b: 2 }') - expect(rule.first?.raws.before).toEqual(' ') + expect(rule.toString()).toBe('a { c: 3; a: 1; b: 2 }') + expect(rule.first?.raws.before).toBe(' ') }) it('prepend() prepends multiple children', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.prepend({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }) - expect(rule.toString()).toEqual('a { c: 3; d: 4; a: 1; b: 2 }') - expect(rule.first?.raws.before).toEqual(' ') + expect(rule.toString()).toBe('a { c: 3; d: 4; a: 1; b: 2 }') + expect(rule.first?.raws.before).toBe(' ') }) it('prepend() receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.prepend({ prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { c: 3; a: 1; b: 2 }') + expect(rule.toString()).toBe('a { c: 3; a: 1; b: 2 }') }) it('prepend() receives root', () => { let css = parse('a {}') css.prepend(parse('b {}')) - expect(css.toString()).toEqual('b {}\na {}') + expect(css.toString()).toBe('b {}\na {}') }) it('prepend() receives string', () => { let css = parse('a {}') css.prepend('b {}') - expect(css.toString()).toEqual('b {}\na {}') + expect(css.toString()).toBe('b {}\na {}') }) it('prepend() receives array', () => { @@ -594,32 +594,32 @@ it('prepend() receives array', () => { let bRule = b.first as Rule aRule.prepend(bRule.nodes) - expect(a.toString()).toEqual('a{ width: 1px; height: 2px; z-index: 1 }') + expect(a.toString()).toBe('a{ width: 1px; height: 2px; z-index: 1 }') }) it('prepend() works on empty container', () => { let root = parse('') root.prepend(new Rule({ selector: 'a' })) - expect(root.toString()).toEqual('a {}') + expect(root.toString()).toBe('a {}') }) it('insertBefore() inserts child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertBefore(1, { prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; c: 3; b: 2 }') - expect(rule.nodes[1].raws.before).toEqual(' ') + expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') + expect(rule.nodes[1].raws.before).toBe(' ') }) it('insertBefore() works with nodes too', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertBefore(rule.nodes[1], { prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; c: 3; b: 2 }') + expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') }) it('insertBefore() receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertBefore(1, { prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; c: 3; b: 2 }') + expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') }) it('insertBefore() receives array', () => { @@ -629,29 +629,27 @@ it('insertBefore() receives array', () => { let bRule = b.first as Rule aRule.insertBefore(1, bRule.nodes) - expect(a.toString()).toEqual( - 'a{ color: red; width: 1; height: 2; z-index: 1 }' - ) + expect(a.toString()).toBe('a{ color: red; width: 1; height: 2; z-index: 1 }') }) it('insertAfter() inserts child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertAfter(0, { prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; c: 3; b: 2 }') - expect(rule.nodes[1].raws.before).toEqual(' ') + expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') + expect(rule.nodes[1].raws.before).toBe(' ') }) it('insertAfter() works with nodes too', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let aDecl = rule.first as Declaration rule.insertAfter(aDecl, { prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; c: 3; b: 2 }') + expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') }) it('insertAfter() receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertAfter(0, { prop: 'c', value: '3' }) - expect(rule.toString()).toEqual('a { a: 1; c: 3; b: 2 }') + expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') }) it('insertAfter() receives array', () => { @@ -661,29 +659,27 @@ it('insertAfter() receives array', () => { let bRule = b.first as Rule aRule.insertAfter(0, bRule.nodes) - expect(a.toString()).toEqual( - 'a{ color: red; width: 1; height: 2; z-index: 1 }' - ) + expect(a.toString()).toBe('a{ color: red; width: 1; height: 2; z-index: 1 }') }) it('removeChild() removes by index', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.removeChild(1) - expect(rule.toString()).toEqual('a { a: 1 }') + expect(rule.toString()).toBe('a { a: 1 }') }) it('removeChild() removes by node', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let bDecl = rule.last as Declaration rule.removeChild(bDecl) - expect(rule.toString()).toEqual('a { a: 1 }') + expect(rule.toString()).toBe('a { a: 1 }') }) it('removeChild() cleans parent in removed node', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let aDecl = rule.first as Declaration rule.removeChild(aDecl) - expect(aDecl.parent).not.toBeDefined() + expect(aDecl.parent).toBeUndefined() }) it('removeAll() removes all children', () => { @@ -691,8 +687,8 @@ it('removeAll() removes all children', () => { let decl = rule.first as Declaration rule.removeAll() - expect(decl.parent).not.toBeDefined() - expect(rule.toString()).toEqual('a { }') + expect(decl.parent).toBeUndefined() + expect(rule.toString()).toBe('a { }') }) it('replaceValues() replaces strings', () => { @@ -700,25 +696,25 @@ it('replaceValues() replaces strings', () => { let result = css.replaceValues('1', 'A') expect(result).toEqual(css) - expect(css.toString()).toEqual('a{one:A}b{two:A 2}') + expect(css.toString()).toBe('a{one:A}b{two:A 2}') }) it('replaceValues() replaces regpexp', () => { let css = parse('a{one:1}b{two:1 2}') css.replaceValues(/\d/g, i => i + 'A') - expect(css.toString()).toEqual('a{one:1A}b{two:1A 2A}') + expect(css.toString()).toBe('a{one:1A}b{two:1A 2A}') }) it('replaceValues() filters properties', () => { let css = parse('a{one:1}b{two:1 2}') css.replaceValues('1', { props: ['one'] }, 'A') - expect(css.toString()).toEqual('a{one:A}b{two:1 2}') + expect(css.toString()).toBe('a{one:A}b{two:1 2}') }) it('replaceValues() uses fast check', () => { let css = parse('a{one:1}b{two:1 2}') css.replaceValues('1', { fast: '2' }, 'A') - expect(css.toString()).toEqual('a{one:1}b{two:A 2}') + expect(css.toString()).toBe('a{one:1}b{two:A 2}') }) it('any() return true if all children return true', () => { @@ -735,12 +731,12 @@ it('some() return true if all children return true', () => { it('index() returns child index', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - expect(rule.index(rule.nodes[1])).toEqual(1) + expect(rule.index(rule.nodes[1])).toBe(1) }) it('index() returns argument if it is number', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - expect(rule.index(2)).toEqual(2) + expect(rule.index(2)).toBe(2) }) it('first() works for children-less nodes', () => { @@ -756,19 +752,19 @@ it('last() works for children-less nodes', () => { it('returns first child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let aDecl = rule.first as Declaration - expect(aDecl.prop).toEqual('a') + expect(aDecl.prop).toBe('a') }) it('returns last child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let bDecl = rule.last as Declaration - expect(bDecl.prop).toEqual('b') + expect(bDecl.prop).toBe('b') }) it('normalize() does not normalize new children with exists before', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3', raws: { before: '\n ' } }) - expect(rule.toString()).toEqual('a { a: 1; b: 2;\n c: 3 }') + expect(rule.toString()).toBe('a { a: 1; b: 2;\n c: 3 }') }) it('forces Declaration#value to be string', () => { @@ -777,8 +773,8 @@ it('forces Declaration#value to be string', () => { rule.append({ prop: 'c', value: 3 }) let aDecl = rule.first as Declaration let cDecl = rule.last as Declaration - expect(typeof aDecl.value).toEqual('string') - expect(typeof cDecl.value).toEqual('string') + expect(typeof aDecl.value).toBe('string') + expect(typeof cDecl.value).toBe('string') }) it('updates parent in overrides.nodes in constructor', () => { @@ -798,6 +794,6 @@ it('updates parent in overrides.nodes in constructor', () => { it('allows to clone nodes', () => { let root1 = parse('a { color: black; z-index: 1 } b {}') let root2 = new Root({ nodes: root1.nodes }) - expect(root1.toString()).toEqual('a { color: black; z-index: 1 } b {}') - expect(root2.toString()).toEqual('a { color: black; z-index: 1 } b {}') + expect(root1.toString()).toBe('a { color: black; z-index: 1 } b {}') + expect(root2.toString()).toBe('a { color: black; z-index: 1 } b {}') }) diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 15118fd32..71784abee 100644 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -48,12 +48,12 @@ it('saves source', () => { let error = parseError('a {\n content: "\n}') expect(error instanceof CssSyntaxError).toBe(true) - expect(error.name).toEqual('CssSyntaxError') - expect(error.message).toEqual(':2:12: Unclosed string') - expect(error.reason).toEqual('Unclosed string') - expect(error.line).toEqual(2) - expect(error.column).toEqual(12) - expect(error.source).toEqual('a {\n content: "\n}') + expect(error.name).toBe('CssSyntaxError') + expect(error.message).toBe(':2:12: Unclosed string') + expect(error.reason).toBe('Unclosed string') + expect(error.line).toBe(2) + expect(error.column).toBe(12) + expect(error.source).toBe('a {\n content: "\n}') expect(error.input).toEqual({ line: error.line, @@ -133,7 +133,7 @@ it('prints with highlight', () => { it('misses highlights without source content', () => { let error = parseError('a {') error.source = undefined - expect(error.toString()).toEqual( + expect(error.toString()).toBe( 'CssSyntaxError: :1:1: Unclosed block' ) }) @@ -141,7 +141,7 @@ it('misses highlights without source content', () => { it('misses position without source', () => { let decl = postcss.decl({ prop: 'color', value: 'black' }) let error = decl.error('Test') - expect(error.toString()).toEqual('CssSyntaxError: : Test') + expect(error.toString()).toBe('CssSyntaxError: : Test') }) it('uses source map', () => { @@ -159,8 +159,8 @@ it('uses source map', () => { }) expect(error.file).toEqual(join(__dirname, 'b.css')) - expect(error.line).toEqual(2) - expect(error.source).not.toBeDefined() + expect(error.line).toBe(2) + expect(error.source).toBeUndefined() expect(error.input).toEqual({ url: urlOf(join('build', 'all.css')), @@ -186,8 +186,8 @@ it('works with path in sources', () => { }) expect(error.file).toEqual(join(__dirname, 'b.css')) - expect(error.line).toEqual(2) - expect(error.source).not.toBeDefined() + expect(error.line).toBe(2) + expect(error.source).toBeUndefined() expect(error.input).toEqual({ url: pathToFileURL(pathOf(join('build', 'all.css'))).toString(), @@ -208,7 +208,7 @@ it('shows origin source', () => { from: '/b.css', map: { prev: input.map } }) - expect(error.source).toEqual('a{}') + expect(error.source).toBe('a{}') }) it('does not uses wrong source map', () => { @@ -229,7 +229,7 @@ it('does not uses wrong source map', () => { it('set source plugin', () => { let a = postcss.parse('a{}').first as Rule let error = a.error('Error', { plugin: 'PL' }) - expect(error.plugin).toEqual('PL') + expect(error.plugin).toBe('PL') expect(error.toString()).toMatch( /^CssSyntaxError: PL: :1:1: Error/ ) @@ -248,7 +248,7 @@ it('set source plugin automatically', async () => { let error = await catchError(() => postcss([plugin]).process('a{}', { from: undefined }) ) - expect(error.plugin).toEqual('test-plugin') + expect(error.plugin).toBe('test-plugin') expect(error.toString()).toMatch(/test-plugin/) }) @@ -267,5 +267,5 @@ it('set plugin automatically in async', async () => { let error = await catchError(() => postcss([plugin]).process('a{}', { from: undefined }) ) - expect(error.plugin).toEqual('async-plugin') + expect(error.plugin).toBe('async-plugin') }) diff --git a/test/declaration.test.ts b/test/declaration.test.ts index 4d8ba27ae..2936c7271 100644 --- a/test/declaration.test.ts +++ b/test/declaration.test.ts @@ -2,21 +2,21 @@ import { Declaration, parse, Rule } from '../lib/postcss.js' it('initializes with properties', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) - expect(decl.prop).toEqual('color') - expect(decl.value).toEqual('black') + expect(decl.prop).toBe('color') + expect(decl.value).toBe('black') }) it('returns boolean important', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) decl.important = true - expect(decl.toString()).toEqual('color: black !important') + expect(decl.toString()).toBe('color: black !important') }) it('inserts default spaces', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) let rule = new Rule({ selector: 'a' }) rule.append(decl) - expect(rule.toString()).toEqual('a {\n color: black\n}') + expect(rule.toString()).toBe('a {\n color: black\n}') }) it('clones spaces from another declaration', () => { @@ -24,13 +24,13 @@ it('clones spaces from another declaration', () => { let rule = root.first as Rule let decl = new Declaration({ prop: 'margin', value: '0' }) rule.append(decl) - expect(root.toString()).toEqual('a{color:black;margin:0}') + expect(root.toString()).toBe('a{color:black;margin:0}') }) it('converts value to string', () => { // @ts-expect-error let decl = new Declaration({ prop: 'color', value: 1 }) - expect(decl.value).toEqual('1') + expect(decl.value).toBe('1') }) it('detects variable declarations', () => { diff --git a/test/lazy-result.test.ts b/test/lazy-result.test.ts index ac7042bbb..3d28a5393 100644 --- a/test/lazy-result.test.ts +++ b/test/lazy-result.test.ts @@ -7,12 +7,12 @@ let processor = new Processor() it('contains AST', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.root.type).toEqual('root') + expect(result.root.type).toBe('root') }) it('will stringify css', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.css).toEqual('a {}') + expect(result.css).toBe('a {}') }) it('stringifies css', () => { @@ -22,15 +22,15 @@ it('stringifies css', () => { it('has content alias for css', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.content).toEqual('a {}') + expect(result.content).toBe('a {}') }) it('has map only if necessary', () => { let result1 = new LazyResult(processor, '', {}) - expect(result1.map).not.toBeDefined() + expect(result1.map).toBeUndefined() let result2 = new LazyResult(processor, '', {}) - expect(result2.map).not.toBeDefined() + expect(result2.map).toBeUndefined() let result3 = new LazyResult(processor, '', { map: { inline: false } }) expect(result3.map instanceof mozilla.SourceMapGenerator).toBe(true) @@ -62,5 +62,5 @@ it('executes on finally callback', () => { it('prints its object type', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(Object.prototype.toString.call(result)).toEqual('[object LazyResult]') + expect(Object.prototype.toString.call(result)).toBe('[object LazyResult]') }) diff --git a/test/map.test.ts b/test/map.test.ts index 6c0a57c7c..13bf92ff8 100644 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -33,7 +33,7 @@ afterEach(() => { }) it('adds map field only on request', () => { - expect(postcss([() => {}]).process('a {}').map).not.toBeDefined() + expect(postcss([() => {}]).process('a {}').map).toBeUndefined() }) it('return map generator', () => { @@ -61,7 +61,7 @@ it('generate right source map', () => { }) let map = read(result) - expect(map.file).toEqual('b.css') + expect(map.file).toBe('b.css') expect(map.originalPositionFor({ line: 1, column: 0 })).toEqual({ source: 'a.css', @@ -133,7 +133,7 @@ it('adds source map annotation', () => { map: { inline: false } }) - expect(result.css).toEqual('a { }\n/*# sourceMappingURL=b.css.map */') + expect(result.css).toBe('a { }\n/*# sourceMappingURL=b.css.map */') }) it('misses source map annotation, if user ask', () => { @@ -172,11 +172,11 @@ it('uses user path in annotation, relative to options.to', () => { map: { annotation: 'maps/b.map' } }) - expect(result.css).toEqual('a { }\n/*# sourceMappingURL=maps/b.map */') + expect(result.css).toBe('a { }\n/*# sourceMappingURL=maps/b.map */') let map = consumer(result.map) expect(map.file).toEqual(join('..', 'b.css')) - expect(map.originalPositionFor({ line: 1, column: 0 }).source).toEqual( + expect(map.originalPositionFor({ line: 1, column: 0 }).source).toBe( '../../source/a.css' ) }) @@ -190,7 +190,7 @@ it('generates inline map', () => { map: { inline: true } }) - expect(inline.map).not.toBeDefined() + expect(inline.map).toBeUndefined() expect(inline.css).toMatch(/# sourceMappingURL=data:/) let separated = postcss([() => {}]).process(css, { @@ -225,7 +225,7 @@ it('generates separated map if previous map was not inlined', () => { map: { prev: step1.map } }) - expect(typeof step2.map).toEqual('object') + expect(typeof step2.map).toBe('object') }) it('generates separated map on annotation option', () => { @@ -235,7 +235,7 @@ it('generates separated map on annotation option', () => { map: { annotation: false } }) - expect(typeof result.map).toEqual('object') + expect(typeof result.map).toBe('object') }) it('allows change map type', () => { @@ -251,7 +251,7 @@ it('allows change map type', () => { map: { inline: false } }) - expect(typeof step2.map).toEqual('object') + expect(typeof step2.map).toBe('object') expect(step2.css).toMatch(/# sourceMappingURL=c\.css\.map/) }) @@ -271,7 +271,7 @@ it('misses check files on requires', () => { map: false }) - expect(step2.map).not.toBeDefined() + expect(step2.map).toBeUndefined() }) it('works in subdirs', () => { @@ -284,7 +284,7 @@ it('works in subdirs', () => { expect(result.css).toMatch(/sourceMappingURL=b.css.map/) let map = consumer(result.map) - expect(map.file).toEqual('b.css') + expect(map.file).toBe('b.css') expect(map.sources).toEqual(['../from/a.css']) }) @@ -301,9 +301,11 @@ it('uses map from subdir', () => { map: { prev: step1.map } }) - let source = consumer(step2.map).originalPositionFor({ line: 1, column: 0 }) - .source - expect(source).toEqual('../../a.css') + let source = consumer(step2.map).originalPositionFor({ + line: 1, + column: 0 + }).source + expect(source).toBe('../../a.css') let step3 = doubler.process(step2.css, { from: 'c.css', @@ -311,9 +313,11 @@ it('uses map from subdir', () => { map: { prev: step2.map } }) - source = consumer(step3.map).originalPositionFor({ line: 1, column: 0 }) - .source - expect(source).toEqual('../../a.css') + source = consumer(step3.map).originalPositionFor({ + line: 1, + column: 0 + }).source + expect(source).toBe('../../a.css') }) it('uses map from subdir if it inlined', () => { @@ -329,9 +333,11 @@ it('uses map from subdir if it inlined', () => { map: { inline: false } }) - let source = consumer(step2.map).originalPositionFor({ line: 1, column: 0 }) - .source - expect(source).toEqual('../../a.css') + let source = consumer(step2.map).originalPositionFor({ + line: 1, + column: 0 + }).source + expect(source).toBe('../../a.css') }) it('uses map from subdir if it written as a file', () => { @@ -341,9 +347,11 @@ it('uses map from subdir if it written as a file', () => { map: { annotation: 'maps/b.css.map', inline: false } }) - let source = consumer(step1.map).originalPositionFor({ line: 1, column: 0 }) - .source - expect(source).toEqual('../../source/a.css') + let source = consumer(step1.map).originalPositionFor({ + line: 1, + column: 0 + }).source + expect(source).toBe('../../source/a.css') let file = join(dir, 'one', 'maps', 'b.css.map') outputFileSync(file, step1.map.toString()) @@ -354,9 +362,11 @@ it('uses map from subdir if it written as a file', () => { map: true }) - source = consumer(step2.map).originalPositionFor({ line: 1, column: 0 }) - .source - expect(source).toEqual('../source/a.css') + source = consumer(step2.map).originalPositionFor({ + line: 1, + column: 0 + }).source + expect(source).toBe('../source/a.css') }) it('works with different types of maps', () => { @@ -375,9 +385,11 @@ it('works with different types of maps', () => { to: 'c.css', map: { prev: i } }) - let source = consumer(step2.map).originalPositionFor({ line: 1, column: 0 }) - .source - expect(source).toEqual('a.css') + let source = consumer(step2.map).originalPositionFor({ + line: 1, + column: 0 + }).source + expect(source).toBe('a.css') } }) @@ -388,7 +400,7 @@ it('sets source content by default', () => { map: true }) - expect(read(result).sourceContentFor('../a.css')).toEqual('a { }') + expect(read(result).sourceContentFor('../a.css')).toBe('a { }') }) it('misses source content on request', () => { @@ -467,7 +479,7 @@ it('supports UTF-8', () => { to: 'выход.css' }) - expect(read(step2).file).toEqual('выход.css') + expect(read(step2).file).toBe('выход.css') }) it('generates map for node created manually', () => { @@ -491,12 +503,12 @@ it('uses input file name as output file name', () => { from: 'a.css', map: { inline: false } }) - expect(result.map.toJSON().file).toEqual('a.css') + expect(result.map.toJSON().file).toBe('a.css') }) it('uses to.css as default output name', () => { let result = doubler.process('a{}', { map: { inline: false } }) - expect(result.map.toJSON().file).toEqual('to.css') + expect(result.map.toJSON().file).toBe('to.css') }) it('supports annotation comment in any place', () => { @@ -507,7 +519,7 @@ it('supports annotation comment in any place', () => { map: { inline: false } }) - expect(result.css).toEqual('a { }\n/*# sourceMappingURL=b.css.map */') + expect(result.css).toBe('a { }\n/*# sourceMappingURL=b.css.map */') }) it('does not update annotation on request', () => { @@ -518,7 +530,7 @@ it('does not update annotation on request', () => { map: { annotation: false, inline: false } }) - expect(result.css).toEqual('a { }/*# sourceMappingURL=a.css.map */') + expect(result.css).toBe('a { }/*# sourceMappingURL=a.css.map */') }) it('clears source map', () => { @@ -554,7 +566,7 @@ it('preserves absolute urls in `to`', () => { to: 'http://example.com/a.css', map: { inline: false } }) - expect(result.map.toJSON().file).toEqual('http://example.com/a.css') + expect(result.map.toJSON().file).toBe('http://example.com/a.css') }) it('preserves absolute urls in sources', () => { @@ -591,7 +603,7 @@ it('preserves absolute urls in sources from previous map', () => { inline: false } }) - expect(result2.root.source?.input.file).toEqual('http://example.com/b.css') + expect(result2.root.source?.input.file).toBe('http://example.com/b.css') expect(result2.map.toJSON().sources).toEqual(['http://example.com/a.css']) }) @@ -605,7 +617,7 @@ it('allows dynamic annotations', () => { } } }) - expect(result.css).toEqual('a{}\n/*# sourceMappingURL=out.css-a.map */') + expect(result.css).toBe('a{}\n/*# sourceMappingURL=out.css-a.map */') }) it('uses URLs in sources', () => { diff --git a/test/node.test.ts b/test/node.test.ts index a20a5cfe6..ff347e400 100644 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -31,7 +31,7 @@ it('error() generates custom error', () => { it('error() generates custom error for nodes without source', () => { let rule = new Rule({ selector: 'a' }) let error = rule.error('Test') - expect(error.message).toEqual(': Test') + expect(error.message).toBe(': Test') }) it('error() highlights index', () => { @@ -74,9 +74,9 @@ it('warn() attaches a warning to the result object', async () => { } let result = await postcss([warner]).process('a{}', { from: undefined }) - expect(warning.type).toEqual('warning') - expect(warning.text).toEqual('FIRST!') - expect(warning.plugin).toEqual('warner') + expect(warning.type).toBe('warning') + expect(warning.text).toBe('FIRST!') + expect(warning.plugin).toBe('warner') expect(result.warnings()).toEqual([warning]) }) @@ -88,7 +88,7 @@ it('warn() accepts options', () => { let result = postcss([warner]).process('a{}') expect(result.warnings()).toHaveLength(1) let warning = result.warnings()[0] as any - expect(warning.index).toEqual(1) + expect(warning.index).toBe(1) }) it('remove() removes node from parent', () => { @@ -98,7 +98,7 @@ it('remove() removes node from parent', () => { decl.remove() expect(rule.nodes).toHaveLength(0) - expect(decl.parent).not.toBeDefined() + expect(decl.parent).toBeUndefined() }) it('replaceWith() inserts new node', () => { @@ -130,7 +130,7 @@ it('replaceWith() inserts new root', () => { a.append(new Rule({ selector: 'b' })) root.first?.replaceWith(a) - expect(root.toString()).toEqual('a {}\nb {}') + expect(root.toString()).toBe('a {}\nb {}') }) it('replaceWith() replaces node', () => { @@ -139,9 +139,9 @@ it('replaceWith() replaces node', () => { let one = a.first as Declaration let result = one.replaceWith({ prop: 'fix', value: 'fixed' }) - expect(result.prop).toEqual('one') - expect(result.parent).not.toBeDefined() - expect(css.toString()).toEqual('a{fix:fixed;two:2}') + expect(result.prop).toBe('one') + expect(result.parent).toBeUndefined() + expect(css.toString()).toBe('a{fix:fixed;two:2}') }) it('replaceWith() can include itself', () => { @@ -152,15 +152,15 @@ it('replaceWith() can include itself', () => { let afterDecl = { prop: 'fix2', value: 'fixedTwo' } one.replaceWith(beforeDecl, one, afterDecl) - expect(css.toString()).toEqual('a{fix1:fixedOne;one:1;fix2:fixedTwo;two:2}') + expect(css.toString()).toBe('a{fix1:fixedOne;one:1;fix2:fixedTwo;two:2}') }) it('toString() accepts custom stringifier', () => { - expect(new Rule({ selector: 'a' }).toString(stringify)).toEqual('a') + expect(new Rule({ selector: 'a' }).toString(stringify)).toBe('a') }) it('toString() accepts custom syntax', () => { - expect(new Rule({ selector: 'a' }).toString({ stringify })).toEqual('a') + expect(new Rule({ selector: 'a' }).toString({ stringify })).toBe('a') }) it('assign() assigns to node', () => { @@ -181,7 +181,7 @@ it('clone() clones nodes', () => { let clone = rule.clone() - expect(clone.parent).not.toBeDefined() + expect(clone.parent).toBeUndefined() expect(rule.first?.parent).toBe(rule) expect(clone.first?.parent).toBe(clone) @@ -193,12 +193,12 @@ it('clone() clones nodes', () => { it('clone() overrides properties', () => { let rule = new Rule({ selector: 'a' }) let clone = rule.clone({ selector: 'b' }) - expect(clone.selector).toEqual('b') + expect(clone.selector).toBe('b') }) it('clone() keeps code style', () => { let css = parse('@page 1{a{color:black;}}') - expect(css.clone().toString()).toEqual('@page 1{a{color:black;}}') + expect(css.clone().toString()).toBe('@page 1{a{color:black;}}') }) it('clone() works with null in raws', () => { @@ -219,7 +219,7 @@ it('cloneBefore() clones and insert before current node', () => { let result = rule.first?.cloneBefore({ value: '2' }) expect(result).toBe(rule.first) - expect(rule.toString()).toEqual('a {z-index: 2;z-index: 1}') + expect(rule.toString()).toBe('a {z-index: 2;z-index: 1}') }) it('cloneAfter() clones and insert after current node', () => { @@ -229,7 +229,7 @@ it('cloneAfter() clones and insert after current node', () => { let result = rule.first?.cloneAfter({ value: '2' }) expect(result).toBe(rule.last) - expect(rule.toString()).toEqual('a {z-index: 1;z-index: 2}') + expect(rule.toString()).toBe('a {z-index: 1;z-index: 2}') }) it('before() insert before current node', () => { @@ -239,7 +239,7 @@ it('before() insert before current node', () => { let result = rule.first?.before('color: black') expect(result).toBe(rule.last) - expect(rule.toString()).toEqual('a {color: black;z-index: 1}') + expect(rule.toString()).toBe('a {color: black;z-index: 1}') }) it('after() insert after current node', () => { @@ -249,31 +249,31 @@ it('after() insert after current node', () => { let result = rule.first?.after('color: black') expect(result).toBe(rule.first) - expect(rule.toString()).toEqual('a {z-index: 1;color: black}') + expect(rule.toString()).toBe('a {z-index: 1;color: black}') }) it('next() returns next node', () => { let css = parse('a{one:1;two:2}') let a = css.first as Rule expect(a.first?.next()).toBe(a.last) - expect(a.last?.next()).not.toBeDefined() + expect(a.last?.next()).toBeUndefined() }) it('next() returns undefined on no parent', () => { let css = parse('') - expect(css.next()).not.toBeDefined() + expect(css.next()).toBeUndefined() }) it('prev() returns previous node', () => { let css = parse('a{one:1;two:2}') let a = css.first as Rule expect(a.last?.prev()).toBe(a.first) - expect(a.first?.prev()).not.toBeDefined() + expect(a.first?.prev()).toBeUndefined() }) it('prev() returns undefined on no parent', () => { let css = parse('') - expect(css.prev()).not.toBeDefined() + expect(css.prev()).toBeUndefined() }) it('toJSON() cleans parents inside', () => { @@ -281,8 +281,8 @@ it('toJSON() cleans parents inside', () => { rule.append({ prop: 'color', value: 'b' }) let json = rule.toJSON() as any - expect(json.parent).not.toBeDefined() - expect(json.nodes[0].parent).not.toBeDefined() + expect(json.parent).toBeUndefined() + expect(json.nodes[0].parent).toBeUndefined() expect(JSON.stringify(rule)).toEqual( '{"raws":{},"selector":"a","type":"rule","nodes":[' + @@ -312,7 +312,7 @@ it('toJSON() converts custom properties', () => { it('raw() has shortcut to stringifier', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.raw('before')).toEqual('') + expect(rule.raw('before')).toBe('') }) it('root() returns root', () => { @@ -361,34 +361,32 @@ it('cleanRaws() cleans style recursivelly', () => { let css = parse('@page{a{color:black}}') css.cleanRaws() - expect(css.toString()).toEqual( + expect(css.toString()).toBe( '@page {\n a {\n color: black\n }\n}' ) let page = css.first as AtRule let a = page.first as Rule let color = a.first as Declaration - expect(page.raws.before).not.toBeDefined() - expect(color.raws.before).not.toBeDefined() - expect(page.raws.between).not.toBeDefined() - expect(color.raws.between).not.toBeDefined() - expect(page.raws.after).not.toBeDefined() + expect(page.raws.before).toBeUndefined() + expect(color.raws.before).toBeUndefined() + expect(page.raws.between).toBeUndefined() + expect(color.raws.between).toBeUndefined() + expect(page.raws.after).toBeUndefined() }) it('cleanRaws() keeps between on request', () => { let css = parse('@page{a{color:black}}') css.cleanRaws(true) - expect(css.toString()).toEqual( - '@page{\n a{\n color:black\n }\n}' - ) + expect(css.toString()).toBe('@page{\n a{\n color:black\n }\n}') let page = css.first as AtRule let a = page.first as Rule let color = a.first as Declaration expect(page.raws.between).toBeDefined() expect(color.raws.between).toBeDefined() - expect(page.raws.before).not.toBeDefined() - expect(color.raws.before).not.toBeDefined() - expect(page.raws.after).not.toBeDefined() + expect(page.raws.before).toBeUndefined() + expect(color.raws.before).toBeUndefined() + expect(page.raws.after).toBeUndefined() }) it('positionInside() returns position when node starts mid-line', () => { diff --git a/test/parse.test.ts b/test/parse.test.ts index 19ccd07e7..a3645d05c 100644 --- a/test/parse.test.ts +++ b/test/parse.test.ts @@ -19,7 +19,7 @@ eachTest((name, css, json) => { it('parses UTF-8 BOM', () => { let css = parse('\uFEFF@host { a {\f} }') - expect(css.nodes[0].raws.before).toEqual('') + expect(css.nodes[0].raws.before).toBe('') }) it('should has true at `hasBOM` property', () => { @@ -34,15 +34,15 @@ it('should has false at `hasBOM` property', () => { it('saves source file', () => { let css = parse('a {}', { from: 'a.css' }) - expect(css.first?.source?.input.css).toEqual('a {}') + expect(css.first?.source?.input.css).toBe('a {}') expect(css.first?.source?.input.file).toEqual(resolve('a.css')) expect(css.first?.source?.input.from).toEqual(resolve('a.css')) }) it('keeps absolute path in source', () => { let css = parse('a {}', { from: 'http://example.com/a.css' }) - expect(css.first?.source?.input.file).toEqual('http://example.com/a.css') - expect(css.first?.source?.input.from).toEqual('http://example.com/a.css') + expect(css.first?.source?.input.file).toBe('http://example.com/a.css') + expect(css.first?.source?.input.from).toBe('http://example.com/a.css') }) it('saves source file on previous map', () => { @@ -79,25 +79,25 @@ it('ignores wrong close bracket', () => { let root = parse('a { p: ()) }') let a = root.first as Rule let decl = a.first as Declaration - expect(decl.value).toEqual('())') + expect(decl.value).toBe('())') }) it('parses unofficial --mixins', () => { let root = parse(':root { --x { color: pink; }; }') let rule = root.first as Rule let prop = rule.first as Rule - expect(prop.selector).toEqual('--x') + expect(prop.selector).toBe('--x') }) it('ignores symbols before declaration', () => { let root = parse('a { :one: 1 }') let a = root.first as Rule let prop = a.first as Declaration - expect(prop.raws.before).toEqual(' :') + expect(prop.raws.before).toBe(' :') }) it('parses double semicolon after rule', () => { - expect(parse('a { };;').toString()).toEqual('a { };;') + expect(parse('a { };;').toString()).toBe('a { };;') }) it('throws on unclosed blocks', () => { diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 8d3dd4a2e..5d4757c76 100644 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -54,7 +54,7 @@ it('creates plugin', () => { expect(console.warn).toHaveBeenCalledWith(expect.stringMatching(/test/)) let func1: any = postcss(plugin).plugins[0] - expect(func1.postcssPlugin).toEqual('test') + expect(func1.postcssPlugin).toBe('test') expect(func1.postcssVersion).toMatch(/\d+.\d+.\d+/) let func2: any = postcss(plugin()).plugins[0] @@ -62,10 +62,10 @@ it('creates plugin', () => { expect(func2.postcssVersion).toEqual(func1.postcssVersion) let result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }') - expect(result1.css).toEqual('a{ two: 2 }') + expect(result1.css).toBe('a{ two: 2 }') let result2 = postcss(plugin).process('a{ one: 1; two: 2 }') - expect(result2.css).toEqual('a{ one: 1 }') + expect(result2.css).toBe('a{ one: 1 }') }) it('does not call plugin constructor', () => { @@ -95,22 +95,22 @@ it('creates a shortcut to process css', async () => { }) let result1 = plugin.process('a{value:foo}') - expect(result1.css).toEqual('a{value:bar}') + expect(result1.css).toBe('a{value:bar}') let result2 = plugin.process('a{value:foo}', {}, 'baz') - expect(result2.css).toEqual('a{value:baz}') + expect(result2.css).toBe('a{value:baz}') let result = await plugin.process('a{value:foo}', { from: 'a' }, 'baz') expect(result.opts).toEqual({ from: 'a' }) - expect(result.css).toEqual('a{value:baz}') + expect(result.css).toBe('a{value:baz}') }) it('contains parser', () => { - expect(postcss.parse('').type).toEqual('root') + expect(postcss.parse('').type).toBe('root') }) it('contains stringifier', () => { - expect(typeof postcss.stringify).toEqual('function') + expect(typeof postcss.stringify).toBe('function') }) it('allows to build own CSS', () => { diff --git a/test/previous-map.test.ts b/test/previous-map.test.ts index dff70a29f..939257db4 100644 --- a/test/previous-map.test.ts +++ b/test/previous-map.test.ts @@ -21,7 +21,7 @@ afterEach(() => { }) it('misses property if no map', () => { - expect(parse('a{}').source?.input.map).not.toBeDefined() + expect(parse('a{}').source?.input.map).toBeUndefined() }) it('creates property if map present', () => { @@ -38,10 +38,10 @@ it('sets annotation property', () => { let mapOpts = { map: { prev: map } } let root1 = parse('a{}', mapOpts) - expect(root1.source?.input.map.annotation).not.toBeDefined() + expect(root1.source?.input.map.annotation).toBeUndefined() let root2 = parse('a{}/*# sourceMappingURL=a.css.map */', mapOpts) - expect(root2.source?.input.map.annotation).toEqual('a.css.map') + expect(root2.source?.input.map.annotation).toBe('a.css.map') }) it('checks previous sources content', () => { @@ -124,7 +124,7 @@ it('removes map on request', () => { let css = `a{}\n/*# sourceMappingURL=${uri} */` let input = parse(css, { map: { prev: false } }).source?.input - expect(input?.map).not.toBeDefined() + expect(input?.map).toBeUndefined() }) it('raises on unknown inline encoding', () => { @@ -207,7 +207,7 @@ it('accepts a function', () => { } let root = parse(css, opts) expect(root.source?.input.map.text).toEqual(map) - expect(root.source?.input.map.annotation).toEqual('a.map') + expect(root.source?.input.map.annotation).toBe('a.map') }) it('calls function with opts.from', () => { @@ -220,7 +220,7 @@ it('calls function with opts.from', () => { from: 'a.css', map: { prev: from => { - expect(from).toEqual('a.css') + expect(from).toBe('a.css') return file } } diff --git a/test/processor.test.ts b/test/processor.test.ts index 06eafab91..1d28f848a 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -109,19 +109,19 @@ it('throws on wrong format', () => { it('processes CSS', () => { let result = beforeFix.process('a::before{top:0}') - expect(result.css).toEqual('a::before{content:"";top:0}') + expect(result.css).toBe('a::before{content:"";top:0}') }) it('processes parsed AST', () => { let root = parse('a::before{top:0}') let result = beforeFix.process(root) - expect(result.css).toEqual('a::before{content:"";top:0}') + expect(result.css).toBe('a::before{content:"";top:0}') }) it('processes previous result', () => { let result = new Processor([() => {}]).process('a::before{top:0}') result = beforeFix.process(result) - expect(result.css).toEqual('a::before{content:"";top:0}') + expect(result.css).toBe('a::before{content:"";top:0}') }) it('takes maps from previous result', () => { @@ -144,7 +144,7 @@ it('inlines maps from previous result', () => { to: 'c.css', map: { inline: true } }) - expect(two.map).not.toBeDefined() + expect(two.map).toBeUndefined() }) it('throws with file name', () => { @@ -169,14 +169,14 @@ it('allows to replace Root', () => { result.root = new Root() } ]) - expect(processor.process('a {}').css).toEqual('') + expect(processor.process('a {}').css).toBe('') }) it('returns LazyResult object', () => { let result = new Processor([() => {}]).process('a{}') expect(result instanceof LazyResult).toBe(true) - expect(result.css).toEqual('a{}') - expect(result.toString()).toEqual('a{}') + expect(result.css).toBe('a{}') + expect(result.toString()).toBe('a{}') }) it('calls all plugins once', async () => { @@ -195,7 +195,7 @@ it('calls all plugins once', async () => { result.map result.root await result - expect(calls).toEqual('ab') + expect(calls).toBe('ab') }) it('parses, converts and stringifies CSS', () => { @@ -205,7 +205,7 @@ it('parses, converts and stringifies CSS', () => { expect(css instanceof Root).toBe(true) } ]).process('a {}').css - ).toEqual('string') + ).toBe('string') }) it('send result to plugins', () => { @@ -242,7 +242,7 @@ it('supports async plugins', async () => { new Promise(resolve => { starts += 1 setTimeout(() => { - expect(starts).toEqual(1) + expect(starts).toBe(1) css.append('a {}') finish += 1 @@ -251,8 +251,8 @@ it('supports async plugins', async () => { }) let async2 = (css: Root): Promise => new Promise(resolve => { - expect(starts).toEqual(1) - expect(finish).toEqual(1) + expect(starts).toBe(1) + expect(finish).toBe(1) starts += 1 setTimeout(() => { @@ -262,14 +262,14 @@ it('supports async plugins', async () => { }, 1) }) let r = await new Processor([async1, async2]).process('', { from: 'a' }) - expect(starts).toEqual(2) - expect(finish).toEqual(2) - expect(r.css).toEqual('a {}b {}') + expect(starts).toBe(2) + expect(finish).toBe(2) + expect(r.css).toBe('a {}b {}') }) it('works async without plugins', async () => { let r = await new Processor([() => {}]).process('a {}', { from: 'a' }) - expect(r.css).toEqual('a {}') + expect(r.css).toBe('a {}') }) it('runs async plugin only once', async () => { @@ -289,7 +289,7 @@ it('runs async plugin only once', async () => { result.then(() => {}) await result await result - expect(calls).toEqual(1) + expect(calls).toBe(1) }) it('supports async errors', async () => { @@ -326,7 +326,7 @@ it('throws parse error in async', async () => { let err = await catchError(() => new Processor([() => {}]).process('a{', { from: undefined }) ) - expect(err.message).toEqual(':1:1: Unclosed block') + expect(err.message).toBe(':1:1: Unclosed block') }) it('throws error on sync method to async plugin', () => { @@ -380,9 +380,9 @@ it('remembers errors', async () => { } catch (e) { asyncError = e } - expect(asyncError.message).toEqual('test') + expect(asyncError.message).toBe('test') - expect(calls).toEqual(1) + expect(calls).toBe(1) }) it('checks plugin compatibility', () => { @@ -448,14 +448,14 @@ it('uses custom parsers', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { parser: prs, from: undefined }) expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toEqual('ok') + expect(result.css).toBe('ok') }) it('uses custom parsers from object', async () => { let processor = new Processor([]) let syntax = { parse: prs, stringify: str } let result = await processor.process('a{}', { parser: syntax, from: 'a' }) - expect(result.css).toEqual('ok') + expect(result.css).toBe('ok') }) it('uses custom stringifier', async () => { @@ -463,7 +463,7 @@ it('uses custom stringifier', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { stringifier: str, from: 'a' }) expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toEqual('!') + expect(result.css).toBe('!') }) it('uses custom stringifier from object', async () => { @@ -472,7 +472,7 @@ it('uses custom stringifier from object', async () => { let syntax = { parse: prs, stringify: str } let result = await processor.process('', { stringifier: syntax, from: 'a' }) expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toEqual('!') + expect(result.css).toBe('!') }) it('uses custom stringifier with source maps', async () => { @@ -493,7 +493,7 @@ it('uses custom syntax', async () => { from: undefined }) expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toEqual('ok!') + expect(result.css).toBe('ok!') }) it('contains PostCSS version', () => { diff --git a/test/result.test.ts b/test/result.test.ts index 126c6c69d..8d35ad724 100644 --- a/test/result.test.ts +++ b/test/result.test.ts @@ -39,7 +39,7 @@ it('allows to override plugin', () => { } let result = postcss([plugin]).process('a{}').sync() - expect(result.messages[0].plugin).toEqual('test-plugin#one') + expect(result.messages[0].plugin).toBe('test-plugin#one') }) it('allows Root', () => { @@ -47,7 +47,7 @@ it('allows Root', () => { let result = new Result(processor, css, {}) result.warn('TT', { node: css.first }) - expect(result.messages[0].toString()).toEqual(':1:1: TT') + expect(result.messages[0].toString()).toBe(':1:1: TT') }) it('returns only warnings', () => { diff --git a/test/root.test.ts b/test/root.test.ts index 82b056355..bfec257f1 100644 --- a/test/root.test.ts +++ b/test/root.test.ts @@ -3,25 +3,25 @@ import { Result, parse } from '../lib/postcss.js' it('prepend() fixes spaces on insert before first', () => { let css = parse('a {} b {}') css.prepend({ selector: 'em' }) - expect(css.toString()).toEqual('em {} a {} b {}') + expect(css.toString()).toBe('em {} a {} b {}') }) it('prepend() fixes spaces on multiple inserts before first', () => { let css = parse('a {} b {}') css.prepend({ selector: 'em' }, { selector: 'strong' }) - expect(css.toString()).toEqual('em {} strong {} a {} b {}') + expect(css.toString()).toBe('em {} strong {} a {} b {}') }) it('prepend() uses default spaces on only first', () => { let css = parse('a {}') css.prepend({ selector: 'em' }) - expect(css.toString()).toEqual('em {}\na {}') + expect(css.toString()).toBe('em {}\na {}') }) it('append() sets new line between rules in multiline files', () => { let a = parse('a {}\n\na {}\n') let b = parse('b {}\n') - expect(a.append(b).toString()).toEqual('a {}\n\na {}\n\nb {}\n') + expect(a.append(b).toString()).toBe('a {}\n\na {}\n\nb {}\n') }) it('insertAfter() does not use before of first rule', () => { @@ -29,16 +29,16 @@ it('insertAfter() does not use before of first rule', () => { css.insertAfter(0, { selector: '.a' }) css.insertAfter(2, { selector: '.b' }) - expect(css.nodes[1].raws.before).not.toBeDefined() - expect(css.nodes[3].raws.before).toEqual(' ') - expect(css.toString()).toEqual('a{} .a{} b{} .b{}') + expect(css.nodes[1].raws.before).toBeUndefined() + expect(css.nodes[3].raws.before).toBe(' ') + expect(css.toString()).toBe('a{} .a{} b{} .b{}') }) it('fixes spaces on removing first rule', () => { let css = parse('a{}\nb{}\n') if (!css.first) throw new Error('No nodes were parsed') css.first.remove() - expect(css.toString()).toEqual('b{}\n') + expect(css.toString()).toBe('b{}\n') }) it('keeps spaces on moving root', () => { @@ -46,11 +46,11 @@ it('keeps spaces on moving root', () => { let css2 = parse('') css2.append(css1) - expect(css2.toString()).toEqual('a{}\nb{}') + expect(css2.toString()).toBe('a{}\nb{}') let css3 = parse('\n') css3.append(css2.nodes) - expect(css3.toString()).toEqual('a{}\nb{}\n') + expect(css3.toString()).toBe('a{}\nb{}\n') }) it('generates result with map', () => { diff --git a/test/rule.test.ts b/test/rule.test.ts index 6c10c7a57..3b96ad27a 100644 --- a/test/rule.test.ts +++ b/test/rule.test.ts @@ -2,7 +2,7 @@ import { Rule, parse } from '../lib/postcss.js' it('initializes with properties', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.selector).toEqual('a') + expect(rule.selector).toBe('a') }) it('returns array in selectors', () => { @@ -28,52 +28,52 @@ it('is smart about selectors commas', () => { it('receive array in selectors', () => { let rule = new Rule({ selector: 'i, b' }) rule.selectors = ['em', 'strong'] - expect(rule.selector).toEqual('em, strong') + expect(rule.selector).toBe('em, strong') }) it('saves separator in selectors', () => { let rule = new Rule({ selector: 'i,\nb' }) rule.selectors = ['em', 'strong'] - expect(rule.selector).toEqual('em,\nstrong') + expect(rule.selector).toBe('em,\nstrong') }) it('uses between to detect separator in selectors', () => { let rule = new Rule({ selector: 'b', raws: { between: '' } }) rule.selectors = ['b', 'strong'] - expect(rule.selector).toEqual('b,strong') + expect(rule.selector).toBe('b,strong') }) it('uses space in separator be default in selectors', () => { let rule = new Rule({ selector: 'b' }) rule.selectors = ['b', 'strong'] - expect(rule.selector).toEqual('b, strong') + expect(rule.selector).toBe('b, strong') }) it('selectors works in constructor', () => { let rule = new Rule({ selectors: ['a', 'b'] }) - expect(rule.selector).toEqual('a, b') + expect(rule.selector).toBe('a, b') }) it('inserts default spaces', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.toString()).toEqual('a {}') + expect(rule.toString()).toBe('a {}') rule.append({ prop: 'color', value: 'black' }) - expect(rule.toString()).toEqual('a {\n color: black\n}') + expect(rule.toString()).toBe('a {\n color: black\n}') }) it('clones spaces from another rule', () => { let root = parse('b{\n }') let rule = new Rule({ selector: 'em' }) root.append(rule) - expect(root.toString()).toEqual('b{\n }\nem{\n }') + expect(root.toString()).toBe('b{\n }\nem{\n }') }) it('uses different spaces for empty rules', () => { let root = parse('a{}\nb{\n a:1\n}') let rule = new Rule({ selector: 'em' }) root.append(rule) - expect(root.toString()).toEqual('a{}\nb{\n a:1\n}\nem{}') + expect(root.toString()).toBe('a{}\nb{\n a:1\n}\nem{}') rule.append({ prop: 'top', value: '0' }) - expect(root.toString()).toEqual('a{}\nb{\n a:1\n}\nem{\n top:0\n}') + expect(root.toString()).toBe('a{}\nb{\n a:1\n}\nem{\n top:0\n}') }) diff --git a/test/stringifier.test.js b/test/stringifier.test.js index e929e9c6a..31d8f9bb1 100644 --- a/test/stringifier.test.js +++ b/test/stringifier.test.js @@ -9,42 +9,42 @@ beforeAll(() => { it('creates trimmed/raw property', () => { let b = new Node({ one: 'trim' }) b.raws.one = { value: 'trim', raw: 'raw' } - expect(str.rawValue(b, 'one')).toEqual('raw') + expect(str.rawValue(b, 'one')).toBe('raw') b.one = 'trim1' - expect(str.rawValue(b, 'one')).toEqual('trim1') + expect(str.rawValue(b, 'one')).toBe('trim1') }) it('works without rawValue magic', () => { let b = new Node() b.one = '1' - expect(b.one).toEqual('1') - expect(str.rawValue(b, 'one')).toEqual('1') + expect(b.one).toBe('1') + expect(str.rawValue(b, 'one')).toBe('1') }) it('uses node raw', () => { let rule = new Rule({ selector: 'a', raws: { between: '\n' } }) - expect(str.raw(rule, 'between', 'beforeOpen')).toEqual('\n') + expect(str.raw(rule, 'between', 'beforeOpen')).toBe('\n') }) it('hacks before for nodes without parent', () => { let rule = new Rule({ selector: 'a' }) - expect(str.raw(rule, 'before')).toEqual('') + expect(str.raw(rule, 'before')).toBe('') }) it('hacks before for first node', () => { let root = new Root() root.append(new Rule({ selector: 'a' })) - expect(str.raw(root.first, 'before')).toEqual('') + expect(str.raw(root.first, 'before')).toBe('') }) it('hacks before for first decl', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) - expect(str.raw(decl, 'before')).toEqual('') + expect(str.raw(decl, 'before')).toBe('') let rule = new Rule({ selector: 'a' }) rule.append(decl) - expect(str.raw(decl, 'before')).toEqual('\n ') + expect(str.raw(decl, 'before')).toBe('\n ') }) it('detects after raw', () => { @@ -52,18 +52,18 @@ it('detects after raw', () => { root.append({ selector: 'a', raws: { after: ' ' } }) root.first.append({ prop: 'color', value: 'black' }) root.append({ selector: 'a' }) - expect(str.raw(root.last, 'after')).toEqual(' ') + expect(str.raw(root.last, 'after')).toBe(' ') }) it('uses defaults without parent', () => { let rule = new Rule({ selector: 'a' }) - expect(str.raw(rule, 'between', 'beforeOpen')).toEqual(' ') + expect(str.raw(rule, 'between', 'beforeOpen')).toBe(' ') }) it('uses defaults for unique node', () => { let root = new Root() root.append(new Rule({ selector: 'a' })) - expect(str.raw(root.first, 'between', 'beforeOpen')).toEqual(' ') + expect(str.raw(root.first, 'between', 'beforeOpen')).toBe(' ') }) it('clones raw from first node', () => { @@ -71,7 +71,7 @@ it('clones raw from first node', () => { root.append(new Rule({ selector: 'a', raws: { between: '' } })) root.append(new Rule({ selector: 'b' })) - expect(str.raw(root.last, 'between', 'beforeOpen')).toEqual('') + expect(str.raw(root.last, 'between', 'beforeOpen')).toBe('') }) it('indents by default', () => { @@ -90,17 +90,17 @@ it('clones style', () => { let spaces = parse('@page {\n a {\n }\n}') compress.first.first.append({ prop: 'color', value: 'black' }) - expect(compress.toString()).toEqual('@page{ a{ color: black } }') + expect(compress.toString()).toBe('@page{ a{ color: black } }') spaces.first.first.append({ prop: 'color', value: 'black' }) - expect(spaces.toString()).toEqual('@page {\n a {\n color: black\n }\n}') + expect(spaces.toString()).toBe('@page {\n a {\n color: black\n }\n}') }) it('clones indent', () => { let root = parse('a{\n}') root.first.append({ text: 'a' }) root.first.append({ text: 'b', raws: { before: '\n\n ' } }) - expect(root.toString()).toEqual('a{\n\n /* a */\n\n /* b */\n}') + expect(root.toString()).toBe('a{\n\n /* a */\n\n /* b */\n}') }) it('clones declaration before for comment', () => { @@ -111,14 +111,14 @@ it('clones declaration before for comment', () => { value: '1', raws: { before: '\n\n ' } }) - expect(root.toString()).toEqual('a{\n\n /* a */\n\n a: 1\n}') + expect(root.toString()).toBe('a{\n\n /* a */\n\n a: 1\n}') }) it('clones indent by types', () => { let css = parse('a {\n *color: black\n}\n\nb {\n}') css.append(new Rule({ selector: 'em' })) css.last.append({ prop: 'z-index', value: '1' }) - expect(css.last.first.raw('before')).toEqual('\n ') + expect(css.last.first.raw('before')).toBe('\n ') }) it('ignores non-space symbols in indent cloning', () => { @@ -126,8 +126,8 @@ it('ignores non-space symbols in indent cloning', () => { css.append(new Rule({ selector: 'em' })) css.last.append({ prop: 'z-index', value: '1' }) - expect(css.last.raw('before')).toEqual('\n\n') - expect(css.last.first.raw('before')).toEqual('\n ') + expect(css.last.raw('before')).toBe('\n\n') + expect(css.last.first.raw('before')).toBe('\n ') }) it('clones indent by before and after', () => { @@ -135,8 +135,8 @@ it('clones indent by before and after', () => { css.first.append(new Rule({ selector: 'b' })) css.first.last.append({ prop: 'z-index', value: '1' }) - expect(css.first.last.raw('before')).toEqual('\n\n ') - expect(css.first.last.raw('after')).toEqual('') + expect(css.first.last.raw('before')).toBe('\n\n ') + expect(css.first.last.raw('after')).toBe('') }) it('clones semicolon only from rules with children', () => { @@ -149,19 +149,19 @@ it('clones only spaces in before', () => { css.first.append({ prop: 'two', value: '2' }) css.append({ name: 'keyframes', params: 'a' }) css.last.append({ selector: 'from' }) - expect(css.toString()).toEqual('a{*one:1;two:2}\n@keyframes a{\nfrom{}}') + expect(css.toString()).toBe('a{*one:1;two:2}\n@keyframes a{\nfrom{}}') }) it('clones only spaces in between', () => { let css = parse('a{one/**/:1}') css.first.append({ prop: 'two', value: '2' }) - expect(css.toString()).toEqual('a{one/**/:1;two:2}') + expect(css.toString()).toBe('a{one/**/:1;two:2}') }) it('uses optional raws.indent', () => { let rule = new Rule({ selector: 'a', raws: { indent: ' ' } }) rule.append({ prop: 'color', value: 'black' }) - expect(rule.toString()).toEqual('a {\n color: black\n}') + expect(rule.toString()).toBe('a {\n color: black\n}') }) it('handles nested roots', () => { @@ -170,7 +170,7 @@ it('handles nested roots', () => { subRoot.append(new AtRule({ name: 'foo' })) root.append(subRoot) - expect(root.toString()).toEqual('@foo') + expect(root.toString()).toBe('@foo') }) it('handles root', () => { @@ -179,7 +179,7 @@ it('handles root', () => { let s = root.toString() - expect(s).toEqual('@foo') + expect(s).toBe('@foo') }) it('handles root with after', () => { @@ -188,14 +188,14 @@ it('handles root with after', () => { let s = root.toString() - expect(s).toEqual('@foo ') + expect(s).toBe('@foo ') }) it('pass nodes to document', () => { let root = new Root() let document = new Document({ nodes: [root] }) - expect(document.toString()).toEqual('') + expect(document.toString()).toBe('') }) it('handles document with one root', () => { @@ -207,7 +207,7 @@ it('handles document with one root', () => { let s = document.toString() - expect(s).toEqual('@foo') + expect(s).toBe('@foo') }) it('handles document with one root and after raw', () => { @@ -218,7 +218,7 @@ it('handles document with one root and after raw', () => { let s = document.toString() - expect(s).toEqual('@foo ') + expect(s).toBe('@foo ') }) it('handles document with one root and before and after', () => { @@ -229,7 +229,7 @@ it('handles document with one root and before and after', () => { let s = document.toString() - expect(s).toEqual('@fooAFTER') + expect(s).toBe('@fooAFTER') }) it('handles document with three roots without raws', () => { @@ -249,7 +249,7 @@ it('handles document with three roots without raws', () => { let s = document.toString() - expect(s).toEqual('@fooa {}color: black') + expect(s).toBe('@fooa {}color: black') }) it('handles document with three roots, with before and after raws', () => { @@ -269,5 +269,5 @@ it('handles document with three roots, with before and after raws', () => { let s = document.toString() - expect(s).toEqual('a.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE') + expect(s).toBe('a.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE') }) diff --git a/test/tokenize.test.js b/test/tokenize.test.js index 7b56098f6..56d353616 100644 --- a/test/tokenize.test.js +++ b/test/tokenize.test.js @@ -317,13 +317,13 @@ it('ignore unclosed per token request', () => { it('provides correct position', () => { let css = 'Three tokens' let processor = tokenizer(new Input(css)) - expect(processor.position()).toEqual(0) + expect(processor.position()).toBe(0) processor.nextToken() - expect(processor.position()).toEqual(5) + expect(processor.position()).toBe(5) processor.nextToken() - expect(processor.position()).toEqual(6) + expect(processor.position()).toBe(6) processor.nextToken() - expect(processor.position()).toEqual(12) + expect(processor.position()).toBe(12) processor.nextToken() - expect(processor.position()).toEqual(12) + expect(processor.position()).toBe(12) }) diff --git a/test/visitor.test.ts b/test/visitor.test.ts index 44e568bd5..6db5034c6 100644 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -265,7 +265,7 @@ it('works visitor plugin will-change', async () => { '.foo { will-change: transform; }', { from: 'a.css' } ) - expect(css).toEqual( + expect(css).toBe( '.foo { backface-visibility: hidden; will-change: transform; }' ) }) @@ -316,7 +316,7 @@ it('works with at-rule params', () => { '@media (screen) {}', { from: 'a.css' } ) - expect(css).toEqual('@media (mobile) {}') + expect(css).toBe('@media (mobile) {}') }) it('wraps node to proxies', () => { @@ -521,7 +521,7 @@ it('adds plugin to error', async () => { error = e } expect(error.message).toEqual(`broken: ${resolve('broken.css')}:1:1: test`) - expect(error.postcssNode.toString()).toEqual('a{}') + expect(error.postcssNode.toString()).toBe('a{}') expect(error.stack).toContain('broken.css:1:1') }) @@ -540,7 +540,7 @@ it('adds plugin to async error', async () => { error = e } expect(error.message).toEqual(`broken: ${resolve('broken.css')}:1:1: test`) - expect(error.postcssNode.toString()).toEqual('a{}') + expect(error.postcssNode.toString()).toBe('a{}') expect(error.stack).toContain('broken.css:1:1') }) @@ -558,7 +558,7 @@ it('adds sync plugin to async error', async () => { error = e } expect(error.message).toEqual(`broken: ${resolve('broken.css')}:1:1: test`) - expect(error.postcssNode.toString()).toEqual('a{}') + expect(error.postcssNode.toString()).toBe('a{}') expect(error.stack).toContain('broken.css:1:1') }) @@ -575,8 +575,8 @@ it('adds node to error', async () => { } catch (e) { error = e } - expect(error.message).toEqual('test') - expect(error.postcssNode.toString()).toEqual('a{}') + expect(error.message).toBe('test') + expect(error.postcssNode.toString()).toBe('a{}') expect(error.stack).toContain('broken.css:1:1') }) @@ -594,8 +594,8 @@ it('adds node to async error', async () => { } catch (e) { error = e } - expect(error.message).toEqual('test') - expect(error.postcssNode.toString()).toEqual('a{}') + expect(error.message).toBe('test') + expect(error.postcssNode.toString()).toBe('a{}') expect(error.stack).toContain('broken.css:1:1') }) @@ -616,9 +616,9 @@ it('shows error on sync call async plugins', () => { it('passes helpers', async () => { function check(node: AnyNode, helpers: Helpers): void { expect(helpers.result.messages).toEqual([]) - expect(typeof helpers.postcss).toEqual('function') - expect(helpers.comment().type).toEqual('comment') - expect(new helpers.Comment().type).toEqual('comment') + expect(typeof helpers.postcss).toBe('function') + expect(helpers.comment().type).toBe('comment') + expect(new helpers.Comment().type).toBe('comment') expect(helpers.list).toBe(postcss.list) } @@ -653,9 +653,9 @@ it('passes helpers', async () => { it('passes helpers in a document', async () => { function check(node: AnyNode, helpers: Helpers): void { expect(helpers.result.messages).toEqual([]) - expect(typeof helpers.postcss).toEqual('function') - expect(helpers.comment().type).toEqual('comment') - expect(new helpers.Comment().type).toEqual('comment') + expect(typeof helpers.postcss).toBe('function') + expect(helpers.comment().type).toBe('comment') + expect(new helpers.Comment().type).toBe('comment') expect(helpers.list).toBe(postcss.list) } @@ -704,7 +704,7 @@ it('detects non-changed values', () => { postcss([plugin]).process('a{ color: black; background: white; }', { from: 'a.css' }).css - ).toEqual('a{ color: red; background: red; }') + ).toBe('a{ color: red; background: red; }') }) it('allows runtime listeners', () => { @@ -727,7 +727,7 @@ it('allows runtime listeners', () => { } expect( postcss([plugin]).process('a{ color: black }', { from: 'a.css' }).css - ).toEqual('a.css{ color: red }') + ).toBe('a.css{ color: red }') expect(root).toBe(true) }) @@ -742,7 +742,7 @@ it('works correctly with nodes changes', () => { } expect( postcss([plugin]).process('a{ color: black }', { from: 'a.css' }).css - ).toEqual('a{ z-index: 1; color: black }') + ).toBe('a{ z-index: 1; color: black }') }) it('throws error on unknown plugin property', () => { @@ -1407,7 +1407,7 @@ it('throws error from async OnceExit', async () => { error = e } - expect(error.message).toEqual('test Exit error') + expect(error.message).toBe('test Exit error') }) it('rescan Root in another processor', () => { diff --git a/test/warning.test.ts b/test/warning.test.ts index 3f18219a6..9e7ba4200 100644 --- a/test/warning.test.ts +++ b/test/warning.test.ts @@ -4,18 +4,18 @@ import { Warning, parse, decl } from '../lib/postcss.js' it('outputs simple warning', () => { let warning = new Warning('text') - expect(warning.toString()).toEqual('text') + expect(warning.toString()).toBe('text') }) it('outputs warning with plugin', () => { let warning = new Warning('text', { plugin: 'plugin' }) - expect(warning.toString()).toEqual('plugin: text') + expect(warning.toString()).toBe('plugin: text') }) it('outputs warning with position', () => { let root = parse('a{}') let warning = new Warning('text', { node: root.first }) - expect(warning.toString()).toEqual(':1:1: text') + expect(warning.toString()).toBe(':1:1: text') }) it('outputs warning with plugin and node', () => { @@ -53,32 +53,32 @@ it('outputs warning with word', () => { it('generates warning without source', () => { let node = decl({ prop: 'color', value: 'black' }) let warning = new Warning('text', { node }) - expect(warning.toString()).toEqual(': text') + expect(warning.toString()).toBe(': text') }) it('has line and column is undefined by default', () => { let warning = new Warning('text') - expect(warning.line).not.toBeDefined() - expect(warning.column).not.toBeDefined() + expect(warning.line).toBeUndefined() + expect(warning.column).toBeUndefined() }) it('gets position from node', () => { let root = parse('a{}') let warning = new Warning('text', { node: root.first }) - expect(warning.line).toEqual(1) - expect(warning.column).toEqual(1) + expect(warning.line).toBe(1) + expect(warning.column).toBe(1) }) it('gets position from word', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, word: 'b' }) - expect(warning.line).toEqual(1) - expect(warning.column).toEqual(3) + expect(warning.line).toBe(1) + expect(warning.column).toBe(3) }) it('gets position from index', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, index: 2 }) - expect(warning.line).toEqual(1) - expect(warning.column).toEqual(3) + expect(warning.line).toBe(1) + expect(warning.column).toBe(3) }) diff --git a/yarn.lock b/yarn.lock index 72dacd87b..7de55ba7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,6 @@ # yarn lockfile v1 -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" @@ -176,7 +169,7 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": +"@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -318,14 +311,19 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@discoveryjs/json-ext@^0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3" + integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA== + +"@eslint/eslintrc@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.3.tgz#41f08c597025605f672251dcc4e8be66b5ed7366" + integrity sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" + debug "^4.3.2" + espree "^9.0.0" globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" @@ -333,10 +331,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a" + integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A== dependencies: "@humanwhocodes/object-schema" "^1.2.0" debug "^4.1.1" @@ -363,93 +361,94 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.4.tgz#2f1a4bf82b9940065d4818fac271def99ec55e5e" - integrity sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg== +"@jest/console@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.3.1.tgz#e8ea3a475d3f8162f23d69efbfaa9cbe486bee93" + integrity sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.2.4" - jest-util "^27.2.4" + jest-message-util "^27.3.1" + jest-util "^27.3.1" slash "^3.0.0" -"@jest/core@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.4.tgz#0b932da787d64848eab720dbb88e5b7a3f86e539" - integrity sha512-UNQLyy+rXoojNm2MGlapgzWhZD1CT1zcHZQYeiD0xE7MtJfC19Q6J5D/Lm2l7i4V97T30usKDoEtjI8vKwWcLg== +"@jest/core@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.3.1.tgz#04992ef1b58b17c459afb87ab56d81e63d386925" + integrity sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg== dependencies: - "@jest/console" "^27.2.4" - "@jest/reporters" "^27.2.4" - "@jest/test-result" "^27.2.4" - "@jest/transform" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/console" "^27.3.1" + "@jest/reporters" "^27.3.1" + "@jest/test-result" "^27.3.1" + "@jest/transform" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.2.4" - jest-config "^27.2.4" - jest-haste-map "^27.2.4" - jest-message-util "^27.2.4" + jest-changed-files "^27.3.0" + jest-config "^27.3.1" + jest-haste-map "^27.3.1" + jest-message-util "^27.3.1" jest-regex-util "^27.0.6" - jest-resolve "^27.2.4" - jest-resolve-dependencies "^27.2.4" - jest-runner "^27.2.4" - jest-runtime "^27.2.4" - jest-snapshot "^27.2.4" - jest-util "^27.2.4" - jest-validate "^27.2.4" - jest-watcher "^27.2.4" + jest-resolve "^27.3.1" + jest-resolve-dependencies "^27.3.1" + jest-runner "^27.3.1" + jest-runtime "^27.3.1" + jest-snapshot "^27.3.1" + jest-util "^27.3.1" + jest-validate "^27.3.1" + jest-watcher "^27.3.1" micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.4.tgz#db3e60f7dd30ab950f6ce2d6d7293ed9a6b7cbcd" - integrity sha512-wkuui5yr3SSQW0XD0Qm3TATUbL/WE3LDEM3ulC+RCQhMf2yxhci8x7svGkZ4ivJ6Pc94oOzpZ6cdHBAMSYd1ew== +"@jest/environment@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.3.1.tgz#2182defbce8d385fd51c5e7c7050f510bd4c86b1" + integrity sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw== dependencies: - "@jest/fake-timers" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/fake-timers" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" - jest-mock "^27.2.4" + jest-mock "^27.3.0" -"@jest/fake-timers@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.4.tgz#00df08bd60332bd59503cb5b6db21e4903785f86" - integrity sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w== +"@jest/fake-timers@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" + integrity sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.2.4" - jest-mock "^27.2.4" - jest-util "^27.2.4" + jest-message-util "^27.3.1" + jest-mock "^27.3.0" + jest-util "^27.3.1" -"@jest/globals@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.4.tgz#0aeb22b011f8c8c4b8ff3b4dbd1ee0392fe0dd8a" - integrity sha512-DRsRs5dh0i+fA9mGHylTU19+8fhzNJoEzrgsu+zgJoZth3x8/0juCQ8nVVdW1er4Cqifb/ET7/hACYVPD0dBEA== +"@jest/globals@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.3.1.tgz#ce1dfb03d379237a9da6c1b99ecfaca1922a5f9e" + integrity sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg== dependencies: - "@jest/environment" "^27.2.4" - "@jest/types" "^27.2.4" - expect "^27.2.4" + "@jest/environment" "^27.3.1" + "@jest/types" "^27.2.5" + expect "^27.3.1" -"@jest/reporters@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.4.tgz#1482ff007f2e919d85c54b1563abb8b2ea2d5198" - integrity sha512-LHeSdDnDZkDnJ8kvnjcqV8P1Yv/32yL4d4XfR5gBiy3xGO0onwll1QEbvtW96fIwhx2nejug0GTaEdNDoyr3fQ== +"@jest/reporters@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.3.1.tgz#28b5c1f5789481e23788048fa822ed15486430b9" + integrity sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.2.4" - "@jest/test-result" "^27.2.4" - "@jest/transform" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/console" "^27.3.1" + "@jest/test-result" "^27.3.1" + "@jest/transform" "^27.3.1" + "@jest/types" "^27.2.5" + "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -460,10 +459,10 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.2.4" - jest-resolve "^27.2.4" - jest-util "^27.2.4" - jest-worker "^27.2.4" + jest-haste-map "^27.3.1" + jest-resolve "^27.3.1" + jest-util "^27.3.1" + jest-worker "^27.3.1" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" @@ -479,41 +478,41 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.4.tgz#d1ca8298d168f1b0be834bfb543b1ac0294c05d7" - integrity sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ== +"@jest/test-result@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.3.1.tgz#89adee8b771877c69b3b8d59f52f29dccc300194" + integrity sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg== dependencies: - "@jest/console" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/console" "^27.3.1" + "@jest/types" "^27.2.5" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.4.tgz#df66422a3e9e7440ce8b7498e255fa6b52c0bc03" - integrity sha512-fpk5eknU3/DXE2QCCG1wv/a468+cfPo3Asu6d6yUtM9LOPh709ubZqrhuUOYfM8hXMrIpIdrv1CdCrWWabX0rQ== +"@jest/test-sequencer@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz#4b3bde2dbb05ee74afdae608cf0768e3354683b1" + integrity sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA== dependencies: - "@jest/test-result" "^27.2.4" + "@jest/test-result" "^27.3.1" graceful-fs "^4.2.4" - jest-haste-map "^27.2.4" - jest-runtime "^27.2.4" + jest-haste-map "^27.3.1" + jest-runtime "^27.3.1" -"@jest/transform@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.4.tgz#2fe5b6836895f7a1b8bdec442c51e83943c62733" - integrity sha512-n5FlX2TH0oQGwyVDKPxdJ5nI2sO7TJBFe3u3KaAtt7TOiV4yL+Y+rSFDl+Ic5MpbiA/eqXmLAQxjnBmWgS2rEA== +"@jest/transform@^27.3.1": + version "27.3.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.3.1.tgz#ff80eafbeabe811e9025e4b6f452126718455220" + integrity sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^27.2.4" + jest-haste-map "^27.3.1" jest-regex-util "^27.0.6" - jest-util "^27.2.4" + jest-util "^27.3.1" micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" @@ -531,10 +530,21 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@logux/eslint-config@^45.4.8": - version "45.4.8" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-45.4.8.tgz#28edb449fcaecaf99a55645905e924061a87a1c6" - integrity sha512-WbHqu38BMWaP5ywiSLoUzpSxODGwR/OgBV36xAQLr8fAKp/e4Z3ctvAuVAYotJS7c6aCpWxnGPEs48B+0UZ1Yg== +"@jest/types@^27.2.5": + version "27.2.5" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" + integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@logux/eslint-config@^46.0.0": + version "46.0.0" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-46.0.0.tgz#5fc8b756ff0e4b5ce9cfce009e403c941e05caff" + integrity sha512-1FMDNeLgGtjITAjmNjsr11PtPN/GH9qUfLYj6PvOLyp9HipIpOLQelabb1yAM5lrJhhsWakSx5xzXIVkLVFO8Q== dependencies: globals "^13.11.0" @@ -559,11 +569,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== - "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -578,36 +583,169 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-5.0.5.tgz#fc62708e626e2f154412f65d618937d8a2b081ef" - integrity sha512-lnrQYRmTt0QzV08R9M61q0+EM7Jkcp1qZ/+BG01OOFA0rZtfHt9aKCdvoSEoMrIxK44A9lWHRmyNVnKKDfKbWA== +"@size-limit/file@6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-6.0.3.tgz#8cae76a17e6061416353ea75799b45e8fc565191" + integrity sha512-OfDrkJBB7OAWtnedz6jpmL1pjlha1MpgtvYwUSP2442qB96nwMN5Ig78XR3ldPj2cbxq1FVoNnc2vfWMi40vQA== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-5.0.5.tgz#0f5eac605f1d3f1b7129a215a2abe11ff47c3cc3" - integrity sha512-BHZwlSEaxHPqOOienQpgoH+ueWYryXiusFpNKRj1Jmyv6/rlOxww1nTCljNhh9+hOKOsahqGbvl43cr8o7NQiQ== +"@size-limit/preset-small-lib@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-6.0.3.tgz#30c37000c61ac9bbb8e848a7ff43221f19d60942" + integrity sha512-HvHgrLp5sNEWfw3js6oBWty2dQyDf2SDhehDGJuQRL+8IVRFQcx0XLkqiHAdMrCNvDmfRPfvLkcp5wcxpjgbrw== dependencies: - "@size-limit/file" "5.0.5" - "@size-limit/webpack" "5.0.5" + "@size-limit/file" "6.0.3" + "@size-limit/webpack" "6.0.3" -"@size-limit/webpack@5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-5.0.5.tgz#368eb926087120b43592aa97cc69e6bca3c7575c" - integrity sha512-caLXPNj1iRNeBRoycKTLMLRlLTCjIv80VmBTCag5QZMuNNu4g0weoxjnU7Jbf5YneTuXuEhKSjpc95rB4Biq7Q== +"@size-limit/webpack@6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-6.0.3.tgz#43002b1ac8b72ea0ea91f80968a9306ac5bb2aa4" + integrity sha512-4LI3SpkL0YbOIJsE7+t0LdPgqMeRDDwk1LELHHyk1b67tIjQ9wfnehI0BPT4LYiT23vN7Tg1TN0ofjwuRCLdbA== dependencies: - css-loader "^5.2.6" + "@statoscope/webpack-plugin" "^5.13.1" + css-loader "^6.4.0" + css-minimizer-webpack-plugin "^3.0.2" escape-string-regexp "^4.0.0" - file-loader "^6.2.0" mkdirp "^1.0.4" nanoid "^3.1.28" - optimize-css-assets-webpack-plugin "^6.0.1" - pnp-webpack-plugin "^1.7.0" - style-loader "^2.0.0" - webpack "^4.44.1" - webpack-bundle-analyzer "^4.4.2" + style-loader "^3.3.0" + webpack "^5.56.0" + +"@statoscope/extensions@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/extensions/-/extensions-5.14.1.tgz#b7c32b39de447da76b9fa2daada61b2f699754e6" + integrity sha512-5O31566+bOkkdYFH81mGGBTh0YcU0zoYurTrsK5uZfpNY87ZCPpptrszX8npTRHNsxbjBBNt7vAwImJyYdhzLw== + +"@statoscope/helpers@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/helpers/-/helpers-5.14.1.tgz#80e733d82585f6fc4636b26a9b4a952272ba71c8" + integrity sha512-Gl7NB06cOxxh86tFk75yQmcOCQ3b8i4euYlyxvdz4tWkzeZw8g5VLPH9g3X4uQbPM4rqkae/KmgtRo5Ey1km8w== + dependencies: + "@types/archy" "^0.0.32" + "@types/semver" "^7.3.6" + archy "~1.0.0" + jora "^1.0.0-beta.5" + semver "^7.3.5" + +"@statoscope/report-writer@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/report-writer/-/report-writer-5.14.1.tgz#ae5f7151ef6348338707b28abf6d2137c368ed40" + integrity sha512-N7pjpiKspDQ6K0B9HNBs8u3bhueiYmJEqAazSw/U3v8hThcP31i/FLCH90bu/8Sj436xAE1KATtGzJnsN5mbQA== + dependencies: + "@discoveryjs/json-ext" "^0.5.5" + +"@statoscope/stats-extension-compressed@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-compressed/-/stats-extension-compressed-5.14.1.tgz#456927e0e2942b99fe498466c6db32050af41005" + integrity sha512-FnfmL18OAHWg1l95tBKeMGHmeNbEOdnHlOE1c9KT3TWc5kt4q8ntpChL4AAZJSgn7uBy5WKMgjZSr5aUGebHGQ== + dependencies: + "@statoscope/helpers" "5.14.1" + gzip-size "^6.0.0" + +"@statoscope/stats-extension-custom-reports@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-custom-reports/-/stats-extension-custom-reports-5.14.1.tgz#fd11a9c20589e492f3b8804fc1cece39cf73b8a8" + integrity sha512-+t7gq2zZu8frwJF651+fq1BOZPMdngEwtNhvdRCSWyBE2uYvotVnngQE+di1/Idaosshnf4GdwX82bSMIlF1mQ== + dependencies: + "@statoscope/extensions" "5.14.1" + "@statoscope/helpers" "5.14.1" + "@statoscope/stats" "5.14.1" + "@statoscope/types" "5.14.1" + +"@statoscope/stats-extension-package-info@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-package-info/-/stats-extension-package-info-5.14.1.tgz#92078819a6c3c3250647d477d1f8b1d7ec153b79" + integrity sha512-TPKq6qJ7hxyQdPPpcbPsagf9MjbmPRLLo0F2ceafJ11ubP0t8LQZ+m0Orqp5ay3wuzvBy406w/njPwHQuEBHZw== + dependencies: + "@statoscope/helpers" "5.14.1" + +"@statoscope/stats-extension-stats-validation-result@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-stats-validation-result/-/stats-extension-stats-validation-result-5.14.1.tgz#d1dd76f0e735bb66d9f63a99b9be3a51dbb0e3fb" + integrity sha512-/TiohT+iO5Idipdd3JmzZ/Utaq3nXeKfZKnvXahkls5x6rpRQgbXs2IrDRtf7rJg4B/g2GuZUMsu4m76rHdkwA== + dependencies: + "@statoscope/extensions" "5.14.1" + "@statoscope/helpers" "5.14.1" + "@statoscope/stats" "5.14.1" + "@statoscope/types" "5.14.1" + +"@statoscope/stats@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/stats/-/stats-5.14.1.tgz#728656629bc06aa4bf5634398662ac05287793d5" + integrity sha512-Kz7kCKuT6DXaqAPfyTwp27xHMDUna9o6UlRSQXXBZ8Yyk7eYYvTNw+5ffRyqivL9IOzD7FQYDQ6VUBHh0UfyDw== + +"@statoscope/types@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/types/-/types-5.14.1.tgz#4cc3da44f6a63d4318c50a75efe89f97d512ac8b" + integrity sha512-vIo7aq2E71AC3y3mdnZqA5aupYUaEIHuPD2gUG0bAA8zTXH7YICk7nRkuxx7xnCBhTZTXAgvtF8hgQ35K4N8oQ== + dependencies: + "@statoscope/stats" "5.14.1" + +"@statoscope/webpack-model@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-model/-/webpack-model-5.14.1.tgz#999f4be029b61ced6a9a1b5b74e50136e13a2ab6" + integrity sha512-qSZmtRAk2TSCDaG+ZiMBBfe850/McoNg0Ka2JKsAeSZQ7OOSNN24U/jhmcXtHaoUzxlEGsrEyx8Xz4BMdibjgw== + dependencies: + "@statoscope/extensions" "5.14.1" + "@statoscope/helpers" "5.14.1" + "@statoscope/stats" "5.14.1" + "@statoscope/stats-extension-compressed" "5.14.1" + "@statoscope/stats-extension-custom-reports" "5.14.1" + "@statoscope/stats-extension-package-info" "5.14.1" + "@statoscope/stats-extension-stats-validation-result" "5.14.1" + "@statoscope/types" "5.14.1" + "@types/md5" "^2.3.0" + "@types/webpack" "^5.0.0" + ajv "^8.6.3" + md5 "^2.3.0" + +"@statoscope/webpack-plugin@^5.13.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-plugin/-/webpack-plugin-5.14.1.tgz#10eac3fed165794dfa094367641e3df3ede18fb0" + integrity sha512-FVbBnNaEHS10UHflXKf2ES5LRkWRlDNpECwY3Q1Ir7LyQ1okyYAb6VD4ePyclsQ1+pU64mvU3EVUbkFJWGgXMQ== + dependencies: + "@discoveryjs/json-ext" "^0.5.5" + "@statoscope/report-writer" "5.14.1" + "@statoscope/stats" "5.14.1" + "@statoscope/stats-extension-compressed" "5.14.1" + "@statoscope/stats-extension-custom-reports" "5.14.1" + "@statoscope/types" "5.14.1" + "@statoscope/webpack-model" "5.14.1" + "@statoscope/webpack-stats-extension-compressed" "5.14.1" + "@statoscope/webpack-stats-extension-package-info" "5.14.1" + "@statoscope/webpack-ui" "5.14.1" + "@types/node" "^12.20.15" + "@types/webpack" "^5.0.0" + open "^8.2.1" + +"@statoscope/webpack-stats-extension-compressed@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.14.1.tgz#bc8ea1167e61160b7fe00a4f36d395e52cd00582" + integrity sha512-fg0m30TqM1vQx0aEkyILasvmtYxTmcR0mEWsK3bR7sp+lmLP+GvbGhWoQ51GTmiVofpO83yjvAlc1YhvLAEVWA== + dependencies: + "@statoscope/stats" "5.14.1" + "@statoscope/stats-extension-compressed" "5.14.1" + "@statoscope/webpack-model" "5.14.1" + "@types/webpack" "^5.0.0" + +"@statoscope/webpack-stats-extension-package-info@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.14.1.tgz#527616db566f913a1bee46482e0636cbad389e5a" + integrity sha512-J5turi/cQSxttPgusMt1ppefBdk4a7hocpVmdO7myv+v5S996RVFrmKnyZeOavp15PivA4LytJgO8Oq6/WORMA== + dependencies: + "@statoscope/stats" "5.14.1" + "@statoscope/stats-extension-package-info" "5.14.1" + "@statoscope/webpack-model" "5.14.1" + "@types/webpack" "^5.0.0" + +"@statoscope/webpack-ui@5.14.1": + version "5.14.1" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-ui/-/webpack-ui-5.14.1.tgz#fbbd01bb43bd3071ed5b4a997457a8432314faca" + integrity sha512-lKiA9g7UaBZDA1Yo8eENjby2PXHB21lExNQ/nBbg4jjIqXGZ2+lU7mMYXhxw1n4PiVOdL7GrhSWlT6ByAzB3vw== + dependencies: + "@statoscope/types" "5.14.1" + highcharts "^9.2.2" "@tootallnate/once@1": version "1.1.2" @@ -619,6 +757,11 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@types/archy@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/archy/-/archy-0.0.32.tgz#8b572741dad9172dfbf289397af1bb41296d3e40" + integrity sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg== + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.16" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" @@ -652,6 +795,27 @@ dependencies: "@babel/types" "^7.3.0" +"@types/eslint-scope@^3.7.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.28.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.1.tgz#50b07747f1f84c2ba8cd394cf0fe0ba07afce320" + integrity sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + "@types/fs-extra@^9.0.13": version "9.0.13" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" @@ -693,7 +857,7 @@ jest-diff "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -703,11 +867,28 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^16.10.2": +"@types/md5@^2.3.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.3.1.tgz#010bcf3bb50a2cff3a574cb1c0b4051a9c67d6bc" + integrity sha512-OK3oe+ALIoPSo262lnhAYwpqFNXbiwH2a+0+Z5YBnkQEwWD8fk5+PIeRhYA48PzvX9I4SGNpWy+9bLj8qz92RQ== + dependencies: + "@types/node" "*" + +"@types/node@*": version "16.10.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== +"@types/node@^12.20.15": + version "12.20.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.33.tgz#24927446e8b7669d10abacedd16077359678f436" + integrity sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw== + +"@types/node@^16.11.1": + version "16.11.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.1.tgz#2e50a649a50fc403433a14f829eface1a3443e97" + integrity sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -723,6 +904,11 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== +"@types/semver@^7.3.6": + version "7.3.9" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" + integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== + "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -733,6 +919,15 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/webpack@^5.0.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" + integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -745,219 +940,195 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== +"@typescript-eslint/eslint-plugin@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.1.0.tgz#381c188dfab12f7a2c7b6a8ba2402d6273eadeaa" + integrity sha512-bekODL3Tqf36Yz8u+ilha4zGxL9mdB6LIsIoMAvvC5FAuWo4NpZYXtCbv7B2CeR1LhI/lLtLk+q4tbtxuoVuCg== dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" + "@typescript-eslint/experimental-utils" "5.1.0" + "@typescript-eslint/scope-manager" "5.1.0" + debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" - regexpp "^3.1.0" + regexpp "^3.2.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== +"@typescript-eslint/experimental-utils@5.1.0", "@typescript-eslint/experimental-utils@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.1.0.tgz#918a1a3d30404cc1f8edcfdf0df200804ef90d31" + integrity sha512-ovE9qUiZMOMgxQAESZsdBT+EXIfx/YUYAbwGUI6V03amFdOOxI9c6kitkgRvLkJaLusgMZ2xBhss+tQ0Y1HWxA== dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.1.0" + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/typescript-estree" "5.1.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== - dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" +"@typescript-eslint/parser@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.1.0.tgz#6c7f837d210d2bc0a811e7ea742af414f4e00908" + integrity sha512-vx1P+mhCtYw3+bRHmbalq/VKP2Y3gnzNgxGxfEWc6OFpuEL7iQdAeq11Ke3Rhy8NjgB+AHsIWEwni3e+Y7djKA== + dependencies: + "@typescript-eslint/scope-manager" "5.1.0" + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/typescript-estree" "5.1.0" + debug "^4.3.2" + +"@typescript-eslint/scope-manager@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.1.0.tgz#6f1f26ad66a8f71bbb33b635e74fec43f76b44df" + integrity sha512-yYlyVjvn5lvwCL37i4hPsa1s0ORsjkauhTqbb8MnpvUs7xykmcjGqwlNZ2Q5QpoqkJ1odlM2bqHqJwa28qV6Tw== + dependencies: + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/visitor-keys" "5.1.0" + +"@typescript-eslint/types@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.1.0.tgz#a8a75ddfc611660de6be17d3ad950302385607a9" + integrity sha512-sEwNINVxcB4ZgC6Fe6rUyMlvsB2jvVdgxjZEjQUQVlaSPMNamDOwO6/TB98kFt4sYYfNhdhTPBEQqNQZjMMswA== + +"@typescript-eslint/typescript-estree@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.1.0.tgz#132aea34372df09decda961cb42457433aa6e83d" + integrity sha512-SSz+l9YrIIsW4s0ZqaEfnjl156XQ4VRmJsbA0ZE1XkXrD3cRpzuZSVCyqeCMR3EBjF27IisWakbBDGhGNIOvfQ== + dependencies: + "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/visitor-keys" "5.1.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== +"@typescript-eslint/visitor-keys@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.1.0.tgz#e01a01b27eb173092705ae983aa1451bd1842630" + integrity sha512-uqNXepKBg81JVwjuqAxYrXa1Ql/YDzM+8g/pS+TCPxba0wZttl8m5DkrasbfnmJGHs4lQ2jTbcZ5azGhI7kK+w== + dependencies: + "@typescript-eslint/types" "5.1.0" + eslint-visitor-keys "^3.0.0" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -983,6 +1154,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -993,22 +1169,12 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.2.4: +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== @@ -1028,17 +1194,12 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1048,7 +1209,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: +ajv@^8.6.3: version "8.6.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== @@ -1104,14 +1265,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -1120,10 +1273,10 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +archy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= argparse@^1.0.7: version "1.0.10" @@ -1132,43 +1285,28 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-includes@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" - integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== +array-includes@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.19.1" get-intrinsic "^1.1.1" - is-string "^1.0.5" + is-string "^1.0.7" array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.4: +array.prototype.flat@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== @@ -1177,40 +1315,12 @@ array.prototype.flat@^1.2.4: define-properties "^1.1.3" es-abstract "^1.19.0" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async@^3.2.0: +async@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== @@ -1220,18 +1330,13 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -babel-jest@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.4.tgz#21ed6729d51bdd75470bbbf3c8b08d86209fb0dc" - integrity sha512-f24OmxyWymk5jfgLdlCMu4fTs4ldxFBIdn5sJdhvGC1m08rSkJ5hYbWkNmfBSvE/DjhCVNSHXepxsI6THGfGsg== +babel-jest@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.3.1.tgz#0636a3404c68e07001e434ac4956d82da8a80022" + integrity sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ== dependencies: - "@jest/transform" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/transform" "^27.3.1" + "@jest/types" "^27.2.5" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" babel-preset-jest "^27.2.0" @@ -1291,61 +1396,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -1359,22 +1414,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1382,77 +1421,11 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: version "4.17.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.3.tgz#2844cd6eebe14d12384b0122d217550160d2d624" @@ -1464,6 +1437,17 @@ browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: node-releases "^1.1.77" picocolors "^0.2.1" +browserslist@^4.14.5: + version "4.17.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.4.tgz#72e2508af2a403aec0a49847ef31bd823c57ead4" + integrity sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ== + dependencies: + caniuse-lite "^1.0.30001265" + electron-to-chromium "^1.3.867" + escalade "^3.1.1" + node-releases "^2.0.0" + picocolors "^1.0.0" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -1483,71 +1467,16 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - builtin-modules@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - bytes-iec@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" integrity sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA== -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1586,6 +1515,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001264: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001264.tgz#88f625a60efb6724c7c62ac698bc8dbd9757e55b" integrity sha512-Ftfqqfcs/ePiUmyaySsQ4PUsdcYyXG2rfoBVsk3iY1ahHaJEw65vfb7Suzqm+cEkwwPIv/XWkg27iCpRavH4zA== +caniuse-lite@^1.0.30001265: + version "1.0.30001270" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" + integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== + chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1595,7 +1529,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1608,37 +1542,22 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -check-dts@^0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.5.6.tgz#b77dd0cee7a960594e8afc2ddeeaf6cd2f1121f3" - integrity sha512-XG3LVaofida0uw0iSirzjPBOmLq2uAPbyehW/TK0pJVREk/1nJeCw7dInFEtQIem2Ahx85S0TYyxVripJfDQsQ== +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + +check-dts@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.1.tgz#1c31e4d4b8f05242baf03fd99bd71f0551f82933" + integrity sha512-2PR5bO3NBD2hQWNf+7/ATK2nTcauuPv+mQJxfasDnhLGZlhbZXpqz+FA0aXo8nScON1QqU266fSObEJa7+jq7Q== dependencies: - globby "^11.0.4" - mico-spinner "^1.2.2" - nanocolors "^0.1.0" - typescript "^4.4.3" + fast-glob "^3.2.7" + nanospinner "^0.3.0" + picocolors "^1.0.0" vfile-location "^4.0.1" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1, chokidar@^3.5.2: +chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -1653,11 +1572,6 @@ chokidar@^3.4.1, chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -1673,36 +1587,20 @@ ci-job-number@^1.2.2: resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - cjs-module-lexer@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-publish@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.0.3.tgz#d7181d9fd109765226d4174706947759b215f4c7" - integrity sha512-Ly9CrWC4yDgNQF1qaLVVUNLN/VGM2GqJC3itbamP14Ioj4+G3jwFfL2xu6pF2GNvdXEzZZxzUkCV48rbMrUfJA== +clean-publish@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.2.tgz#c5d776ba5c5aaaacff696eacec452263a63f94a5" + integrity sha512-VAEF61z7yivCcoIzJg0wEs5T6DpM6JgfMp152q3/JNuKU3leTUkU1QHUjm162dOULq9i+lvPrNYF9vdLS9AfYw== dependencies: cross-spawn "^7.0.3" + fast-glob "^3.2.7" fs-extra "^10.0.0" + hosted-git-info "^4.0.2" lilconfig "^2.0.3" clean-regexp@^1.0.0: @@ -1751,14 +1649,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1810,11 +1700,6 @@ commander@^3.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -1825,31 +1710,11 @@ commander@^8.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.2.0.tgz#37fe2bde301d87d47a53adeff8b5915db1381ca8" integrity sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - concat-with-sourcemaps@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" @@ -1857,16 +1722,6 @@ concat-with-sourcemaps@^1.1.0: dependencies: source-map "^0.6.1" -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" @@ -1874,39 +1729,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - cosmiconfig@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" @@ -1918,37 +1740,6 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1958,22 +1749,10 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= css-color-names@^1.0.1: version "1.0.1" @@ -1987,22 +1766,33 @@ css-declaration-sorter@^6.0.3: dependencies: timsort "^0.3.0" -css-loader@^5.2.6: - version "5.2.7" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" - integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== +css-loader@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.4.0.tgz#01c57ea776024e18ca193428dcad3ff6b42a0130" + integrity sha512-Dlt6qfsxI/w1vU0r8qDd4BtMPxWqJeY5qQU7SmmZfvbpe6Xl18McO4GhyaMLns24Y2VNPiZwJPQ8JSbg4qvQLw== dependencies: icss-utils "^5.1.0" - loader-utils "^2.0.0" postcss "^8.2.15" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" semver "^7.3.5" +css-minimizer-webpack-plugin@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.1.tgz#27bafa3b75054713565b2266c64b0228acd18634" + integrity sha512-KlB8l5uoNcf9F7i5kXnkxoqJGd2BXH4f0+Lj2vSWSmuvMLYO1kNsJ1KHSzeDW8e45/whgSOPcKVT/3JopkT8dg== + dependencies: + cssnano "^5.0.6" + jest-worker "^27.0.2" + p-limit "^3.0.2" + postcss "^8.3.5" + schema-utils "^3.1.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + css-select@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" @@ -2072,7 +1862,7 @@ cssnano-utils@^2.0.1: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@^5.0.2: +cssnano@^5.0.6: version "5.0.8" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== @@ -2106,11 +1896,6 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -2120,14 +1905,14 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" -debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2146,11 +1931,6 @@ decimal.js@^10.2.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -2166,6 +1946,11 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2173,41 +1958,11 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -2218,15 +1973,6 @@ diff-sequences@^27.0.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2257,11 +2003,6 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" @@ -2295,33 +2036,15 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - electron-to-chromium@^1.3.857: version "1.3.857" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.857.tgz#dcc239ff8a12b6e4b501e6a5ad20fd0d5a3210f9" integrity sha512-a5kIr2lajm4bJ5E4D3fp8Y/BRB0Dx2VOcCRE5Gtb679mXIME/OFhWler8Gy2ksrf8gFX+EFCSIGA33FB3gqYpg== -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" +electron-to-chromium@^1.3.867: + version "1.3.873" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.873.tgz#c238c9199e4951952fe815a65c1beab5db4826b8" + integrity sha512-TiHlCgl2uP26Z0c67u442c0a2MZCWZNCRnPTQDPhVJ4h9G6z2zU0lApD9H0K9R5yFL5SfdaiVsVD2izOY24xBQ== emittery@^0.8.1: version "0.8.1" @@ -2333,26 +2056,13 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== +enhanced-resolve@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== dependencies: - once "^1.4.0" - -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.2.0" enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" @@ -2366,17 +2076,15 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== error-ex@^1.3.1: version "1.3.2" @@ -2385,7 +2093,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: +es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -2411,6 +2119,11 @@ es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -2470,12 +2183,13 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" - integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== +eslint-module-utils@^2.7.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" + integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== dependencies: debug "^3.2.7" + find-up "^2.1.0" pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: @@ -2486,33 +2200,31 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.24.2: - version "2.24.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" - integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== +eslint-plugin-import@^2.25.2: + version "2.25.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz#b3b9160efddb702fc1636659e71ba1d10adbe9e9" + integrity sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g== dependencies: - array-includes "^3.1.3" - array.prototype.flat "^1.2.4" + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.6.2" - find-up "^2.0.0" + eslint-module-utils "^2.7.0" has "^1.0.3" - is-core-module "^2.6.0" + is-core-module "^2.7.0" + is-glob "^4.0.3" minimatch "^3.0.4" - object.values "^1.1.4" - pkg-up "^2.0.0" - read-pkg-up "^3.0.0" + object.values "^1.1.5" resolve "^1.20.0" tsconfig-paths "^3.11.0" -eslint-plugin-jest@^24.5.2: - version "24.5.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.5.2.tgz#f71f98f27fd18b50f55246ca090f36d1730e36a6" - integrity sha512-lrI3sGAyZi513RRmP08sIW241Ti/zMnn/6wbE4ZBhb3M2pJ9ztaZMnSKSKKBUfotVdwqU8W1KtD8ao2/FR8DIg== +eslint-plugin-jest@^25.2.2: + version "25.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.2.2.tgz#aada85113268e79d4e7423f8ad4e1b740f112e71" + integrity sha512-frn5yhOF60U4kcqozO3zKTNZQUk+mfx037XOy2iiYL8FhorEkuCuL3/flzKcY1ECDP2WYT9ydmvlO3fRW9o4mg== dependencies: - "@typescript-eslint/experimental-utils" "^4.0.1" + "@typescript-eslint/experimental-utils" "^5.0.0" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -2545,16 +2257,18 @@ eslint-plugin-security@^1.4.0: dependencies: safe-regex "^1.1.0" -eslint-plugin-unicorn@^36.0.0: - version "36.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-36.0.0.tgz#db50e1426839e401d33c5a279f49d4a5bbb640d8" - integrity sha512-xxN2vSctGWnDW6aLElm/LKIwcrmk6mdiEcW55Uv5krcrVcIFSWMmEgc/hwpemYfZacKZ5npFERGNz4aThsp1AA== +eslint-plugin-unicorn@^37.0.1: + version "37.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-37.0.1.tgz#a2292dc302ffc0be1791e6ebbb4ae93242833f11" + integrity sha512-E1jq5u9ojnadisJcPi+hMXTGSiIzkIUMDvWsBudsCGXvKUB2aNSU2TcfyW2/jAS5A4ryBXfzxLykMxX1EdluSQ== dependencies: "@babel/helper-validator-identifier" "^7.14.9" ci-info "^3.2.0" clean-regexp "^1.0.0" eslint-template-visitor "^2.3.2" eslint-utils "^3.0.0" + esquery "^1.4.0" + indent-string "4" is-builtin-module "^3.1.0" lodash "^4.17.21" pluralize "^8.0.0" @@ -2562,16 +2276,9 @@ eslint-plugin-unicorn@^36.0.0: regexp-tree "^0.1.23" safe-regex "^2.1.1" semver "^7.3.5" + strip-indent "^3.0.0" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2579,7 +2286,15 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-template-visitor@^2.3.2: +eslint-scope@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978" + integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-template-visitor@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz#b52f96ff311e773a345d79053ccc78275bbc463d" integrity sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA== @@ -2590,7 +2305,7 @@ eslint-template-visitor@^2.3.2: esquery "^1.3.1" multimap "^1.1.0" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-utils@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== @@ -2604,7 +2319,7 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== @@ -2614,37 +2329,41 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== +eslint-visitor-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186" + integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q== + +eslint@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.0.1.tgz#3610e7fe4a05c2154669515ca60835a76a19f700" + integrity sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA== dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" + "@eslint/eslintrc" "^1.0.3" + "@humanwhocodes/config-array" "^0.6.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" + eslint-scope "^6.0.0" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" + glob-parent "^6.0.1" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" @@ -2652,22 +2371,21 @@ eslint@^7.32.0: natural-compare "^1.4.0" optionator "^0.9.1" progress "^2.0.0" - regexpp "^3.1.0" + regexpp "^3.2.0" semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" + integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ== dependencies: - acorn "^7.4.0" + acorn "^8.5.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + eslint-visitor-keys "^3.0.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" @@ -2681,7 +2399,7 @@ esquery@^1.3.1, esquery@^1.4.0: dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -2703,19 +2421,11 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.0.0: +events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -2736,60 +2446,18 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= +expect@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.3.1.tgz#d0f170b1f5c8a2009bab0beffd4bb94f043e38e7" + integrity sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg== dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.4.tgz#4debf546050bcdad8914a8c95fec7662e02bf67c" - integrity sha512-gOtuonQ8TCnbNNCSw2fhVzRf8EFYDII4nB5NmG4IEV0rbUnW1I5zXvoTntU4iicB/Uh0oZr20NGlOLdJiwsOZA== - dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" ansi-styles "^5.0.0" - jest-get-type "^27.0.6" - jest-matcher-utils "^27.2.4" - jest-message-util "^27.2.4" + jest-get-type "^27.3.1" + jest-matcher-utils "^27.3.1" + jest-message-util "^27.3.1" jest-regex-util "^27.0.6" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - eyo-kernel@^2.5.6: version "2.5.6" resolved "https://registry.yarnpkg.com/eyo-kernel/-/eyo-kernel-2.5.6.tgz#aedd0e971943db3f5f282b4081f75b2983e7b606" @@ -2800,7 +2468,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1: +fast-glob@^3.1.1, fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== @@ -2835,11 +2503,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -2847,29 +2510,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2877,29 +2517,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2921,19 +2545,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -2943,21 +2554,6 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -2967,29 +2563,11 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -3047,19 +2625,6 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3067,7 +2632,19 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -3091,7 +2668,7 @@ globals@^13.11.0, globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" -globby@^11.0.3, globby@^11.0.4: +globby@^11.0.4: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -3103,7 +2680,7 @@ globby@^11.0.3, globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -3142,37 +2719,6 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3180,37 +2726,23 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" +highcharts@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.2.2.tgz#4ace4aa7c4d2b4051115d9be70bfd2038559d656" + integrity sha512-OMEdFCaG626ES1JEcKAvJTpxAOMuchy0XuAplmnOs0Yu7NMd2RMfTLFQ2fCJOxo3ubSdm/RVQwKAWC+5HYThnw== hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +hosted-git-info@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" + integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + dependencies: + lru-cache "^6.0.0" + html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -3232,11 +2764,6 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" @@ -3262,16 +2789,6 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -3282,7 +2799,7 @@ ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3303,16 +2820,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: +indent-string@4, indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3321,21 +2833,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -3350,20 +2852,6 @@ is-absolute-url@^3.0.3: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3376,13 +2864,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -3398,16 +2879,16 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + is-builtin-module@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" @@ -3427,26 +2908,19 @@ is-ci@^3.0.0: dependencies: ci-info "^3.1.1" -is-core-module@^2.2.0, is-core-module@^2.6.0: +is-core-module@^2.2.0: version "2.7.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== +is-core-module@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== dependencies: - kind-of "^6.0.0" + has "^1.0.3" is-date-object@^1.0.1: version "1.0.5" @@ -3455,37 +2929,12 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -3500,14 +2949,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -3526,13 +2968,6 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -3543,13 +2978,6 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -3609,38 +3037,18 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.0" -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - istanbul-lib-coverage@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz#e8900b3ed6069759229cf30f7067388d148aeb5e" @@ -3682,91 +3090,91 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -isutf8@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" - integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== +isutf8@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-3.1.1.tgz#3f2ac77f49affb23ae54813da1a4ab44aadf1d7b" + integrity sha512-5P2FgGyDsSnRMaLPVGVIgYgMxj50lBujvi5lsVgP1qvMWhxvkmVBWtPcIKgXw9j+/RnmxSvHg3e9tbDnPxx6dw== -jest-changed-files@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.2.4.tgz#d7de46e90e5a599c47e260760f5ab53516e835e6" - integrity sha512-eeO1C1u4ex7pdTroYXezr+rbr957myyVoKGjcY4R1TJi3A+9v+4fu1Iv9J4eLq1bgFyT3O3iRWU9lZsEE7J72Q== +jest-changed-files@^27.3.0: + version "27.3.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.3.0.tgz#22a02cc2b34583fc66e443171dc271c0529d263c" + integrity sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.4.tgz#3bd898a29dcaf6a506f3f1b780dff5f67ca83c23" - integrity sha512-TtheheTElrGjlsY9VxkzUU1qwIx05ItIusMVKnvNkMt4o/PeegLRcjq3Db2Jz0GGdBalJdbzLZBgeulZAJxJWA== +jest-circus@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.3.1.tgz#1679e74387cbbf0c6a8b42de963250a6469e0797" + integrity sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw== dependencies: - "@jest/environment" "^27.2.4" - "@jest/test-result" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/environment" "^27.3.1" + "@jest/test-result" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.2.4" + expect "^27.3.1" is-generator-fn "^2.0.0" - jest-each "^27.2.4" - jest-matcher-utils "^27.2.4" - jest-message-util "^27.2.4" - jest-runtime "^27.2.4" - jest-snapshot "^27.2.4" - jest-util "^27.2.4" - pretty-format "^27.2.4" + jest-each "^27.3.1" + jest-matcher-utils "^27.3.1" + jest-message-util "^27.3.1" + jest-runtime "^27.3.1" + jest-snapshot "^27.3.1" + jest-util "^27.3.1" + pretty-format "^27.3.1" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.4.tgz#acda7f367aa6e674723fc1a7334e0ae1799448d2" - integrity sha512-4kpQQkg74HYLaXo3nzwtg4PYxSLgL7puz1LXHj5Tu85KmlIpxQFjRkXlx4V47CYFFIDoyl3rHA/cXOxUWyMpNg== +jest-cli@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.3.1.tgz#b576f9d146ba6643ce0a162d782b40152b6b1d16" + integrity sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q== dependencies: - "@jest/core" "^27.2.4" - "@jest/test-result" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/core" "^27.3.1" + "@jest/test-result" "^27.3.1" + "@jest/types" "^27.2.5" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.2.4" - jest-util "^27.2.4" - jest-validate "^27.2.4" + jest-config "^27.3.1" + jest-util "^27.3.1" + jest-validate "^27.3.1" prompts "^2.0.1" yargs "^16.2.0" -jest-config@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.4.tgz#0204969f5ae2e5190d47be2c14c04d631b7836e2" - integrity sha512-tWy0UxhdzqiKyp4l5Vq4HxLyD+gH5td+GCF3c22/DJ0bYAOsMo+qi2XtbJI6oYMH5JOJQs9nLW/r34nvFCehjA== +jest-config@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.3.1.tgz#cb3b7f6aaa8c0a7daad4f2b9573899ca7e09bbad" + integrity sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.2.4" - "@jest/types" "^27.2.4" - babel-jest "^27.2.4" + "@jest/test-sequencer" "^27.3.1" + "@jest/types" "^27.2.5" + babel-jest "^27.3.1" chalk "^4.0.0" + ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - is-ci "^3.0.0" - jest-circus "^27.2.4" - jest-environment-jsdom "^27.2.4" - jest-environment-node "^27.2.4" - jest-get-type "^27.0.6" - jest-jasmine2 "^27.2.4" + jest-circus "^27.3.1" + jest-environment-jsdom "^27.3.1" + jest-environment-node "^27.3.1" + jest-get-type "^27.3.1" + jest-jasmine2 "^27.3.1" jest-regex-util "^27.0.6" - jest-resolve "^27.2.4" - jest-runner "^27.2.4" - jest-util "^27.2.4" - jest-validate "^27.2.4" + jest-resolve "^27.3.1" + jest-runner "^27.3.1" + jest-util "^27.3.1" + jest-validate "^27.3.1" micromatch "^4.0.4" - pretty-format "^27.2.4" + pretty-format "^27.3.1" -jest-diff@^27.0.0, jest-diff@^27.2.4: +jest-diff@^27.0.0: version "27.2.4" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.4.tgz#171c51d3d2c105c457100fee6e7bf7cee51c8d8c" integrity sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg== @@ -3776,6 +3184,16 @@ jest-diff@^27.0.0, jest-diff@^27.2.4: jest-get-type "^27.0.6" pretty-format "^27.2.4" +jest-diff@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.3.1.tgz#d2775fea15411f5f5aeda2a5e02c2f36440f6d55" + integrity sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.3.1" + pretty-format "^27.3.1" + jest-docblock@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" @@ -3783,53 +3201,58 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" -jest-each@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.4.tgz#b4f280aafd63129ba82e345f0e74c5a10200aeef" - integrity sha512-w9XVc+0EDBUTJS4xBNJ7N2JCcWItFd006lFjz77OarAQcQ10eFDBMrfDv2GBJMKlXe9aq0HrIIF51AXcZrRJyg== +jest-each@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.3.1.tgz#14c56bb4f18dd18dc6bdd853919b5f16a17761ff" + integrity sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" chalk "^4.0.0" - jest-get-type "^27.0.6" - jest-util "^27.2.4" - pretty-format "^27.2.4" - -jest-environment-jsdom@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.4.tgz#39ae80bbb8675306bfaf0440be1e5f877554539a" - integrity sha512-X70pTXFSypD7AIzKT1mLnDi5hP9w9mdTRcOGOmoDoBrNyNEg4rYm6d4LQWFLc9ps1VnMuDOkFSG0wjSNYGjkng== - dependencies: - "@jest/environment" "^27.2.4" - "@jest/fake-timers" "^27.2.4" - "@jest/types" "^27.2.4" + jest-get-type "^27.3.1" + jest-util "^27.3.1" + pretty-format "^27.3.1" + +jest-environment-jsdom@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz#63ac36d68f7a9303494df783494856222b57f73e" + integrity sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg== + dependencies: + "@jest/environment" "^27.3.1" + "@jest/fake-timers" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" - jest-mock "^27.2.4" - jest-util "^27.2.4" + jest-mock "^27.3.0" + jest-util "^27.3.1" jsdom "^16.6.0" -jest-environment-node@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.4.tgz#b79f98cb36e0c9111aac859c9c99f04eb2f74ff6" - integrity sha512-ZbVbFSnbzTvhLOIkqh5lcLuGCCFvtG4xTXIRPK99rV2KzQT3kNg16KZwfTnLNlIiWCE8do960eToeDfcqmpSAw== +jest-environment-node@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.3.1.tgz#af7d0eed04edafb740311b303f3fe7c8c27014bb" + integrity sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw== dependencies: - "@jest/environment" "^27.2.4" - "@jest/fake-timers" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/environment" "^27.3.1" + "@jest/fake-timers" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" - jest-mock "^27.2.4" - jest-util "^27.2.4" + jest-mock "^27.3.0" + jest-util "^27.3.1" jest-get-type@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== -jest-haste-map@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.4.tgz#f8974807bedf07348ca9fd24e5861ab7c8e61aba" - integrity sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA== +jest-get-type@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" + integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== + +jest-haste-map@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.3.1.tgz#7656fbd64bf48bda904e759fc9d93e2c807353ee" + integrity sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -3837,76 +3260,76 @@ jest-haste-map@^27.2.4: graceful-fs "^4.2.4" jest-regex-util "^27.0.6" jest-serializer "^27.0.6" - jest-util "^27.2.4" - jest-worker "^27.2.4" + jest-util "^27.3.1" + jest-worker "^27.3.1" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.4.tgz#4a1608133dbdb4d68b5929bfd785503ed9c9ba51" - integrity sha512-fcffjO/xLWLVnW2ct3No4EksxM5RyPwHDYu9QU+90cC+/eSMLkFAxS55vkqsxexOO5zSsZ3foVpMQcg/amSeIQ== +jest-jasmine2@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz#df6d3d07c7dafc344feb43a0072a6f09458d32b0" + integrity sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.2.4" + "@jest/environment" "^27.3.1" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/test-result" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.2.4" + expect "^27.3.1" is-generator-fn "^2.0.0" - jest-each "^27.2.4" - jest-matcher-utils "^27.2.4" - jest-message-util "^27.2.4" - jest-runtime "^27.2.4" - jest-snapshot "^27.2.4" - jest-util "^27.2.4" - pretty-format "^27.2.4" + jest-each "^27.3.1" + jest-matcher-utils "^27.3.1" + jest-message-util "^27.3.1" + jest-runtime "^27.3.1" + jest-snapshot "^27.3.1" + jest-util "^27.3.1" + pretty-format "^27.3.1" throat "^6.0.1" -jest-leak-detector@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.4.tgz#9bb7eab26a73bb280e9298be8d80f389288ec8f1" - integrity sha512-SrcHWbe0EHg/bw2uBjVoHacTo5xosl068x2Q0aWsjr2yYuW2XwqrSkZV4lurUop0jhv1709ymG4or+8E4sH27Q== +jest-leak-detector@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz#7fb632c2992ef707a1e73286e1e704f9cc1772b2" + integrity sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg== dependencies: - jest-get-type "^27.0.6" - pretty-format "^27.2.4" + jest-get-type "^27.3.1" + pretty-format "^27.3.1" -jest-matcher-utils@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.4.tgz#008fff018151415ad1b6cfc083fd70fe1e012525" - integrity sha512-nQeLfFAIPPkyhkDfifAPfP/U5wm1x0fLtAzqXZSSKckXDNuk2aaOfQiDYv1Mgf5GY6yOsxfUnvNm3dDjXM+BXw== +jest-matcher-utils@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz#257ad61e54a6d4044e080d85dbdc4a08811e9c1c" + integrity sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w== dependencies: chalk "^4.0.0" - jest-diff "^27.2.4" - jest-get-type "^27.0.6" - pretty-format "^27.2.4" + jest-diff "^27.3.1" + jest-get-type "^27.3.1" + pretty-format "^27.3.1" -jest-message-util@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.4.tgz#667e8c0f2b973156d1bac7398a7f677705cafaca" - integrity sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA== +jest-message-util@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" + integrity sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.4" - pretty-format "^27.2.4" + pretty-format "^27.3.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.2.4.tgz#c8f0ef33f73d8ff53e3f60b16d59f1128f4072ae" - integrity sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA== +jest-mock@^27.3.0: + version "27.3.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.3.0.tgz#ddf0ec3cc3e68c8ccd489bef4d1f525571a1b867" + integrity sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -3919,72 +3342,71 @@ jest-regex-util@^27.0.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.4.tgz#20c41cc02b66aa45169b282356ec73b133013089" - integrity sha512-i5s7Uh9B3Q6uwxLpMhNKlgBf6pcemvWaORxsW1zNF/YCY3jd5EftvnGBI+fxVwJ1CBxkVfxqCvm1lpZkbaoGmg== +jest-resolve-dependencies@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz#85b99bdbdfa46e2c81c6228fc4c91076f624f6e2" + integrity sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" jest-regex-util "^27.0.6" - jest-snapshot "^27.2.4" + jest-snapshot "^27.3.1" -jest-resolve@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.4.tgz#d3b999f073ff84a8ae109ce99ff7f3223048701a" - integrity sha512-IsAO/3+3BZnKjI2I4f3835TBK/90dxR7Otgufn3mnrDFTByOSXclDi3G2XJsawGV4/18IMLARJ+V7Wm7t+J89Q== +jest-resolve@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.3.1.tgz#0e5542172a1aa0270be6f66a65888647bdd74a3e" + integrity sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" chalk "^4.0.0" - escalade "^3.1.1" graceful-fs "^4.2.4" - jest-haste-map "^27.2.4" + jest-haste-map "^27.3.1" jest-pnp-resolver "^1.2.2" - jest-util "^27.2.4" - jest-validate "^27.2.4" + jest-util "^27.3.1" + jest-validate "^27.3.1" resolve "^1.20.0" + resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.4.tgz#d816f4cb4af04f3cba703afcf5a35a335b77cad4" - integrity sha512-hIo5PPuNUyVDidZS8EetntuuJbQ+4IHWxmHgYZz9FIDbG2wcZjrP6b52uMDjAEQiHAn8yn8ynNe+TL8UuGFYKg== +jest-runner@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.3.1.tgz#1d594dcbf3bd8600a7e839e790384559eaf96e3e" + integrity sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww== dependencies: - "@jest/console" "^27.2.4" - "@jest/environment" "^27.2.4" - "@jest/test-result" "^27.2.4" - "@jest/transform" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/console" "^27.3.1" + "@jest/environment" "^27.3.1" + "@jest/test-result" "^27.3.1" + "@jest/transform" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" jest-docblock "^27.0.6" - jest-environment-jsdom "^27.2.4" - jest-environment-node "^27.2.4" - jest-haste-map "^27.2.4" - jest-leak-detector "^27.2.4" - jest-message-util "^27.2.4" - jest-resolve "^27.2.4" - jest-runtime "^27.2.4" - jest-util "^27.2.4" - jest-worker "^27.2.4" + jest-environment-jsdom "^27.3.1" + jest-environment-node "^27.3.1" + jest-haste-map "^27.3.1" + jest-leak-detector "^27.3.1" + jest-message-util "^27.3.1" + jest-resolve "^27.3.1" + jest-runtime "^27.3.1" + jest-util "^27.3.1" + jest-worker "^27.3.1" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.4.tgz#170044041e5d30625ab8d753516bbe503f213a5c" - integrity sha512-ICKzzYdjIi70P17MZsLLIgIQFCQmIjMFf+xYww3aUySiUA/QBPUTdUqo5B2eg4HOn9/KkUsV0z6GVgaqAPBJvg== +jest-runtime@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.3.1.tgz#80fa32eb85fe5af575865ddf379874777ee993d7" + integrity sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg== dependencies: - "@jest/console" "^27.2.4" - "@jest/environment" "^27.2.4" - "@jest/fake-timers" "^27.2.4" - "@jest/globals" "^27.2.4" + "@jest/console" "^27.3.1" + "@jest/environment" "^27.3.1" + "@jest/globals" "^27.3.1" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.2.4" - "@jest/transform" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/test-result" "^27.3.1" + "@jest/transform" "^27.3.1" + "@jest/types" "^27.2.5" "@types/yargs" "^16.0.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" @@ -3993,14 +3415,14 @@ jest-runtime@^27.2.4: exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.2.4" - jest-message-util "^27.2.4" - jest-mock "^27.2.4" + jest-haste-map "^27.3.1" + jest-message-util "^27.3.1" + jest-mock "^27.3.0" jest-regex-util "^27.0.6" - jest-resolve "^27.2.4" - jest-snapshot "^27.2.4" - jest-util "^27.2.4" - jest-validate "^27.2.4" + jest-resolve "^27.3.1" + jest-snapshot "^27.3.1" + jest-util "^27.3.1" + jest-validate "^27.3.1" slash "^3.0.0" strip-bom "^4.0.0" yargs "^16.2.0" @@ -4013,10 +3435,10 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.4.tgz#277b2269437e3ffcb91d95a73b24becf33c5a871" - integrity sha512-5DFxK31rYS8X8C6WXsFx8XxrxW3PGa6+9IrUcZdTLg1aEyXDGIeiBh4jbwvh655bg/9vTETbEj/njfZicHTZZw== +jest-snapshot@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.3.1.tgz#1da5c0712a252d70917d46c037054f5918c49ee4" + integrity sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -4024,26 +3446,26 @@ jest-snapshot@^27.2.4: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/transform" "^27.3.1" + "@jest/types" "^27.2.5" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.2.4" + expect "^27.3.1" graceful-fs "^4.2.4" - jest-diff "^27.2.4" - jest-get-type "^27.0.6" - jest-haste-map "^27.2.4" - jest-matcher-utils "^27.2.4" - jest-message-util "^27.2.4" - jest-resolve "^27.2.4" - jest-util "^27.2.4" + jest-diff "^27.3.1" + jest-get-type "^27.3.1" + jest-haste-map "^27.3.1" + jest-matcher-utils "^27.3.1" + jest-message-util "^27.3.1" + jest-resolve "^27.3.1" + jest-util "^27.3.1" natural-compare "^1.4.0" - pretty-format "^27.2.4" + pretty-format "^27.3.1" semver "^7.3.2" -jest-util@^27.0.0, jest-util@^27.2.4: +jest-util@^27.0.0: version "27.2.4" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.4.tgz#3d7ce081b2e7f4cfe0156452ac01f3cb456cc656" integrity sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg== @@ -4055,48 +3477,65 @@ jest-util@^27.0.0, jest-util@^27.2.4: is-ci "^3.0.0" picomatch "^2.2.3" -jest-validate@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.4.tgz#b66d462b2fb93d7e16a47d1aa8763d5600bf2cfa" - integrity sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog== +jest-util@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.3.1.tgz#a58cdc7b6c8a560caac9ed6bdfc4e4ff23f80429" + integrity sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw== dependencies: - "@jest/types" "^27.2.4" + "@jest/types" "^27.2.5" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.4" + picomatch "^2.2.3" + +jest-validate@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.3.1.tgz#3a395d61a19cd13ae9054af8cdaf299116ef8a24" + integrity sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q== + dependencies: + "@jest/types" "^27.2.5" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^27.0.6" + jest-get-type "^27.3.1" leven "^3.1.0" - pretty-format "^27.2.4" + pretty-format "^27.3.1" -jest-watcher@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.4.tgz#b1d5c39ab94f59f4f35f66cc96f7761a10e0cfc4" - integrity sha512-LXC/0+dKxhK7cfF7reflRYlzDIaQE+fL4ynhKhzg8IMILNMuI4xcjXXfUJady7OR4/TZeMg7X8eHx8uan9vqaQ== +jest-watcher@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.3.1.tgz#ba5e0bc6aa843612b54ddb7f009d1cbff7e05f3e" + integrity sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA== dependencies: - "@jest/test-result" "^27.2.4" - "@jest/types" "^27.2.4" + "@jest/test-result" "^27.3.1" + "@jest/types" "^27.2.5" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.2.4" + jest-util "^27.3.1" string-length "^4.0.1" -jest-worker@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.4.tgz#881455df75e22e7726a53f43703ab74d6b36f82d" - integrity sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g== +jest-worker@^27.0.2, jest-worker@^27.0.6, jest-worker@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" + integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.2.4.tgz#70e27bef873138afc123aa4769f7124c50ad3efb" - integrity sha512-h4uqb1EQLfPulWyUFFWv9e9Nn8sCqsJ/j3wk/KCY0p4s4s0ICCfP3iMf6hRf5hEhsDyvyrCgKiZXma63gMz16A== +jest@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.3.1.tgz#b5bab64e8f56b6f7e275ba1836898b0d9f1e5c8a" + integrity sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng== dependencies: - "@jest/core" "^27.2.4" + "@jest/core" "^27.3.1" import-local "^3.0.2" - jest-cli "^27.2.4" + jest-cli "^27.3.1" + +jora@^1.0.0-beta.5: + version "1.0.0-beta.5" + resolved "https://registry.yarnpkg.com/jora/-/jora-1.0.0-beta.5.tgz#55b2c4d86078af1bc74da401e88b67be42b0bddd" + integrity sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg== js-tokens@^4.0.0: version "4.0.0" @@ -4111,6 +3550,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -4149,7 +3595,7 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -4197,43 +3643,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -4265,17 +3679,17 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== +linkify-it@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== dependencies: uc.micro "^1.0.1" -lint-staged@^11.2.0: - version "11.2.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.0.tgz#6b9774a74b3eb4bef5c59fb6475bff84d6853008" - integrity sha512-0KIcRuO4HQS2Su7qWtjrfTXgSklvyIb9Fk9qVWRZkGHa5S81Vj6WBbs+ogQBvHUwLJYq1eQ4R+H82GSak4OM7w== +lint-staged@^11.2.3: + version "11.2.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.3.tgz#fc3f4569cc4f46553309dfc1447b8aef69f744fb" + integrity sha512-Tfmhk8O2XFMD25EswHPv+OYhUjsijy5D7liTdxeXvhG2rsadmOLFtyj8lmlfoFFXY8oXWAIOKpoI+lJe1DB1mw== dependencies: cli-truncate "2.1.0" colorette "^1.4.0" @@ -4305,38 +3719,10 @@ listr2@^3.12.2: through "^2.3.8" wrap-ansi "^7.0.0" -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== locate-path@^2.0.0: version "2.0.0" @@ -4346,14 +3732,6 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -4361,12 +3739,7 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.memoize@^4.1.2: +lodash.memoize@4.x, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -4376,17 +3749,12 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: +lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4401,13 +3769,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4415,14 +3776,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -4442,37 +3795,25 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= +markdown-it@^12.2.0: + version "12.2.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.2.0.tgz#091f720fd5db206f80de7a8d1f1a7035fd0d38db" + integrity sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg== dependencies: - object-visit "^1.0.0" - -markdown-it@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" - integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== - dependencies: - argparse "^1.0.7" - entities "~2.0.0" - linkify-it "^2.0.0" + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" mdurl "^1.0.1" uc.micro "^1.0.5" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" mdn-data@2.0.14: version "2.0.14" @@ -4484,22 +3825,6 @@ mdurl@^1.0.1: resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -4510,32 +3835,6 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mico-spinner@^1.2.2, mico-spinner@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/mico-spinner/-/mico-spinner-1.3.0.tgz#aa8611aceb551522f5bab7f2895a159ac0c29d6a" - integrity sha512-iwc0mhP+H/qorAKhDsDW40QOb3kKxAIwH1ImoIkFUWP3kT4gn6UZ2gdyT0uNRLrCx7fADY1F7OFBuFM1/wfflQ== - dependencies: - nanocolors "^0.1.1" - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" @@ -4544,45 +3843,27 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.50.0: version "1.50.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@^2.1.27: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: mime-db "1.50.0" -mime@^2.3.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: +min-indent@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== minimatch@^3.0.4: version "3.0.4" @@ -4596,54 +3877,11 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.3: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4664,12 +3902,7 @@ multimap@^1.1.0: resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nanocolors@^0.1.0, nanocolors@^0.1.1, nanocolors@^0.1.12, nanocolors@^0.1.5: +nanocolors@^0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== @@ -4689,34 +3922,29 @@ nanoid@^3.1.25, nanoid@^3.1.28: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +nanoid@^3.1.30: + version "3.1.30" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" + integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== + +nanospinner@^0.3.0: + version "0.3.2" + resolved "https://registry.yarnpkg.com/nanospinner/-/nanospinner-0.3.2.tgz#501ac31b48bf47be8e25fc07543b5fe620a742e8" + integrity sha512-ToZuxmiRuuNe3McB7CVzP7PCOhzWAy4qx6ndb5QWxJFp6INdg3n0mVm8f7HR6Fz8raRg3/vzglIZYrOSna8vkg== + dependencies: + picocolors "^1.0.0" natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -neo-async@^2.5.0, neo-async@^2.6.1: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-fetch@^2.6.0: +node-fetch@^2.6.2: version "2.6.5" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== @@ -4728,35 +3956,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" @@ -4767,7 +3966,12 @@ node-releases@^1.1.77: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +node-releases@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.0.tgz#67dc74903100a7deb044037b8a2e5f453bb05400" + integrity sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA== + +normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -4777,13 +3981,6 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -4813,20 +4010,6 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" @@ -4837,13 +4020,6 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" @@ -4854,14 +4030,7 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.4: +object.values@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== @@ -4870,7 +4039,7 @@ object.values@^1.1.4: define-properties "^1.1.3" es-abstract "^1.19.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -4884,19 +4053,14 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -optimize-css-assets-webpack-plugin@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.1.tgz#7719bceabba1f3891ec3ae04efb81a1cc99cd793" - integrity sha512-BshV2UZPfggZLdUfN3zFBbG4sl/DynUI+YCB6fRRDWaqO2OiWN8GPcp4Y0/fEV6B3k9Hzyk3czve3V/8B/SzKQ== +open@^8.2.1: + version "8.3.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.3.0.tgz#fdef1cdfe405e60dec8ebd18889e7e812f39c59f" + integrity sha512-7INcPWb1UcOwSQxAXTnBJ+FxVV4MPs/X++FWWBtgY69/J5lc+tCteMt/oFK1MnkyHC4VILLa9ntmwKTwDR4Q9w== dependencies: - cssnano "^5.0.2" - last-call-webpack-plugin "^3.0.0" - postcss "^8.2.1" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" optionator@^0.8.1: version "0.8.3" @@ -4922,11 +4086,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -4934,13 +4093,20 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -4948,13 +4114,6 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4975,23 +4134,9 @@ p-try@^1.0.0: integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== parent-module@^1.0.0: version "1.0.1" @@ -5000,26 +4145,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -5034,21 +4160,6 @@ parse5@6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -5074,54 +4185,26 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picocolors@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.1.0.tgz#e10d446a03ca5f127e9680865fbfe80ee5148266" - integrity sha512-W+3MFREUEjPt0MnYaR51VkLw8tY8UubrLOqcBmaQocZhM34hQhjg50FQ0c6f0UldPlecieoqUqI6ToM/dNblDw== - picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -5136,13 +4219,6 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -5150,13 +4226,6 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -5169,18 +4238,6 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pnp-webpack-plugin@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" - integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== - dependencies: - ts-pnp "^1.1.6" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - postcss-calc@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" @@ -5384,13 +4441,12 @@ postcss-ordered-values@^5.0.2: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-parser-tests@^8.3.6: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.6.tgz#59f81ac983e4d1568dc0c767c981ce0f7d7362e0" - integrity sha512-8EoUK+bz0lUZvpajGsNMhjbFKSgo38BpqCaKywHxGHkpPN7jlaNni0XiXYzkcHP5cgohniZnN7dXRamQi/lMRw== +postcss-parser-tests@^8.3.7: + version "8.3.7" + resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.7.tgz#d74151da5a89308ad4e77eb21acff2166df5c6e5" + integrity sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q== dependencies: - ci-job-number "^1.2.2" - nanocolors "^0.1.5" + picocolors "^1.0.0" spinnies "^0.5.1" postcss-reduce-initial@^5.0.1: @@ -5439,7 +4495,7 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^8.2.1, postcss@^8.2.15: +postcss@^8.2.15: version "8.3.8" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== @@ -5448,6 +4504,15 @@ postcss@^8.2.1, postcss@^8.2.15: nanoid "^3.1.25" source-map-js "^0.6.2" +postcss@^8.3.5: + version "8.3.9" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.9.tgz#98754caa06c4ee9eb59cc48bd073bb6bd3437c31" + integrity sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw== + dependencies: + nanoid "^3.1.28" + picocolors "^0.2.1" + source-map-js "^0.6.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -5473,26 +4538,21 @@ pretty-format@^27.0.0, pretty-format@^27.2.4: ansi-styles "^5.0.0" react-is "^17.0.1" -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +pretty-format@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" + integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== + dependencies: + "@jest/types" "^27.2.5" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - prompts@^2.0.1: version "2.4.1" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" @@ -5501,111 +4561,33 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -5615,15 +4597,6 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -5634,37 +4607,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -5672,39 +4614,16 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regexp-tree@^0.1.23, regexp-tree@~0.1.1: version "0.1.24" resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== -regexpp@^3.0.0, regexpp@^3.1.0: +regexpp@^3.0.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5737,10 +4656,10 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== resolve@^1.10.0, resolve@^1.10.1, resolve@^1.20.0: version "1.20.0" @@ -5768,13 +4687,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -5782,14 +4694,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5797,13 +4701,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - rxjs@^6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" @@ -5811,12 +4708,12 @@ rxjs@^6.6.7: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -5835,7 +4732,7 @@ safe-regex@^2.1.1: dependencies: regexp-tree "~0.1.1" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -5852,16 +4749,7 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^3.0.0: +schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -5875,7 +4763,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@^5.6.0: +"semver@2 || 3 || 4 || 5": version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -5892,36 +4780,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -5953,32 +4818,23 @@ simple-git-hooks@^2.6.1: resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.6.1.tgz#0843d7ad7d3be3bb877b86f218d0abea87611584" integrity sha512-nvqaNfgvcjN3cGSYJSdjwB+tP8YKRCyvuUvQ24luIjIpGhUCPpZDTJ+p+hcJiwc0lZlTCl0NayfBVDoIMG7Jpg== -sirv@^1.0.7: - version "1.0.17" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.17.tgz#86e2c63c612da5a1dace1c16c46f524aaa26ac45" - integrity sha512-qx9go5yraB7ekT7bCMqUHJ5jEaOC/GXBxUWv+jeWnb7WzHUFdcQPGWk7YmAwFBaQBrogpuSqd/azbC2lZRqqmw== - dependencies: - "@polka/url" "^1.0.0-next.20" - mime "^2.3.1" - totalist "^1.0.0" - sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-5.0.5.tgz#860643aade5dae4bd9afc72ab0ef081e987e5377" - integrity sha512-DtblS3Qc1SmtEtAYE6RGmg1UFdIzz2aWhlnzbBc3FYc0XMsTVT0kKB40DMIZ/yU5JztkMetdqB5Q5Pow/iVazg== +size-limit@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-6.0.3.tgz#980e91993a409cb80dd4776fe3e2867afa4d55d0" + integrity sha512-bvZuNG1dPJ8GTkFq3lXkW8H1+ybVV3D7GecowAGlfbNO2T1Mcvy8kCoCpwVOWnq1wV+TraRUtExnQzIyyV94NQ== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" globby "^11.0.4" lilconfig "^2.0.3" - mico-spinner "^1.3.0" - picocolors "^0.1.0" + nanospinner "^0.3.0" + picocolors "^0.2.1" slash@^3.0.0: version "3.0.0" @@ -6003,58 +4859,12 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.20" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== @@ -6062,12 +4872,7 @@ source-map-support@^0.5.6, source-map-support@~0.5.12: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -6077,7 +4882,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: +source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -6117,25 +4922,11 @@ spinnies@^0.5.1: cli-cursor "^3.0.0" strip-ansi "^5.2.0" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -6148,46 +4939,6 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - string-argv@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" @@ -6201,7 +4952,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6226,20 +4977,6 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - stringify-object@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -6278,18 +5015,22 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" - integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" +style-loader@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.0.tgz#d66ea95fc50b22f8b79b69a9e414760fcf58d8d8" + integrity sha512-szANub7ksJtQioJYtpbWwh1hUl99uK15n5HDlikeCRil/zYMZgSxucHddyF/4A3qJMUiAjPhFowrrQuNMA7jwQ== stylehacks@^5.0.1: version "5.0.1" @@ -6346,22 +5087,10 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.0.9: - version "6.7.2" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0" - integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g== - dependencies: - ajv "^8.0.1" - lodash.clonedeep "^4.5.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== terminal-link@^2.0.0: version "2.1.1" @@ -6371,29 +5100,26 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== +terser-webpack-plugin@^5.1.3: + version "5.2.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1" + integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA== dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" + jest-worker "^27.0.6" + p-limit "^3.1.0" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" + terser "^5.7.2" -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser@^5.7.2: + version "5.9.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" + integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.20" test-exclude@^6.0.0: version "6.0.0" @@ -6414,26 +5140,11 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -6444,31 +5155,11 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -6476,21 +5167,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -6512,25 +5188,20 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -ts-jest@^27.0.5: - version "27.0.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" - integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== +ts-jest@^27.0.7: + version "27.0.7" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.7.tgz#fb7c8c8cb5526ab371bc1b23d06e745652cca2d0" + integrity sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" jest-util "^27.0.0" json5 "2.x" - lodash "4.x" + lodash.memoize "4.x" make-error "1.x" semver "7.x" yargs-parser "20.x" -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - tsconfig-paths@^3.11.0: version "3.11.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" @@ -6553,11 +5224,6 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6604,15 +5270,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" - integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== +typescript@^4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -6629,35 +5290,11 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - unist-util-stringify-position@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" @@ -6675,19 +5312,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -6695,43 +5319,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -6785,11 +5377,6 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -6811,23 +5398,13 @@ walker@^1.0.7: dependencies: makeerror "1.0.x" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" webidl-conversions@^3.0.0: version "3.0.1" @@ -6844,57 +5421,40 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-bundle-analyzer@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" - integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== - dependencies: - acorn "^8.0.4" - acorn-walk "^8.0.0" - chalk "^4.1.0" - commander "^6.2.0" - gzip-size "^6.0.0" - lodash "^4.17.20" - opener "^1.5.2" - sirv "^1.0.7" - ws "^7.3.1" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.44.1: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" +webpack-sources@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" + integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== + +webpack@^5, webpack@^5.56.0: + version "5.59.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.59.0.tgz#a5038fc0d4d9350ee528e7e1e0282080c63efcf5" + integrity sha512-2HiFHKnWIb/cBfOfgssQn8XIRvntISXiz//F1q1+hKMs+uzC1zlVCJZEP7XqI1wzrDyc/ZdB4G+MYtz5biJxCA== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" whatwg-encoding@^1.0.5: version "1.0.5" @@ -6948,13 +5508,6 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -6988,7 +5541,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^7.3.1, ws@^7.4.6: +ws@^7.4.6: version "7.5.5" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== @@ -7016,32 +5569,17 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: +yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -7069,23 +5607,29 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yaspeller@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yaspeller/-/yaspeller-7.0.0.tgz#c49af3b5b147edda430996fa1e65b1e577bfb4f4" - integrity sha512-M8phUfHrL0dGCU5jUK9k85hikCSmjpPFAdjnH/Lg1/E81TEuTI7m8m5jhIWAXHWjfZ+wPEhGBz8HLDuEs4areA== +yaspeller@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/yaspeller/-/yaspeller-7.2.0.tgz#0bd9d5423d8319466b6b31ca721cf1d5d436f755" + integrity sha512-remrayG57ND8qsV2mRbULZLl388iZ+XgslGZoh9U5wkaoEVGm30VpzOJAsSdPXK8ecQCF4jLM7MiQ+JfGrx06w== dependencies: - async "^3.2.0" - chalk "^4.0.0" + async "^3.2.1" + chalk "^4.1.2" commander "^3.0.0" - cosmiconfig "^6.0.0" - entities "^2.0.0" + cosmiconfig "^7.0.1" + entities "^3.0.1" escape-html "^1.0.3" eyo-kernel "^2.5.6" - glob "^7.1.6" - isutf8 "^2.1.0" - markdown-it "^10.0.0" + glob "^7.2.0" + isutf8 "^3.1.1" + markdown-it "^12.2.0" minimatch "^3.0.4" - node-fetch "^2.6.0" - strip-json-comments "^3.0.1" + node-fetch "^2.6.2" + parse-json "^5.2.0" + strip-json-comments "^3.1.1" xml2js "^0.4.23" yandex-speller "^4.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 164eb3776b8e7426fe3b26b2b59ced60d3714250 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 20 Oct 2021 17:32:09 +0200 Subject: [PATCH 2353/3047] Fix stack overflow on complex RegExp --- lib/previous-map.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/previous-map.js b/lib/previous-map.js index fb634deff..f93e67382 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -48,23 +48,21 @@ class PreviousMap { } getAnnotationURL(sourceMapString) { - return sourceMapString - .match(/\/\*\s*# sourceMappingURL=((?:(?!sourceMappingURL=).)*)\*\//)[1] - .trim() + console.log(sourceMapString) + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() } loadAnnotation(css) { - let annotations = css.match( - /\/\*\s*# sourceMappingURL=(?:(?!sourceMappingURL=).)*\*\//gm - ) + let comments = css.match(/\/\*\s*# sourceMappingURL=/gm) + if (!comments) return - if (annotations && annotations.length > 0) { - // Locate the last sourceMappingURL to avoid picking up - // sourceMappingURLs from comments, strings, etc. - let lastAnnotation = annotations[annotations.length - 1] - if (lastAnnotation) { - this.annotation = this.getAnnotationURL(lastAnnotation) - } + // sourceMappingURLs from comments, strings, etc. + let start = css.lastIndexOf(comments.pop()) + let end = css.indexOf('*/', start) + + if (start > -1 && end > -1) { + // Locate the last sourceMappingURL to avoid pickin + this.annotation = this.getAnnotationURL(css.substring(start, end)) } } From 53611150f875d13631b9a94d7b0cce32a58b3328 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 20 Oct 2021 19:46:01 +0200 Subject: [PATCH 2354/3047] Release 8.3.10 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b44add929..54d861fec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.10 +* Fixed `Maximum call stack` issue of some source maps (by Yeting Li). + ## 8.3.9 * Replaced `nanocolors` to `picocolors`. * Reduced package size. diff --git a/lib/processor.js b/lib/processor.js index 40cac2e4f..7f6e04e92 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.9' + this.version = '8.3.10' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index db026d42e..750112973 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.9", + "version": "8.3.10", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 5446af5fd012f767fe67fc83a1ce0758c55af277 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 21 Oct 2021 14:41:05 +0200 Subject: [PATCH 2355/3047] Remove console.log --- lib/previous-map.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/previous-map.js b/lib/previous-map.js index f93e67382..bcc378d5b 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -48,7 +48,6 @@ class PreviousMap { } getAnnotationURL(sourceMapString) { - console.log(sourceMapString) return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() } From e64fd862ae91aebc920272c6b6686a6c9e5cc53f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 21 Oct 2021 14:41:55 +0200 Subject: [PATCH 2356/3047] Update dependencies --- package.json | 4 +- yarn.lock | 301 +++++++++++++++++---------------------------------- 2 files changed, 102 insertions(+), 203 deletions(-) diff --git a/package.json b/package.json index 750112973..8f12e1f9f 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "@size-limit/preset-small-lib": "^6.0.3", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", - "@types/node": "^16.11.1", + "@types/node": "^16.11.2", "@typescript-eslint/eslint-plugin": "^5.1.0", "@typescript-eslint/parser": "^5.1.0", "check-dts": "^0.6.1", @@ -89,7 +89,7 @@ "eslint-plugin-jest": "^25.2.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^1.1.0", - "eslint-plugin-promise": "^5.1.0", + "eslint-plugin-promise": "^5.1.1", "eslint-plugin-security": "^1.4.0", "eslint-plugin-unicorn": "^37.0.1", "fs-extra": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 7de55ba7f..80d6b965b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" + integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== dependencies: "@babel/highlight" "^7.14.5" @@ -14,20 +14,20 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== -"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.15.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" - integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== +"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" + integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.4" + "@babel/code-frame" "^7.15.8" + "@babel/generator" "^7.15.8" "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.8" "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.5" + "@babel/parser" "^7.15.8" "@babel/template" "^7.15.4" "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/types" "^7.15.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -36,20 +36,20 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.12.16": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.7.tgz#2dc3d0ff0ea22bb1e08d93b4eeb1149bf1c75f2d" - integrity sha512-yJkHyomClm6A2Xzb8pdAo4HzYMSXFn1O5zrCYvbFP0yQFvHueLedV8WiEno8yJOKStjUXzBZzJFeWQ7b3YMsqQ== + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz#8988660b59d739500b67d0585fd4daca218d9f11" + integrity sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.15.4", "@babel/generator@^7.7.2": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" - integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== +"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.7.2": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" + integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.15.6" jsesc "^2.5.1" source-map "^0.5.0" @@ -100,10 +100,10 @@ dependencies: "@babel/types" "^7.15.4" -"@babel/helper-module-transforms@^7.15.4": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226" - integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw== +"@babel/helper-module-transforms@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz#d8c0e75a87a52e374a8f25f855174786a09498b2" + integrity sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg== dependencies: "@babel/helper-module-imports" "^7.15.4" "@babel/helper-replace-supers" "^7.15.4" @@ -178,10 +178,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5", "@babel/parser@^7.7.2": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" - integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.7.2": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" + integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -519,17 +519,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^27.2.4": - version "27.2.4" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.4.tgz#2430042a66e00dc5b140c3636f4474d464c21ee8" - integrity sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@jest/types@^27.2.5": version "27.2.5" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" @@ -874,21 +863,16 @@ dependencies: "@types/node" "*" -"@types/node@*": - version "16.10.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" - integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== +"@types/node@*", "@types/node@^16.11.2": + version "16.11.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.2.tgz#31c249c136c3f9b35d4b60fb8e50e01a1f0cc9a5" + integrity sha512-w34LtBB0OkDTs19FQHXy4Ig/TOXI4zqvXS2Kk1PAsRKZ0I+nik7LlMYxckW0tSNGtvWmzB+mrCTbuEjuB9DVsw== "@types/node@^12.20.15": version "12.20.33" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.33.tgz#24927446e8b7669d10abacedd16077359678f436" integrity sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw== -"@types/node@^16.11.1": - version "16.11.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.1.tgz#2e50a649a50fc403433a14f829eface1a3443e97" - integrity sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -1345,14 +1329,14 @@ babel-jest@^27.3.1: slash "^3.0.0" babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" babel-plugin-jest-hoist@^27.2.0: @@ -1426,18 +1410,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.17.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.3.tgz#2844cd6eebe14d12384b0122d217550160d2d624" - integrity sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ== - dependencies: - caniuse-lite "^1.0.30001264" - electron-to-chromium "^1.3.857" - escalade "^3.1.1" - node-releases "^1.1.77" - picocolors "^0.2.1" - -browserslist@^4.14.5: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: version "4.17.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.4.tgz#72e2508af2a403aec0a49847ef31bd823c57ead4" integrity sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ== @@ -1510,12 +1483,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001264: - version "1.0.30001264" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001264.tgz#88f625a60efb6724c7c62ac698bc8dbd9757e55b" - integrity sha512-Ftfqqfcs/ePiUmyaySsQ4PUsdcYyXG2rfoBVsk3iY1ahHaJEw65vfb7Suzqm+cEkwwPIv/XWkg27iCpRavH4zA== - -caniuse-lite@^1.0.30001265: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001265: version "1.0.30001270" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== @@ -1577,7 +1545,7 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^3.1.1, ci-info@^3.2.0: +ci-info@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== @@ -1674,9 +1642,9 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colord@^2.0.1, colord@^2.6: - version "2.8.0" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.8.0.tgz#64fb7aa03de7652b5a39eee50271a104c2783b12" - integrity sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA== + version "2.9.1" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" + integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== colorette@^1.4.0: version "1.4.0" @@ -1813,9 +1781,9 @@ css-tree@^1.1.2, css-tree@^1.1.3: source-map "^0.6.1" css-what@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" - integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== cssesc@^3.0.0: version "3.0.0" @@ -2036,15 +2004,10 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -electron-to-chromium@^1.3.857: - version "1.3.857" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.857.tgz#dcc239ff8a12b6e4b501e6a5ad20fd0d5a3210f9" - integrity sha512-a5kIr2lajm4bJ5E4D3fp8Y/BRB0Dx2VOcCRE5Gtb679mXIME/OFhWler8Gy2ksrf8gFX+EFCSIGA33FB3gqYpg== - electron-to-chromium@^1.3.867: - version "1.3.873" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.873.tgz#c238c9199e4951952fe815a65c1beab5db4826b8" - integrity sha512-TiHlCgl2uP26Z0c67u442c0a2MZCWZNCRnPTQDPhVJ4h9G6z2zU0lApD9H0K9R5yFL5SfdaiVsVD2izOY24xBQ== + version "1.3.876" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.876.tgz#fe6f65c9740406f4aa69f10faa8e1d79b81bdf34" + integrity sha512-a6LR4738psrubCtGx5HxM/gNlrIsh4eFTNnokgOqvQo81GWd07lLcOjITkAXn2y4lIp18vgS+DGnehj+/oEAxQ== emittery@^0.8.1: version "0.8.1" @@ -2245,10 +2208,10 @@ eslint-plugin-prefer-let@^1.1.0: dependencies: requireindex "~1.2.0" -eslint-plugin-promise@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz#fb2188fb734e4557993733b41aa1a688f46c6f24" - integrity sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng== +eslint-plugin-promise@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz#9674d11c056d1bafac38e4a3a9060be740988d90" + integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA== eslint-plugin-security@^1.4.0: version "1.4.0" @@ -2727,9 +2690,9 @@ has@^1.0.3: function-bind "^1.1.1" highcharts@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.2.2.tgz#4ace4aa7c4d2b4051115d9be70bfd2038559d656" - integrity sha512-OMEdFCaG626ES1JEcKAvJTpxAOMuchy0XuAplmnOs0Yu7NMd2RMfTLFQ2fCJOxo3ubSdm/RVQwKAWC+5HYThnw== + version "9.3.0" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.3.0.tgz#999496c8af677d5f08e41e2e708d3eb7baf56640" + integrity sha512-nQ7yW5ni7wFiPgDN2IWrS6o6NjL1gK/OhZjrdpyB3FQuefMkTQngygP+JqZFMx7PDrP3YAvfejx0M5IgkC01ow== hosted-git-info@^2.1.4: version "2.8.9" @@ -2901,21 +2864,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-ci@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== - dependencies: - ci-info "^3.1.1" - -is-core-module@^2.2.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" - integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== - dependencies: - has "^1.0.3" - -is-core-module@^2.7.0: +is-core-module@^2.2.0, is-core-module@^2.7.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== @@ -3050,11 +2999,11 @@ isexe@^2.0.0: integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= istanbul-lib-coverage@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz#e8900b3ed6069759229cf30f7067388d148aeb5e" - integrity sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: +istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -3064,6 +3013,17 @@ istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-instrument@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.0.4.tgz#e976f2aa66ebc6737f236d3ab05b76e36f885c80" + integrity sha512-W6jJF9rLGEISGoCyXRqa/JCGQGmmxPO10TMu7izaUTynxvBvTjqzAIIGCK9USBmIbQAaSWD6XJPrM9Pv5INknw== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -3074,18 +3034,18 @@ istanbul-lib-report@^3.0.0: supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== dependencies: debug "^4.1.1" istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + version "3.0.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.5.tgz#a2580107e71279ea6d661ddede929ffc6d693384" + integrity sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -3174,17 +3134,7 @@ jest-config@^27.3.1: micromatch "^4.0.4" pretty-format "^27.3.1" -jest-diff@^27.0.0: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.4.tgz#171c51d3d2c105c457100fee6e7bf7cee51c8d8c" - integrity sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.2.4" - -jest-diff@^27.3.1: +jest-diff@^27.0.0, jest-diff@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.3.1.tgz#d2775fea15411f5f5aeda2a5e02c2f36440f6d55" integrity sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ== @@ -3237,11 +3187,6 @@ jest-environment-node@^27.3.1: jest-mock "^27.3.0" jest-util "^27.3.1" -jest-get-type@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" - integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== - jest-get-type@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" @@ -3465,19 +3410,7 @@ jest-snapshot@^27.3.1: pretty-format "^27.3.1" semver "^7.3.2" -jest-util@^27.0.0: - version "27.2.4" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.4.tgz#3d7ce081b2e7f4cfe0156452ac01f3cb456cc656" - integrity sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg== - dependencies: - "@jest/types" "^27.2.4" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^3.0.0" - picomatch "^2.2.3" - -jest-util@^27.3.1: +jest-util@^27.0.0, jest-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.3.1.tgz#a58cdc7b6c8a560caac9ed6bdfc4e4ff23f80429" integrity sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw== @@ -3907,22 +3840,12 @@ nanocolors@^0.1.12: resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== -nanocolors@^0.2.2: - version "0.2.12" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.12.tgz#4d05932e70116078673ea4cc6699a1c56cc77777" - integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug== - nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== -nanoid@^3.1.25, nanoid@^3.1.28: - version "3.1.28" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" - integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== - -nanoid@^3.1.30: +nanoid@^3.1.28, nanoid@^3.1.30: version "3.1.30" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== @@ -3961,15 +3884,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.77: - version "1.1.77" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" - integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== - node-releases@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.0.tgz#67dc74903100a7deb044037b8a2e5f453bb05400" - integrity sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== normalize-package-data@^2.5.0: version "2.5.0" @@ -4495,22 +4413,13 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^8.2.15: - version "8.3.8" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" - integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== +postcss@^8.2.15, postcss@^8.3.5: + version "8.3.10" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.10.tgz#4d614e108ccc69c65c2f6dc6cec23dd5c85b73af" + integrity sha512-YYfvfUdWx+ECpr5Hgc6XRfsaux8LksL5ey8qTtWiuRXOpOF1YYMwAySdh0nSmwhZAFvvJ6rgiIkKVShu4x2T1Q== dependencies: - nanocolors "^0.2.2" - nanoid "^3.1.25" - source-map-js "^0.6.2" - -postcss@^8.3.5: - version "8.3.9" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.9.tgz#98754caa06c4ee9eb59cc48bd073bb6bd3437c31" - integrity sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw== - dependencies: - nanoid "^3.1.28" - picocolors "^0.2.1" + nanoid "^3.1.30" + picocolors "^1.0.0" source-map-js "^0.6.2" prelude-ls@^1.2.1: @@ -4528,17 +4437,7 @@ prettier@^2.4.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== -pretty-format@^27.0.0, pretty-format@^27.2.4: - version "27.2.4" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.4.tgz#08ea39c5eab41b082852d7093059a091f6ddc748" - integrity sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg== - dependencies: - "@jest/types" "^27.2.4" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^27.3.1: +pretty-format@^27.0.0, pretty-format@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== @@ -4554,9 +4453,9 @@ progress@^2.0.0: integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" - integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" sisteransi "^1.0.5" @@ -5368,9 +5267,9 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.1.0.tgz#18e78016f0f71e98d737d40f0fca921dc264a600" - integrity sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg== + version "5.1.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.1.1.tgz#d71576553720f73123b72f4b100d9ac95bc9164d" + integrity sha512-sfI+3MnGUodvAE2s3hXCcJxhcymXQgekdgqNf9WMcmWtZU65tPMaml5eGYREJfMJGHr4/0GPZgrN3UMgWjHXSQ== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -5427,9 +5326,9 @@ webpack-sources@^3.2.0: integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== webpack@^5, webpack@^5.56.0: - version "5.59.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.59.0.tgz#a5038fc0d4d9350ee528e7e1e0282080c63efcf5" - integrity sha512-2HiFHKnWIb/cBfOfgssQn8XIRvntISXiz//F1q1+hKMs+uzC1zlVCJZEP7XqI1wzrDyc/ZdB4G+MYtz5biJxCA== + version "5.59.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.59.1.tgz#60c77e9aad796252153d4d7ab6b2d4c11f0e548c" + integrity sha512-I01IQV9K96FlpXX3V0L4nvd7gb0r7thfuu1IfT2P4uOHOA77nKARAKDYGe/tScSHKnffNIyQhLC8kRXzY4KEHQ== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" From dbb287052c1f570db872563ca98767a9b07e2b1d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 21 Oct 2021 14:42:57 +0200 Subject: [PATCH 2357/3047] Release 8.3.11 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54d861fec..357bf96dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.3.11 +* Remove debugging code. + ## 8.3.10 * Fixed `Maximum call stack` issue of some source maps (by Yeting Li). diff --git a/lib/processor.js b/lib/processor.js index 7f6e04e92..e3e3bbe59 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -6,7 +6,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.3.10' + this.version = '8.3.11' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 8f12e1f9f..ed000b086 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.10", + "version": "8.3.11", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 209103bbec7924c86b71b0be9a52e87949d0d7d9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 21 Oct 2021 14:46:50 +0200 Subject: [PATCH 2358/3047] Prevent console.log issue in the future --- lib/lazy-result.js | 2 ++ lib/postcss.js | 3 +++ lib/processor.js | 2 ++ lib/warn-once.js | 1 + package.json | 5 +++-- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 6069ba690..642bba30c 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -364,6 +364,7 @@ class LazyResult { let b = runtimeVer.split('.') if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console console.error( 'Unknown error from PostCSS plugin. Your current PostCSS ' + 'version is ' + @@ -379,6 +380,7 @@ class LazyResult { } } catch (err) { // istanbul ignore next + // eslint-disable-next-line no-console if (console && console.error) console.error(err) } return error diff --git a/lib/postcss.js b/lib/postcss.js index b03bb1803..0c8f0883c 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -27,7 +27,9 @@ function postcss(...plugins) { } postcss.plugin = function plugin(name, initializer) { + // eslint-disable-next-line no-console if (console && console.warn) { + // eslint-disable-next-line no-console console.warn( name + ': postcss.plugin was deprecated. Migration guide:\n' + @@ -35,6 +37,7 @@ postcss.plugin = function plugin(name, initializer) { ) if (process.env.LANG && process.env.LANG.startsWith('cn')) { // istanbul ignore next + // eslint-disable-next-line no-console console.warn( name + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + diff --git a/lib/processor.js b/lib/processor.js index e3e3bbe59..c865b5cef 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -24,7 +24,9 @@ class Processor { !opts.hideNothingWarning ) { if (process.env.NODE_ENV !== 'production') { + // eslint-disable-next-line no-console if (typeof console !== 'undefined' && console.warn) { + // eslint-disable-next-line no-console console.warn( 'You did not set any plugins, parser, or stringifier. ' + 'Right now, PostCSS does nothing. Pick plugins for your case ' + diff --git a/lib/warn-once.js b/lib/warn-once.js index 6896b7585..316e1cf46 100644 --- a/lib/warn-once.js +++ b/lib/warn-once.js @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ 'use strict' let printed = {} diff --git a/package.json b/package.json index ed000b086..8bf2dfd4c 100644 --- a/package.json +++ b/package.json @@ -160,8 +160,7 @@ "rules": { "@typescript-eslint/no-explicit-any": "off", "consistent-return": "off", - "global-require": "off", - "no-console": "off" + "global-require": "off" }, "overrides": [ { @@ -170,6 +169,7 @@ ], "rules": { "no-unused-expressions": "off", + "no-console": "off", "func-style": "off" } }, @@ -179,6 +179,7 @@ ], "rules": { "@typescript-eslint/no-unused-expressions": "off", + "no-console": "off", "func-style": "off" } } From ba154fcf0d8db7a599bd8509598029ab4d00e897 Mon Sep 17 00:00:00 2001 From: WilhelmYakunin Date: Wed, 27 Oct 2021 23:34:47 +0300 Subject: [PATCH 2359/3047] add no-work in case of no options made --- lib/document.js | 22 +- lib/no-work.d.ts | 175 + lib/no-work.js | 545 +++ lib/processor.js | 18 +- lib/root.js | 23 +- package-lock.json | 7150 ++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- test/no-work.test.ts | 64 + test/processor.test.ts | 13 +- 9 files changed, 7986 insertions(+), 27 deletions(-) create mode 100644 lib/no-work.d.ts create mode 100644 lib/no-work.js create mode 100644 package-lock.json create mode 100644 test/no-work.test.ts diff --git a/lib/document.js b/lib/document.js index 44689917f..14ca2dade 100644 --- a/lib/document.js +++ b/lib/document.js @@ -2,7 +2,7 @@ let Container = require('./container') -let LazyResult, Processor +let LazyResult, NoWork, Processor class Document extends Container { constructor(defaults) { @@ -15,9 +15,21 @@ class Document extends Container { } toResult(opts = {}) { - let lazy = new LazyResult(new Processor(), this, opts) + let result + + if ( + typeof opts.plugins === 'undefined' && + typeof opts.parser === 'undefined' && + typeof opts.stringifier === 'undefined' && + typeof opts.syntax === 'undefined' && + !opts.hideNothingWarning + ) { + result = new NoWork(new Processor(), this, opts) + } else { + result = new LazyResult(new Processor(), this, opts) + } - return lazy.stringify() + return result.stringify() } } @@ -25,6 +37,10 @@ Document.registerLazyResult = dependant => { LazyResult = dependant } +Document.registerNoWork = dependant => { + NoWork = dependant +} + Document.registerProcessor = dependant => { Processor = dependant } diff --git a/lib/no-work.d.ts b/lib/no-work.d.ts new file mode 100644 index 000000000..bea2495dd --- /dev/null +++ b/lib/no-work.d.ts @@ -0,0 +1,175 @@ +import Result, { Message, ResultOptions } from './result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Warning from './warning.js' +import Root from './root.js' + +/** + * A Promise proxy for the result of PostCSS transformations. + * + * A `NoWork` instance is returned by `Processor#process`. + * + * ```js + * const noWork = postcss([autoprefixer]).process(css) + * ``` + */ +export default class NoWork implements PromiseLike { + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls `onFulfilled` with a Result instance. If a plugin throws + * an error, the `onRejected` callback will be executed. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => { + * console.log(result.css) + * }) + * ``` + */ + then: Promise['then'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onRejected for each error thrown in any plugin. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }).catch(error => { + * console.error(error) + * }) + * ``` + */ + catch: Promise['catch'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onFinally on any error or when all plugins will finish work. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).finally(() => { + * console.log('processing ended') + * }) + * ``` + */ + finally: Promise['finally'] + + /** + * @param processor Processor used for this transformation. + * @param css CSS to parse and transform. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, css: string, opts: ResultOptions) + + /** + * Returns the default string description of an object. + * Required to implement the Promise interface. + */ + get [Symbol.toStringTag](): string + + /** + * Returns a `Processor` instance, which will be used + * for CSS transformations. + */ + get processor(): Processor + + /** + * Options from the `Processor#process` call. + */ + get opts(): ResultOptions + + /** + * Processes input CSS through synchronous plugins, converts `Root` + * to a CSS string and returns `Result#css`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. This is why this method is only + * for debug purpose, you should always use `LazyResult#then`. + */ + get css(): string + + /** + * An alias for the `css` property. Use it with syntaxes + * that generate non-CSS output. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. This is why this method is only + * for debug purpose, you should always use `LazyResult#then`. + */ + get content(): string + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#map`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. This is why this method is only + * for debug purpose, you should always use `LazyResult#then`. + */ + get map(): SourceMap + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#root`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * This is why this method is only for debug purpose, + * you should always use `LazyResult#then`. + */ + get root(): Root + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#messages`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * This is why this method is only for debug purpose, + * you should always use `LazyResult#then`. + */ + get messages(): Message[] + + /** + * Processes input CSS through synchronous plugins + * and calls `Result#warnings`. + * + * @return Warnings from plugins. + */ + warnings(): Warning[] + + /** + * Alias for the `LazyResult#css` property. + * + * ```js + * lazy + '' === lazy.css + * ``` + * + * @return Output CSS. + */ + toString(): string + + /** + * Run plugin in sync way and return `Result`. + * + * @return Result with output content. + */ + sync(): Result + + /** + * Run plugin in async way and return `Result`. + * + * @return Result with output content. + */ + async(): Promise +} diff --git a/lib/no-work.js b/lib/no-work.js new file mode 100644 index 000000000..da10f0044 --- /dev/null +++ b/lib/no-work.js @@ -0,0 +1,545 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let Container = require('./container') +let Document = require('./document') +let warnOnce = require('./warn-once') +let Result = require('./result') +let parse = require('./parse') +let Root = require('./root') + +const TYPE_TO_CLASS_NAME = { + document: 'Document', + root: 'Root', + atrule: 'AtRule', + rule: 'Rule', + decl: 'Declaration', + comment: 'Comment' +} + +const PLUGIN_PROPS = { + postcssPlugin: false, + prepare: true, + Once: true, + Document: true, + Root: true, + Declaration: true, + Rule: true, + AtRule: true, + Comment: true, + DeclarationExit: true, + RuleExit: true, + AtRuleExit: true, + CommentExit: true, + RootExit: true, + DocumentExit: true, + OnceExit: true +} + +const NOT_VISITORS = { + postcssPlugin: false, + prepare: true, + Once: true +} + +const CHILDREN = 0 + +function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then === 'function' +} + +function getEvents(node) { + let key = false + let type = TYPE_TO_CLASS_NAME[node.type] + if (node.type === 'decl') { + key = node.prop.toLowerCase() + } else if (node.type === 'atrule') { + key = node.name.toLowerCase() + } + + if (key && node.append) { + return [ + type, + type + '-' + key, + CHILDREN, + type + 'Exit', + type + 'Exit-' + key + ] + } else if (key) { + return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] + } else if (node.append) { + return [type, CHILDREN, type + 'Exit'] + } else { + return [type, type + 'Exit'] + } +} + +function toStack(node) { + let events + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit'] + } else if (node.type === 'root') { + events = ['Root', CHILDREN, 'RootExit'] + } else { + events = getEvents(node) + } + + return { + node, + events, + eventIndex: 0, + visitors: [], + visitorIndex: 0, + iterator: 0 + } +} + +function cleanMarks(node) { + node[isClean] = false + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) + return node +} + +let postcss = {} + +class NoWork { + constructor(processor, css, opts) { + this.stringified = false + this.processed = false + + let root + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { + root = cleanMarks(css) + } else if (css instanceof Result) { + root = cleanMarks(css.root) + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {} + if (!opts.map.inline) opts.map.inline = false + opts.map.prev = css.map + } + } else { + let parser = parse + if (parser.parse) parser = parser.parse + + try { + root = parser(css, opts) + } catch (error) { + this.processed = true + this.error = error + } + + if (root && !root[my]) { + // istanbul ignore next + Container.rebuild(root) + } + } + + this.result = new Result(processor, root, opts) + this.helpers = { ...postcss, result: this.result, postcss } + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }) + } + + get [Symbol.toStringTag]() { + return 'NoWork' + } + + get processor() { + return this.result.processor + } + + get opts() { + return this.result.opts + } + + get css() { + return this.stringify().css + } + + get content() { + return this.stringify().content + } + + get map() { + return this.stringify().map + } + + get root() { + return this.sync().root + } + + get messages() { + return this.sync().messages + } + + warnings() { + return this.sync().warnings() + } + + toString() { + return this.css + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this.opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + return this.async().then(onFulfilled, onRejected) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + async() { + if (this.error) return Promise.reject(this.error) + if (this.processed) return Promise.resolve(this.result) + if (!this.processing) { + this.processing = this.runAsync() + } + return this.processing + } + + sync() { + if (this.error) throw this.error + if (this.processed) return this.result + this.processed = true + + if (this.processing) { + throw this.getAsyncError() + } + + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + this.walkSync(root) + } + if (this.listeners.OnceExit) { + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot) + } + } else { + this.visitSync(this.listeners.OnceExit, root) + } + } + } + + return this.result + } + + stringify() { + if (this.error) throw this.error + if (this.stringified) return this.result + this.stringified = true + + this.sync() + + let str = stringify + if (str.stringify) str = str.stringify + + let map = new MapGenerator(str, this.result.root, this.result.opts) + let data = map.generate() + this.result.css = data[0] + this.result.map = data[1] + + return this.result + } + + walkSync(node) { + node[isClean] = true + let events = getEvents(node) + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each(child => { + if (!child[isClean]) this.walkSync(child) + }) + } + } else { + let visitors = this.listeners[event] + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) return + } + } + } + } + + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin + let promise + try { + promise = visitor(node, this.helpers) + } catch (e) { + throw this.handleError(e, node.proxyOf) + } + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + } + + runOnRoot(plugin) { + this.result.lastPlugin = plugin + try { + if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ) + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + + return plugin.Once(this.result.root, this.helpers) + } else if (typeof plugin === 'function') { + return plugin(this.result.root, this.result) + } + } catch (error) { + throw this.handleError(error) + } + } + + getAsyncError() { + throw new Error('Use process(css).then(cb) to work with async plugins') + } + + handleError(error, node) { + let plugin = this.result.lastPlugin + try { + if (node) node.addToError(error) + this.error = error + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin + error.setMessage() + } else if (plugin.postcssVersion) { + if (process.env.NODE_ENV !== 'production') { + let pluginName = plugin.postcssPlugin + let pluginVer = plugin.postcssVersion + let runtimeVer = this.result.processor.version + let a = pluginVer.split('.') + let b = runtimeVer.split('.') + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console + console.error( + 'Unknown error from PostCSS plugin. Your current PostCSS ' + + 'version is ' + + runtimeVer + + ', but ' + + pluginName + + ' uses ' + + pluginVer + + '. Perhaps this is the source of the error below.' + ) + } + } + } + } catch (err) { + // istanbul ignore next + // eslint-disable-next-line no-console + if (console && console.error) console.error(err) + } + return error + } + + async runAsync() { + this.plugin = 0 + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i] + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + try { + await promise + } catch (error) { + throw this.handleError(error) + } + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + let stack = [toStack(root)] + while (stack.length > 0) { + let promise = this.visitTick(stack) + if (isPromise(promise)) { + try { + await promise + } catch (e) { + let node = stack[stack.length - 1].node + throw this.handleError(e, node) + } + } + } + } + + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin + try { + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ) + + await Promise.all(roots) + } else { + await visitor(root, this.helpers) + } + } catch (e) { + throw this.handleError(e) + } + } + } + } + + this.processed = true + return this.stringify() + } + + prepareVisitors() { + this.listeners = {} + let add = (plugin, type, cb) => { + if (!this.listeners[type]) this.listeners[type] = [] + this.listeners[type].push([plugin, cb]) + } + for (let plugin of this.plugins) { + if (typeof plugin === 'object') { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. ` + + `Try to update PostCSS (${this.processor.version} now).` + ) + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === 'object') { + for (let filter in plugin[event]) { + if (filter === '*') { + add(plugin, event, plugin[event][filter]) + } else { + add( + plugin, + event + '-' + filter.toLowerCase(), + plugin[event][filter] + ) + } + } + } else if (typeof plugin[event] === 'function') { + add(plugin, event, plugin[event]) + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0 + } + + visitTick(stack) { + let visit = stack[stack.length - 1] + let { node, visitors } = visit + + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + stack.pop() + return + } + + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex] + visit.visitorIndex += 1 + if (visit.visitorIndex === visitors.length) { + visit.visitors = [] + visit.visitorIndex = 0 + } + this.result.lastPlugin = plugin + try { + return visitor(node.toProxy(), this.helpers) + } catch (e) { + throw this.handleError(e, node) + } + } + + if (visit.iterator !== 0) { + let iterator = visit.iterator + let child + while ((child = node.nodes[node.indexes[iterator]])) { + node.indexes[iterator] += 1 + if (!child[isClean]) { + child[isClean] = true + stack.push(toStack(child)) + return + } + } + visit.iterator = 0 + delete node.indexes[iterator] + } + + let events = visit.events + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex] + visit.eventIndex += 1 + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true + visit.iterator = node.getIterator() + } + return + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event] + return + } + } + stack.pop() + } +} + +NoWork.registerPostcss = dependant => { + postcss = dependant +} + +module.exports = NoWork +NoWork.default = NoWork + +Root.registerNoWork(NoWork) +Document.registerNoWork(NoWork) diff --git a/lib/processor.js b/lib/processor.js index c865b5cef..1727ed8c7 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -3,10 +3,11 @@ let LazyResult = require('./lazy-result') let Document = require('./document') let Root = require('./root') +let NoWork = require('./no-work') class Processor { constructor(plugins = []) { - this.version = '8.3.11' + this.version = '8.3.12' this.plugins = this.normalize(plugins) } @@ -23,19 +24,10 @@ class Processor { typeof opts.syntax === 'undefined' && !opts.hideNothingWarning ) { - if (process.env.NODE_ENV !== 'production') { - // eslint-disable-next-line no-console - if (typeof console !== 'undefined' && console.warn) { - // eslint-disable-next-line no-console - console.warn( - 'You did not set any plugins, parser, or stringifier. ' + - 'Right now, PostCSS does nothing. Pick plugins for your case ' + - 'on https://www.postcss.parts/ and use them in postcss.config.js.' - ) - } - } + return new NoWork(this, css, opts) + } else { + return new LazyResult(this, css, opts) } - return new LazyResult(this, css, opts) } normalize(plugins) { diff --git a/lib/root.js b/lib/root.js index 18e4ceaf7..3b814a7b7 100644 --- a/lib/root.js +++ b/lib/root.js @@ -2,7 +2,7 @@ let Container = require('./container') -let LazyResult, Processor +let LazyResult, NoWork, Processor class Root extends Container { constructor(defaults) { @@ -42,8 +42,21 @@ class Root extends Container { } toResult(opts = {}) { - let lazy = new LazyResult(new Processor(), this, opts) - return lazy.stringify() + let result + + if ( + typeof opts.plugins === 'undefined' && + typeof opts.parser === 'undefined' && + typeof opts.stringifier === 'undefined' && + typeof opts.syntax === 'undefined' && + !opts.hideNothingWarning + ) { + result = new NoWork(new Processor(), this, opts) + } else { + result = new LazyResult(new Processor(), this, opts) + } + + return result.stringify() } } @@ -51,6 +64,10 @@ Root.registerLazyResult = dependant => { LazyResult = dependant } +Root.registerNoWork = dependant => { + NoWork = dependant +} + Root.registerProcessor = dependant => { Processor = dependant } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..47764ba59 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7150 @@ +{ + "name": "postcss", + "version": "8.3.12", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/compat-data": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "dev": true + }, + "@babel/core": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", + "@babel/helpers": "^7.15.4", + "@babel/parser": "^7.15.8", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/eslint-parser": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", + "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", + "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "dev": true, + "requires": { + "@babel/types": "^7.15.6", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", + "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", + "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-module-imports": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", + "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", + "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.6" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", + "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", + "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", + "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helpers": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", + "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "dev": true, + "requires": { + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", + "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/template": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, + "@babel/traverse": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", + "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", + "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", + "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz", + "integrity": "sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.3.1", + "jest-util": "^27.3.1", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz", + "integrity": "sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==", + "dev": true, + "requires": { + "@jest/console": "^27.3.1", + "@jest/reporters": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.3.0", + "jest-config": "^27.3.1", + "jest-haste-map": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.3.1", + "jest-resolve-dependencies": "^27.3.1", + "jest-runner": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "jest-watcher": "^27.3.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz", + "integrity": "sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "jest-mock": "^27.3.0" + } + }, + "@jest/fake-timers": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz", + "integrity": "sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.3.1", + "jest-mock": "^27.3.0", + "jest-util": "^27.3.1" + } + }, + "@jest/globals": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz", + "integrity": "sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==", + "dev": true, + "requires": { + "@jest/environment": "^27.3.1", + "@jest/types": "^27.2.5", + "expect": "^27.3.1" + } + }, + "@jest/reporters": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz", + "integrity": "sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.3.1", + "jest-resolve": "^27.3.1", + "jest-util": "^27.3.1", + "jest-worker": "^27.3.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + } + }, + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz", + "integrity": "sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==", + "dev": true, + "requires": { + "@jest/console": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz", + "integrity": "sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==", + "dev": true, + "requires": { + "@jest/test-result": "^27.3.1", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-runtime": "^27.3.1" + } + }, + "@jest/transform": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz", + "integrity": "sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.2.5", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", + "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@logux/eslint-config": { + "version": "46.0.0", + "resolved": "https://registry.npmjs.org/@logux/eslint-config/-/eslint-config-46.0.0.tgz", + "integrity": "sha512-1FMDNeLgGtjITAjmNjsr11PtPN/GH9qUfLYj6PvOLyp9HipIpOLQelabb1yAM5lrJhhsWakSx5xzXIVkLVFO8Q==", + "dev": true, + "requires": { + "globals": "^13.11.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", + "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@size-limit/file": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-6.0.3.tgz", + "integrity": "sha512-OfDrkJBB7OAWtnedz6jpmL1pjlha1MpgtvYwUSP2442qB96nwMN5Ig78XR3ldPj2cbxq1FVoNnc2vfWMi40vQA==", + "dev": true, + "requires": { + "semver": "7.3.5" + } + }, + "@size-limit/preset-small-lib": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-6.0.3.tgz", + "integrity": "sha512-HvHgrLp5sNEWfw3js6oBWty2dQyDf2SDhehDGJuQRL+8IVRFQcx0XLkqiHAdMrCNvDmfRPfvLkcp5wcxpjgbrw==", + "dev": true, + "requires": { + "@size-limit/file": "6.0.3", + "@size-limit/webpack": "6.0.3" + } + }, + "@size-limit/webpack": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@size-limit/webpack/-/webpack-6.0.3.tgz", + "integrity": "sha512-4LI3SpkL0YbOIJsE7+t0LdPgqMeRDDwk1LELHHyk1b67tIjQ9wfnehI0BPT4LYiT23vN7Tg1TN0ofjwuRCLdbA==", + "dev": true, + "requires": { + "@statoscope/webpack-plugin": "^5.13.1", + "css-loader": "^6.4.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "escape-string-regexp": "^4.0.0", + "mkdirp": "^1.0.4", + "nanoid": "^3.1.28", + "style-loader": "^3.3.0", + "webpack": "^5.56.0" + } + }, + "@statoscope/extensions": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/extensions/-/extensions-5.14.1.tgz", + "integrity": "sha512-5O31566+bOkkdYFH81mGGBTh0YcU0zoYurTrsK5uZfpNY87ZCPpptrszX8npTRHNsxbjBBNt7vAwImJyYdhzLw==", + "dev": true + }, + "@statoscope/helpers": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/helpers/-/helpers-5.14.1.tgz", + "integrity": "sha512-Gl7NB06cOxxh86tFk75yQmcOCQ3b8i4euYlyxvdz4tWkzeZw8g5VLPH9g3X4uQbPM4rqkae/KmgtRo5Ey1km8w==", + "dev": true, + "requires": { + "@types/archy": "^0.0.32", + "@types/semver": "^7.3.6", + "archy": "~1.0.0", + "jora": "^1.0.0-beta.5", + "semver": "^7.3.5" + } + }, + "@statoscope/report-writer": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/report-writer/-/report-writer-5.14.1.tgz", + "integrity": "sha512-N7pjpiKspDQ6K0B9HNBs8u3bhueiYmJEqAazSw/U3v8hThcP31i/FLCH90bu/8Sj436xAE1KATtGzJnsN5mbQA==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.5" + } + }, + "@statoscope/stats": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/stats/-/stats-5.14.1.tgz", + "integrity": "sha512-Kz7kCKuT6DXaqAPfyTwp27xHMDUna9o6UlRSQXXBZ8Yyk7eYYvTNw+5ffRyqivL9IOzD7FQYDQ6VUBHh0UfyDw==", + "dev": true + }, + "@statoscope/stats-extension-compressed": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-compressed/-/stats-extension-compressed-5.14.1.tgz", + "integrity": "sha512-FnfmL18OAHWg1l95tBKeMGHmeNbEOdnHlOE1c9KT3TWc5kt4q8ntpChL4AAZJSgn7uBy5WKMgjZSr5aUGebHGQ==", + "dev": true, + "requires": { + "@statoscope/helpers": "5.14.1", + "gzip-size": "^6.0.0" + } + }, + "@statoscope/stats-extension-custom-reports": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-custom-reports/-/stats-extension-custom-reports-5.14.1.tgz", + "integrity": "sha512-+t7gq2zZu8frwJF651+fq1BOZPMdngEwtNhvdRCSWyBE2uYvotVnngQE+di1/Idaosshnf4GdwX82bSMIlF1mQ==", + "dev": true, + "requires": { + "@statoscope/extensions": "5.14.1", + "@statoscope/helpers": "5.14.1", + "@statoscope/stats": "5.14.1", + "@statoscope/types": "5.14.1" + } + }, + "@statoscope/stats-extension-package-info": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-package-info/-/stats-extension-package-info-5.14.1.tgz", + "integrity": "sha512-TPKq6qJ7hxyQdPPpcbPsagf9MjbmPRLLo0F2ceafJ11ubP0t8LQZ+m0Orqp5ay3wuzvBy406w/njPwHQuEBHZw==", + "dev": true, + "requires": { + "@statoscope/helpers": "5.14.1" + } + }, + "@statoscope/stats-extension-stats-validation-result": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-stats-validation-result/-/stats-extension-stats-validation-result-5.14.1.tgz", + "integrity": "sha512-/TiohT+iO5Idipdd3JmzZ/Utaq3nXeKfZKnvXahkls5x6rpRQgbXs2IrDRtf7rJg4B/g2GuZUMsu4m76rHdkwA==", + "dev": true, + "requires": { + "@statoscope/extensions": "5.14.1", + "@statoscope/helpers": "5.14.1", + "@statoscope/stats": "5.14.1", + "@statoscope/types": "5.14.1" + } + }, + "@statoscope/types": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@statoscope/types/-/types-5.14.1.tgz", + "integrity": "sha512-vIo7aq2E71AC3y3mdnZqA5aupYUaEIHuPD2gUG0bAA8zTXH7YICk7nRkuxx7xnCBhTZTXAgvtF8hgQ35K4N8oQ==", + "dev": true, + "requires": { + "@statoscope/stats": "5.14.1" + } + }, + "@statoscope/webpack-model": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-model/-/webpack-model-5.17.0.tgz", + "integrity": "sha512-t6V9yNKgNzdKVakdRdlplSsMfmIp4Dn4j23FhoetzEh/fmLSkd7X8REFBtEYQeR8RFe+QC19gOmbb2uoGwZ+nA==", + "dev": true, + "requires": { + "@statoscope/extensions": "5.14.1", + "@statoscope/helpers": "5.14.1", + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-compressed": "5.14.1", + "@statoscope/stats-extension-custom-reports": "5.14.1", + "@statoscope/stats-extension-package-info": "5.14.1", + "@statoscope/stats-extension-stats-validation-result": "5.14.1", + "@statoscope/types": "5.14.1", + "@types/md5": "^2.3.0", + "@types/webpack": "^5.0.0", + "ajv": "^8.6.3", + "md5": "^2.3.0" + } + }, + "@statoscope/webpack-plugin": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-plugin/-/webpack-plugin-5.17.0.tgz", + "integrity": "sha512-oFjHK/7rOgyp5Y9izeMjRDWp1/Ku3gXqPpVYOxLu8N5IqRwwHXKNmxMP4cgqBw8qLOrwN0VVYLXrfx+gFtbk2A==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.5", + "@statoscope/report-writer": "5.14.1", + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-compressed": "5.14.1", + "@statoscope/stats-extension-custom-reports": "5.14.1", + "@statoscope/types": "5.14.1", + "@statoscope/webpack-model": "5.17.0", + "@statoscope/webpack-stats-extension-compressed": "5.17.0", + "@statoscope/webpack-stats-extension-package-info": "5.17.0", + "@statoscope/webpack-ui": "5.17.0", + "@types/node": "^12.20.15", + "@types/webpack": "^5.0.0", + "open": "^8.2.1" + }, + "dependencies": { + "@types/node": { + "version": "12.20.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.36.tgz", + "integrity": "sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA==", + "dev": true + } + } + }, + "@statoscope/webpack-stats-extension-compressed": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.17.0.tgz", + "integrity": "sha512-SEZ2Pmi5hE7TPtjKgE+9VmryZ/YbzRMf0vqswrJsWmSJlXW1GBOuqVk67exeWkk2/+/vkO+f2afQgjEs6Jy+/A==", + "dev": true, + "requires": { + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-compressed": "5.14.1", + "@statoscope/webpack-model": "5.17.0", + "@types/webpack": "^5.0.0" + } + }, + "@statoscope/webpack-stats-extension-package-info": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.17.0.tgz", + "integrity": "sha512-aBoQBviAYnTmso7k6WSmheSfBOQsagghIWG/9UOfueVUgF9yad/tZgrnPCJvmb55/LnrRvYF9nA8knHM9P1XYg==", + "dev": true, + "requires": { + "@statoscope/stats": "5.14.1", + "@statoscope/stats-extension-package-info": "5.14.1", + "@statoscope/webpack-model": "5.17.0", + "@types/webpack": "^5.0.0" + } + }, + "@statoscope/webpack-ui": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@statoscope/webpack-ui/-/webpack-ui-5.17.0.tgz", + "integrity": "sha512-R7g/r7x7VnrlMPcb99HYdQAnb5qpi1GLT2XMnnMalJfyPC/dLGoOqSsjCB9V3C/leuUKyhlKbaRI4FcWyrHbzw==", + "dev": true, + "requires": { + "@statoscope/types": "5.14.1", + "highcharts": "^9.2.2" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/archy": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/archy/-/archy-0.0.32.tgz", + "integrity": "sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.16", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", + "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", + "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/eslint": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.2.tgz", + "integrity": "sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.2.tgz", + "integrity": "sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==", + "dev": true, + "requires": { + "jest-diff": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/md5": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/md5/-/md5-2.3.1.tgz", + "integrity": "sha512-OK3oe+ALIoPSo262lnhAYwpqFNXbiwH2a+0+Z5YBnkQEwWD8fk5+PIeRhYA48PzvX9I4SGNpWy+9bLj8qz92RQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "16.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", + "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prettier": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==", + "dev": true + }, + "@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "@types/webpack": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.0.tgz", + "integrity": "sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==", + "dev": true, + "requires": { + "@types/node": "*", + "tapable": "^2.2.0", + "webpack": "^5" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", + "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "5.2.0", + "@typescript-eslint/scope-manager": "5.2.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", + "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/typescript-estree": "5.2.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", + "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/typescript-estree": "5.2.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", + "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/visitor-keys": "5.2.0" + } + }, + "@typescript-eslint/types": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", + "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", + "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/visitor-keys": "5.2.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", + "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.2.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "dependencies": { + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", + "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "babel-jest": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz", + "integrity": "sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==", + "dev": true, + "requires": { + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^27.2.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-jest-hoist": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", + "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", + "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^27.2.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserslist": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz", + "integrity": "sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001271", + "electron-to-chromium": "^1.3.878", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001271", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz", + "integrity": "sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, + "check-dts": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.6.2.tgz", + "integrity": "sha512-MUYAwe723hpdeDlRPIEb77GYe0z5SceXRqIaUkAmOUqSGsH+rExM+yxcENOyxpJYaYjt8JyaTJiLDSiIhmvhxw==", + "dev": true, + "requires": { + "fast-glob": "^3.2.7", + "nanospinner": "^0.3.2", + "picocolors": "^1.0.0", + "vfile-location": "^4.0.1" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-publish": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/clean-publish/-/clean-publish-3.4.2.tgz", + "integrity": "sha512-VAEF61z7yivCcoIzJg0wEs5T6DpM6JgfMp152q3/JNuKU3leTUkU1QHUjm162dOULq9i+lvPrNYF9vdLS9AfYw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.2.7", + "fs-extra": "^10.0.0", + "hosted-git-info": "^4.0.2", + "lilconfig": "^2.0.3" + } + }, + "clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colord": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", + "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", + "dev": true + }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, + "css-color-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", + "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", + "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "dev": true, + "requires": { + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.0.tgz", + "integrity": "sha512-VmuSdQa3K+wJsl39i7X3qGBM5+ZHmtTnv65fqMGI+fzmHoYmszTVvTqC1XN8JwWDViCB1a8wgNim5SV4fb37xg==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "semver": "^7.3.5" + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-KlB8l5uoNcf9F7i5kXnkxoqJGd2BXH4f0+Lj2vSWSmuvMLYO1kNsJ1KHSzeDW8e45/whgSOPcKVT/3JopkT8dg==", + "dev": true, + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "p-limit": "^3.0.2", + "postcss": "^8.3.5", + "schema-utils": "^3.1.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + } + }, + "css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", + "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.1.4", + "is-resolvable": "^1.1.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", + "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^2.0.1", + "postcss-calc": "^8.0.0", + "postcss-colormin": "^5.2.0", + "postcss-convert-values": "^5.0.1", + "postcss-discard-comments": "^5.0.1", + "postcss-discard-duplicates": "^5.0.1", + "postcss-discard-empty": "^5.0.1", + "postcss-discard-overridden": "^5.0.1", + "postcss-merge-longhand": "^5.0.2", + "postcss-merge-rules": "^5.0.2", + "postcss-minify-font-values": "^5.0.1", + "postcss-minify-gradients": "^5.0.2", + "postcss-minify-params": "^5.0.1", + "postcss-minify-selectors": "^5.1.0", + "postcss-normalize-charset": "^5.0.1", + "postcss-normalize-display-values": "^5.0.1", + "postcss-normalize-positions": "^5.0.1", + "postcss-normalize-repeat-style": "^5.0.1", + "postcss-normalize-string": "^5.0.1", + "postcss-normalize-timing-functions": "^5.0.1", + "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-url": "^5.0.2", + "postcss-normalize-whitespace": "^5.0.1", + "postcss-ordered-values": "^5.0.2", + "postcss-reduce-initial": "^5.0.1", + "postcss-reduce-transforms": "^5.0.1", + "postcss-svgo": "^5.0.2", + "postcss-unique-selectors": "^5.0.1" + } + }, + "cssnano-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", + "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "domhandler": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", + "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.880", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.880.tgz", + "integrity": "sha512-iwIP/6WoeSimzUKJIQtjtpVDsK8Ir8qQCMXsUBwg+rxJR2Uh3wTNSbxoYRfs+3UWx/9MAnPIxVZCyWkm8MT0uw==", + "dev": true + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", + "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.3", + "@humanwhocodes/config-array": "^0.6.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^6.0.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "eslint-scope": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "eslint-config-standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", + "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.25.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", + "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.0", + "has": "^1.0.3", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "25.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.2.2.tgz", + "integrity": "sha512-frn5yhOF60U4kcqozO3zKTNZQUk+mfx037XOy2iiYL8FhorEkuCuL3/flzKcY1ECDP2WYT9ydmvlO3fRW9o4mg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^5.0.0" + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-plugin-prefer-let": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-1.1.0.tgz", + "integrity": "sha512-d7IhB8FZCtnCNQ20e4UTETPJNF3mIES3ZYan9RK/K3sIkEfuL3NfF9t5gxoNRFjeSkhlGpJmZdLGLRGPmKgVfQ==", + "dev": true, + "requires": { + "requireindex": "~1.2.0" + } + }, + "eslint-plugin-promise": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz", + "integrity": "sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==", + "dev": true + }, + "eslint-plugin-security": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz", + "integrity": "sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==", + "dev": true, + "requires": { + "safe-regex": "^1.1.0" + } + }, + "eslint-plugin-unicorn": { + "version": "37.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-37.0.1.tgz", + "integrity": "sha512-E1jq5u9ojnadisJcPi+hMXTGSiIzkIUMDvWsBudsCGXvKUB2aNSU2TcfyW2/jAS5A4ryBXfzxLykMxX1EdluSQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "ci-info": "^3.2.0", + "clean-regexp": "^1.0.0", + "eslint-template-visitor": "^2.3.2", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "4", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.23", + "safe-regex": "^2.1.1", + "semver": "^7.3.5", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "requires": { + "regexp-tree": "~0.1.1" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-template-visitor": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", + "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "eslint-visitor-keys": "^2.0.0", + "esquery": "^1.3.1", + "multimap": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", + "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", + "dev": true + }, + "espree": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", + "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", + "dev": true, + "requires": { + "acorn": "^8.5.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expect": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", + "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-regex-util": "^27.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "eyo-kernel": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/eyo-kernel/-/eyo-kernel-2.5.6.tgz", + "integrity": "sha512-lAcX7HdPLlNB8Ia6Uvq2hFMx9S5VQSfAXkjBZJi9OXzFC1exDvX9lzk2YeQVB9EKufhlHlgeiD26mzg5q42Rgg==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "highcharts": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.0.tgz", + "integrity": "sha512-nQ7yW5ni7wFiPgDN2IWrS6o6NjL1gK/OhZjrdpyB3FQuefMkTQngygP+JqZFMx7PDrP3YAvfejx0M5IgkC01ow==", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", + "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "isutf8": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isutf8/-/isutf8-3.1.1.tgz", + "integrity": "sha512-5P2FgGyDsSnRMaLPVGVIgYgMxj50lBujvi5lsVgP1qvMWhxvkmVBWtPcIKgXw9j+/RnmxSvHg3e9tbDnPxx6dw==", + "dev": true + }, + "jest": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.3.1.tgz", + "integrity": "sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng==", + "dev": true, + "requires": { + "@jest/core": "^27.3.1", + "import-local": "^3.0.2", + "jest-cli": "^27.3.1" + }, + "dependencies": { + "jest-cli": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz", + "integrity": "sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==", + "dev": true, + "requires": { + "@jest/core": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + } + } + } + }, + "jest-changed-files": { + "version": "27.3.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz", + "integrity": "sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz", + "integrity": "sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==", + "dev": true, + "requires": { + "@jest/environment": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.3.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "pretty-format": "^27.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + } + }, + "jest-config": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", + "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.3.1", + "@jest/types": "^27.2.5", + "babel-jest": "^27.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-circus": "^27.3.1", + "jest-environment-jsdom": "^27.3.1", + "jest-environment-node": "^27.3.1", + "jest-get-type": "^27.3.1", + "jest-jasmine2": "^27.3.1", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.3.1", + "jest-runner": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^27.3.1" + } + }, + "jest-diff": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", + "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" + } + }, + "jest-docblock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz", + "integrity": "sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "chalk": "^4.0.0", + "jest-get-type": "^27.3.1", + "jest-util": "^27.3.1", + "pretty-format": "^27.3.1" + } + }, + "jest-environment-jsdom": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz", + "integrity": "sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==", + "dev": true, + "requires": { + "@jest/environment": "^27.3.1", + "@jest/fake-timers": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "jest-mock": "^27.3.0", + "jest-util": "^27.3.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz", + "integrity": "sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==", + "dev": true, + "requires": { + "@jest/environment": "^27.3.1", + "@jest/fake-timers": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "jest-mock": "^27.3.0", + "jest-util": "^27.3.1" + } + }, + "jest-get-type": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", + "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", + "dev": true + }, + "jest-haste-map": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz", + "integrity": "sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.3.1", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz", + "integrity": "sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^27.3.1", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.3.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "pretty-format": "^27.3.1", + "throat": "^6.0.1" + } + }, + "jest-leak-detector": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz", + "integrity": "sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==", + "dev": true, + "requires": { + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" + } + }, + "jest-matcher-utils": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", + "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.3.1", + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" + } + }, + "jest-message-util": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", + "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.2.5", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz", + "integrity": "sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "dev": true + }, + "jest-resolve": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz", + "integrity": "sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz", + "integrity": "sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.3.1" + } + }, + "jest-runner": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz", + "integrity": "sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==", + "dev": true, + "requires": { + "@jest/console": "^27.3.1", + "@jest/environment": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.3.1", + "jest-environment-node": "^27.3.1", + "jest-haste-map": "^27.3.1", + "jest-leak-detector": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-resolve": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-util": "^27.3.1", + "jest-worker": "^27.3.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + } + }, + "jest-runtime": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz", + "integrity": "sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==", + "dev": true, + "requires": { + "@jest/console": "^27.3.1", + "@jest/environment": "^27.3.1", + "@jest/globals": "^27.3.1", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-mock": "^27.3.0", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz", + "integrity": "sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==", + "dev": true, + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.3.1", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.3.1", + "jest-get-type": "^27.3.1", + "jest-haste-map": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-resolve": "^27.3.1", + "jest-util": "^27.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.3.1", + "semver": "^7.3.2" + } + }, + "jest-util": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz", + "integrity": "sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz", + "integrity": "sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.3.1", + "leven": "^3.1.0", + "pretty-format": "^27.3.1" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz", + "integrity": "sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==", + "dev": true, + "requires": { + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.3.1", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", + "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "jora": { + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/jora/-/jora-1.0.0-beta.5.tgz", + "integrity": "sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + } + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lint-staged": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", + "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", + "dev": true, + "requires": { + "cli-truncate": "2.1.0", + "colorette": "^1.4.0", + "commander": "^8.2.0", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "execa": "^5.1.1", + "listr2": "^3.12.2", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "3.3.0", + "supports-color": "8.1.1" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + } + } + }, + "listr2": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.1.tgz", + "integrity": "sha512-pk4YBDA2cxtpM8iLHbz6oEsfZieJKHf6Pt19NlKaHZZVpqHyVs/Wqr7RfBBCeAFCJchGO7WQHVkUPZTvJMHk8w==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.7", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + } + } + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "markdown-it": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.2.0.tgz", + "integrity": "sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + } + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "dev": true + }, + "mime-types": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "dev": true, + "requires": { + "mime-db": "1.50.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multimap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", + "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", + "dev": true + }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", + "dev": true + }, + "nanodelay": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/nanodelay/-/nanodelay-1.0.8.tgz", + "integrity": "sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==", + "dev": true + }, + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==" + }, + "nanospinner": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-0.3.2.tgz", + "integrity": "sha512-ToZuxmiRuuNe3McB7CVzP7PCOhzWAy4qx6ndb5QWxJFp6INdg3n0mVm8f7HR6Fz8raRg3/vzglIZYrOSna8vkg==", + "dev": true, + "requires": { + "picocolors": "^1.0.0" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + } + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, + "postcss": { + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^0.6.2" + } + }, + "postcss-calc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", + "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", + "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-convert-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", + "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-discard-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", + "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", + "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "dev": true + }, + "postcss-discard-empty": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", + "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "dev": true + }, + "postcss-discard-overridden": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", + "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "dev": true + }, + "postcss-merge-longhand": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", + "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "dev": true, + "requires": { + "css-color-names": "^1.0.1", + "postcss-value-parser": "^4.1.0", + "stylehacks": "^5.0.1" + } + }, + "postcss-merge-rules": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", + "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^2.0.1", + "postcss-selector-parser": "^6.0.5", + "vendors": "^1.0.3" + } + }, + "postcss-minify-font-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", + "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-gradients": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", + "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", + "dev": true, + "requires": { + "colord": "^2.6", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-params": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", + "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "browserslist": "^4.16.0", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", + "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", + "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "dev": true + }, + "postcss-normalize-display-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", + "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-positions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", + "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", + "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-string": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", + "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", + "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", + "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-url": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", + "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.3", + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", + "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-ordered-values": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", + "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-parser-tests": { + "version": "8.3.7", + "resolved": "https://registry.npmjs.org/postcss-parser-tests/-/postcss-parser-tests-8.3.7.tgz", + "integrity": "sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "spinnies": "^0.5.1" + } + }, + "postcss-reduce-initial": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", + "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", + "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", + "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0", + "svgo": "^2.3.0" + } + }, + "postcss-unique-selectors": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", + "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "dev": true + }, + "pretty-format": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", + "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "dev": true, + "requires": { + "@jest/types": "^27.2.5", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "dev": true + }, + "simple-git-hooks": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz", + "integrity": "sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "size-limit": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-6.0.3.tgz", + "integrity": "sha512-bvZuNG1dPJ8GTkFq3lXkW8H1+ybVV3D7GecowAGlfbNO2T1Mcvy8kCoCpwVOWnq1wV+TraRUtExnQzIyyV94NQ==", + "dev": true, + "requires": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.2", + "ci-job-number": "^1.2.2", + "globby": "^11.0.4", + "lilconfig": "^2.0.3", + "nanospinner": "^0.3.0", + "picocolors": "^0.2.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" + }, + "source-map-support": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "dev": true + }, + "spinnies": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.5.1.tgz", + "integrity": "sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^3.0.0", + "strip-ansi": "^5.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "dev": true + }, + "stylehacks": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", + "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "svgo": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", + "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "nanocolors": "^0.1.12", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz", + "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==", + "dev": true, + "requires": { + "jest-worker": "^27.0.6", + "p-limit": "^3.1.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "ts-jest": { + "version": "27.0.7", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", + "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "tsconfig-paths": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unist-util-stringify-position": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", + "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", + "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "vfile": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.1.tgz", + "integrity": "sha512-sfI+3MnGUodvAE2s3hXCcJxhcymXQgekdgqNf9WMcmWtZU65tPMaml5eGYREJfMJGHr4/0GPZgrN3UMgWjHXSQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + } + } + }, + "vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "vfile-message": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", + "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "webpack": { + "version": "5.60.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.60.0.tgz", + "integrity": "sha512-OL5GDYi2dKxnwJPSOg2tODgzDxAffN0osgWkZaBo/l3ikCxDFP+tuJT3uF7GyBE3SDBpKML/+a8EobyWAQO3DQ==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.2.0", + "webpack-sources": "^3.2.0" + } + }, + "webpack-sources": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.1.tgz", + "integrity": "sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", + "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "dev": true + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yandex-speller": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/yandex-speller/-/yandex-speller-4.1.0.tgz", + "integrity": "sha512-z13o3GCMxm5g/MU28JCIdu9SXsAoShroqAheFciS3K0wa2JRkA1y5qASZuavJuaCl0KG5RhTjo8gdkbyp6QC+w==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yaspeller": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/yaspeller/-/yaspeller-7.2.1.tgz", + "integrity": "sha512-Iq1WUHckdH7SCXGkJdXsUhO/3Wmp7tPgBhAQQJjWlyQZKmwv+zigPKZFWAheVDefUSBvldTKINRgTv9dG/JL/g==", + "dev": true, + "requires": { + "async": "^3.2.1", + "chalk": "^4.1.2", + "commander": "^3.0.0", + "cosmiconfig": "^7.0.1", + "entities": "^3.0.1", + "escape-html": "^1.0.3", + "eyo-kernel": "^2.5.6", + "glob": "^7.2.0", + "isutf8": "^3.1.1", + "markdown-it": "^12.2.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.2", + "parse-json": "^5.2.0", + "strip-json-comments": "^3.1.1", + "xml2js": "^0.4.23", + "yandex-speller": "^4.1.0" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 8bf2dfd4c..6d5d9886c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.11", + "version": "8.3.12", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" @@ -19,6 +19,7 @@ "./lib/fromJSON": "./lib/fromJSON.js", "./lib/input": "./lib/input.js", "./lib/lazy-result": "./lib/lazy-result.js", + "./lib/no-work": "./lib/no-work.js", "./lib/list": "./lib/list.js", "./lib/map-generator": "./lib/map-generator.js", "./lib/node": "./lib/node.js", diff --git a/test/no-work.test.ts b/test/no-work.test.ts new file mode 100644 index 000000000..3d1c20d44 --- /dev/null +++ b/test/no-work.test.ts @@ -0,0 +1,64 @@ +import mozilla from 'source-map-js' + +import NoWork from '../lib/no-work.js' +import Processor from '../lib/processor.js' + +let processor = new Processor() + +it('contains AST', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(result.root.type).toBe('root') +}) + +it('will stringify css', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(result.css).toBe('a {}') +}) + +it('stringifies css', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(`${result}`).toEqual(result.css) +}) + +it('has content alias for css', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(result.content).toBe('a {}') +}) + +it('has map only if necessary', () => { + let result1 = new NoWork(processor, '', {}) + expect(result1.map).toBeUndefined() + + let result2 = new NoWork(processor, '', {}) + expect(result2.map).toBeUndefined() + + let result3 = new NoWork(processor, '', { map: { inline: false } }) + expect(result3.map instanceof mozilla.SourceMapGenerator).toBe(true) +}) + +it('contains options', () => { + let result = new NoWork(processor, 'a {}', { to: 'a.css' }) + expect(result.opts).toEqual({ to: 'a.css' }) +}) + +it('contains warnings', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(result.warnings()).toEqual([]) +}) + +it('contains messages', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(result.messages).toEqual([]) +}) + +it('executes on finally callback', () => { + let mockCallback = jest.fn() + return new NoWork(processor, 'a {}', {}).finally(mockCallback).then(() => { + expect(mockCallback).toHaveBeenCalledTimes(1) + }) +}) + +it('prints its object type', () => { + let result = new NoWork(processor, 'a {}', {}) + expect(Object.prototype.toString.call(result)).toBe('[object NoWork]') +}) diff --git a/test/processor.test.ts b/test/processor.test.ts index 1d28f848a..82c39de38 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -14,6 +14,7 @@ import postcss, { } from '../lib/postcss.js' import CssSyntaxError from '../lib/css-syntax-error.js' import LazyResult from '../lib/lazy-result.js' +import NoWork from '../lib/no-work.js' import Processor from '../lib/processor.js' import Rule from '../lib/rule.js' @@ -525,14 +526,12 @@ it('warns about missed from', async () => { ) }) -it('warns about missed plugins', async () => { +it('returns NoWork object', async () => { jest.spyOn(console, 'warn').mockImplementation(() => {}) - await new Processor().process('a{}') - expect(console.warn).toHaveBeenCalledWith( - 'You did not set any plugins, parser, or stringifier. ' + - 'Right now, PostCSS does nothing. Pick plugins for your case ' + - 'on https://www.postcss.parts/ and use them in postcss.config.js.' - ) + let result = await new Processor().process('a{}') + expect(result instanceof NoWork).toBe(false) + expect(result.css).toBe('a{}') + expect(result.toString()).toBe('a{}') }) it('supports plugins returning processors', () => { From 22ce224007d1a9c23eb92a5f351f6df9eecbe5ea Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 29 Oct 2021 16:55:10 +0700 Subject: [PATCH 2360/3047] Rework NoWork class --- lib/no-work.js | 460 ++++++------------------------------------------- 1 file changed, 55 insertions(+), 405 deletions(-) diff --git a/lib/no-work.js b/lib/no-work.js index da10f0044..158014600 100644 --- a/lib/no-work.js +++ b/lib/no-work.js @@ -9,106 +9,62 @@ let warnOnce = require('./warn-once') let Result = require('./result') let parse = require('./parse') let Root = require('./root') +let LazyResult = require('./lazy-result') -const TYPE_TO_CLASS_NAME = { - document: 'Document', - root: 'Root', - atrule: 'AtRule', - rule: 'Rule', - decl: 'Declaration', - comment: 'Comment' -} - -const PLUGIN_PROPS = { - postcssPlugin: false, - prepare: true, - Once: true, - Document: true, - Root: true, - Declaration: true, - Rule: true, - AtRule: true, - Comment: true, - DeclarationExit: true, - RuleExit: true, - AtRuleExit: true, - CommentExit: true, - RootExit: true, - DocumentExit: true, - OnceExit: true +function cleanMarks(node) { + node[isClean] = false + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) + return node } -const NOT_VISITORS = { - postcssPlugin: false, - prepare: true, - Once: true -} +// @FIXME: Not sure why eslint is complaining about this. Temporary disable. +// eslint-disable-next-line +let postcss = {} -const CHILDREN = 0 +// @TODO: Add more tests (we need 100% coverage for this class) +class NoWork { + constructor(processor, css, opts) { + this.stringified = false + this.processed = false + this._processor = processor + this._css = css + this._opts = opts + this.result = undefined + } -function isPromise(obj) { - return typeof obj === 'object' && typeof obj.then === 'function' -} + get [Symbol.toStringTag]() { + return 'NoWork' + } -function getEvents(node) { - let key = false - let type = TYPE_TO_CLASS_NAME[node.type] - if (node.type === 'decl') { - key = node.prop.toLowerCase() - } else if (node.type === 'atrule') { - key = node.name.toLowerCase() + get processor() { + return this._processor } - if (key && node.append) { - return [ - type, - type + '-' + key, - CHILDREN, - type + 'Exit', - type + 'Exit-' + key - ] - } else if (key) { - return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] - } else if (node.append) { - return [type, CHILDREN, type + 'Exit'] - } else { - return [type, type + 'Exit'] + get opts() { + return this._opts } -} -function toStack(node) { - let events - if (node.type === 'document') { - events = ['Document', CHILDREN, 'DocumentExit'] - } else if (node.type === 'root') { - events = ['Root', CHILDREN, 'RootExit'] - } else { - events = getEvents(node) + get css() { + return this._css } - return { - node, - events, - eventIndex: 0, - visitors: [], - visitorIndex: 0, - iterator: 0 + get content() { + return this.stringify().content } -} -function cleanMarks(node) { - node[isClean] = false - if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) - return node -} + get map() { + return this.stringify().map + } -let postcss = {} + get root() { + return this.sync().root + } -class NoWork { - constructor(processor, css, opts) { - this.stringified = false - this.processed = false + get messages() { + return this.sync().messages + } + prepareResult(processor, css, opts) { let root if ( typeof css === 'object' && @@ -116,7 +72,7 @@ class NoWork { (css.type === 'root' || css.type === 'document') ) { root = cleanMarks(css) - } else if (css instanceof Result) { + } else if (css instanceof LazyResult || css instanceof Result) { root = cleanMarks(css.root) if (css.map) { if (typeof opts.map === 'undefined') opts.map = {} @@ -125,6 +81,8 @@ class NoWork { } } else { let parser = parse + if (opts.syntax) parser = opts.syntax.parse + if (opts.parser) parser = opts.parser if (parser.parse) parser = parser.parse try { @@ -141,46 +99,7 @@ class NoWork { } this.result = new Result(processor, root, opts) - this.helpers = { ...postcss, result: this.result, postcss } - this.plugins = this.processor.plugins.map(plugin => { - if (typeof plugin === 'object' && plugin.prepare) { - return { ...plugin, ...plugin.prepare(this.result) } - } else { - return plugin - } - }) - } - - get [Symbol.toStringTag]() { - return 'NoWork' - } - - get processor() { - return this.result.processor - } - - get opts() { - return this.result.opts - } - - get css() { - return this.stringify().css - } - - get content() { - return this.stringify().content - } - - get map() { - return this.stringify().map - } - - get root() { - return this.sync().root - } - - get messages() { - return this.sync().messages + return this.result } warnings() { @@ -188,12 +107,12 @@ class NoWork { } toString() { - return this.css + return this._css } then(onFulfilled, onRejected) { if (process.env.NODE_ENV !== 'production') { - if (!('from' in this.opts)) { + if (!('from' in this._opts)) { warnOnce( 'Without `from` option PostCSS could generate wrong source map ' + 'and will not find Browserslist config. Set it to CSS file path ' + @@ -201,6 +120,7 @@ class NoWork { ) } } + return this.async().then(onFulfilled, onRejected) } @@ -215,10 +135,10 @@ class NoWork { async() { if (this.error) return Promise.reject(this.error) if (this.processed) return Promise.resolve(this.result) - if (!this.processing) { - this.processing = this.runAsync() + if (!this.result) { + this.prepareResult(this._processor, this._css, this._opts) } - return this.processing + return Promise.resolve(this.stringify()) } sync() { @@ -230,34 +150,14 @@ class NoWork { throw this.getAsyncError() } - for (let plugin of this.plugins) { - let promise = this.runOnRoot(plugin) - if (isPromise(promise)) { - throw this.getAsyncError() - } - } - - this.prepareVisitors() - if (this.hasListener) { - let root = this.result.root - while (!root[isClean]) { - root[isClean] = true - this.walkSync(root) - } - if (this.listeners.OnceExit) { - if (root.type === 'document') { - for (let subRoot of root.nodes) { - this.visitSync(this.listeners.OnceExit, subRoot) - } - } else { - this.visitSync(this.listeners.OnceExit, root) - } - } + if (!this.result) { + this.prepareResult(this._processor, this._css, this._opts) } return this.result } + // @TODO: what to do with maps? stringify() { if (this.error) throw this.error if (this.stringified) return this.result @@ -265,7 +165,10 @@ class NoWork { this.sync() + let opts = this.result.opts let str = stringify + if (opts.syntax) str = opts.syntax.stringify + if (opts.stringifier) str = opts.stringifier if (str.stringify) str = str.stringify let map = new MapGenerator(str, this.result.root, this.result.opts) @@ -276,262 +179,9 @@ class NoWork { return this.result } - walkSync(node) { - node[isClean] = true - let events = getEvents(node) - for (let event of events) { - if (event === CHILDREN) { - if (node.nodes) { - node.each(child => { - if (!child[isClean]) this.walkSync(child) - }) - } - } else { - let visitors = this.listeners[event] - if (visitors) { - if (this.visitSync(visitors, node.toProxy())) return - } - } - } - } - - visitSync(visitors, node) { - for (let [plugin, visitor] of visitors) { - this.result.lastPlugin = plugin - let promise - try { - promise = visitor(node, this.helpers) - } catch (e) { - throw this.handleError(e, node.proxyOf) - } - if (node.type !== 'root' && node.type !== 'document' && !node.parent) { - return true - } - if (isPromise(promise)) { - throw this.getAsyncError() - } - } - } - - runOnRoot(plugin) { - this.result.lastPlugin = plugin - try { - if (typeof plugin === 'object' && plugin.Once) { - if (this.result.root.type === 'document') { - let roots = this.result.root.nodes.map(root => - plugin.Once(root, this.helpers) - ) - - if (isPromise(roots[0])) { - return Promise.all(roots) - } - - return roots - } - - return plugin.Once(this.result.root, this.helpers) - } else if (typeof plugin === 'function') { - return plugin(this.result.root, this.result) - } - } catch (error) { - throw this.handleError(error) - } - } - getAsyncError() { throw new Error('Use process(css).then(cb) to work with async plugins') } - - handleError(error, node) { - let plugin = this.result.lastPlugin - try { - if (node) node.addToError(error) - this.error = error - if (error.name === 'CssSyntaxError' && !error.plugin) { - error.plugin = plugin.postcssPlugin - error.setMessage() - } else if (plugin.postcssVersion) { - if (process.env.NODE_ENV !== 'production') { - let pluginName = plugin.postcssPlugin - let pluginVer = plugin.postcssVersion - let runtimeVer = this.result.processor.version - let a = pluginVer.split('.') - let b = runtimeVer.split('.') - - if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { - // eslint-disable-next-line no-console - console.error( - 'Unknown error from PostCSS plugin. Your current PostCSS ' + - 'version is ' + - runtimeVer + - ', but ' + - pluginName + - ' uses ' + - pluginVer + - '. Perhaps this is the source of the error below.' - ) - } - } - } - } catch (err) { - // istanbul ignore next - // eslint-disable-next-line no-console - if (console && console.error) console.error(err) - } - return error - } - - async runAsync() { - this.plugin = 0 - for (let i = 0; i < this.plugins.length; i++) { - let plugin = this.plugins[i] - let promise = this.runOnRoot(plugin) - if (isPromise(promise)) { - try { - await promise - } catch (error) { - throw this.handleError(error) - } - } - } - - this.prepareVisitors() - if (this.hasListener) { - let root = this.result.root - while (!root[isClean]) { - root[isClean] = true - let stack = [toStack(root)] - while (stack.length > 0) { - let promise = this.visitTick(stack) - if (isPromise(promise)) { - try { - await promise - } catch (e) { - let node = stack[stack.length - 1].node - throw this.handleError(e, node) - } - } - } - } - - if (this.listeners.OnceExit) { - for (let [plugin, visitor] of this.listeners.OnceExit) { - this.result.lastPlugin = plugin - try { - if (root.type === 'document') { - let roots = root.nodes.map(subRoot => - visitor(subRoot, this.helpers) - ) - - await Promise.all(roots) - } else { - await visitor(root, this.helpers) - } - } catch (e) { - throw this.handleError(e) - } - } - } - } - - this.processed = true - return this.stringify() - } - - prepareVisitors() { - this.listeners = {} - let add = (plugin, type, cb) => { - if (!this.listeners[type]) this.listeners[type] = [] - this.listeners[type].push([plugin, cb]) - } - for (let plugin of this.plugins) { - if (typeof plugin === 'object') { - for (let event in plugin) { - if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { - throw new Error( - `Unknown event ${event} in ${plugin.postcssPlugin}. ` + - `Try to update PostCSS (${this.processor.version} now).` - ) - } - if (!NOT_VISITORS[event]) { - if (typeof plugin[event] === 'object') { - for (let filter in plugin[event]) { - if (filter === '*') { - add(plugin, event, plugin[event][filter]) - } else { - add( - plugin, - event + '-' + filter.toLowerCase(), - plugin[event][filter] - ) - } - } - } else if (typeof plugin[event] === 'function') { - add(plugin, event, plugin[event]) - } - } - } - } - } - this.hasListener = Object.keys(this.listeners).length > 0 - } - - visitTick(stack) { - let visit = stack[stack.length - 1] - let { node, visitors } = visit - - if (node.type !== 'root' && node.type !== 'document' && !node.parent) { - stack.pop() - return - } - - if (visitors.length > 0 && visit.visitorIndex < visitors.length) { - let [plugin, visitor] = visitors[visit.visitorIndex] - visit.visitorIndex += 1 - if (visit.visitorIndex === visitors.length) { - visit.visitors = [] - visit.visitorIndex = 0 - } - this.result.lastPlugin = plugin - try { - return visitor(node.toProxy(), this.helpers) - } catch (e) { - throw this.handleError(e, node) - } - } - - if (visit.iterator !== 0) { - let iterator = visit.iterator - let child - while ((child = node.nodes[node.indexes[iterator]])) { - node.indexes[iterator] += 1 - if (!child[isClean]) { - child[isClean] = true - stack.push(toStack(child)) - return - } - } - visit.iterator = 0 - delete node.indexes[iterator] - } - - let events = visit.events - while (visit.eventIndex < events.length) { - let event = events[visit.eventIndex] - visit.eventIndex += 1 - if (event === CHILDREN) { - if (node.nodes && node.nodes.length) { - node[isClean] = true - visit.iterator = node.getIterator() - } - return - } else if (this.listeners[event]) { - visit.visitors = this.listeners[event] - return - } - } - stack.pop() - } } NoWork.registerPostcss = dependant => { From 76db4d0cbad0ad82f2db01cd2900eb8b6de9e85a Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 29 Oct 2021 16:56:22 +0700 Subject: [PATCH 2361/3047] Add TODO for document.js --- lib/document.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/document.js b/lib/document.js index 14ca2dade..8d26f6bed 100644 --- a/lib/document.js +++ b/lib/document.js @@ -22,6 +22,8 @@ class Document extends Container { typeof opts.parser === 'undefined' && typeof opts.stringifier === 'undefined' && typeof opts.syntax === 'undefined' && + // @TODO what to do with this warning option? do we need it here and in processor.js? + // Seems like we will not have a warning after NoWork is properly implemented. !opts.hideNothingWarning ) { result = new NoWork(new Processor(), this, opts) From 97f9d17c9ee55d087a634c882eec572d6a5776a4 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 29 Oct 2021 16:59:46 +0700 Subject: [PATCH 2362/3047] Add more tests --- test/document.test.ts | 34 +++++++++++++++++++++++++++++++++- test/no-work.test.ts | 8 +++++++- test/root.test.ts | 30 +++++++++++++++++++++++++++++- 3 files changed, 69 insertions(+), 3 deletions(-) diff --git a/test/document.test.ts b/test/document.test.ts index 0d1253043..a215a8939 100644 --- a/test/document.test.ts +++ b/test/document.test.ts @@ -1,5 +1,7 @@ -import { Result, parse } from '../lib/postcss.js' +import { Result, Stringifier, parse } from '../lib/postcss.js' import Document from '../lib/document.js' +import NoWork from '../lib/no-work.js' +import LazyResult from '../lib/lazy-result.js' it('generates result without map', () => { let root = parse('a {}') @@ -24,3 +26,33 @@ it('generates result with map', () => { expect(result instanceof Result).toBe(true) expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) }) + +it('uses NoWork inside if no plugins, stringifier or parsers defined', () => { + let spy = jest.spyOn(NoWork.prototype, 'sync') + let root = parse('a {}') + let document = new Document() + + document.append(root) + + document.toResult({}) + + spy.mockRestore() +}) + +it('uses LazyWorkResult inside if stringifier defined', () => { + let spy = jest.spyOn(LazyResult.prototype, 'sync') + let root = parse('a {}') + let document = new Document() + + document.append(root) + + let customStringifier: Stringifier = doc => { + doc.toString() + } + + document.toResult({ stringifier: customStringifier }) + + // eslint-disable-next-line + expect(spy).toHaveBeenCalledWith() + spy.mockRestore() +}) diff --git a/test/no-work.test.ts b/test/no-work.test.ts index 3d1c20d44..381b66959 100644 --- a/test/no-work.test.ts +++ b/test/no-work.test.ts @@ -5,7 +5,13 @@ import Processor from '../lib/processor.js' let processor = new Processor() -it('contains AST', () => { +it('does not contain result if not processed', () => { + let noWork = new NoWork(processor, 'a {}', {}) + // @ts-ignore + expect(noWork.result).toBeUndefined() +}) + +it('contains AST if root is accessed', () => { let result = new NoWork(processor, 'a {}', {}) expect(result.root.type).toBe('root') }) diff --git a/test/root.test.ts b/test/root.test.ts index bfec257f1..431f39255 100644 --- a/test/root.test.ts +++ b/test/root.test.ts @@ -1,4 +1,6 @@ -import { Result, parse } from '../lib/postcss.js' +import LazyResult from '../lib/lazy-result.js' +import NoWork from '../lib/no-work.js' +import { Result, parse, Stringifier } from '../lib/postcss.js' it('prepend() fixes spaces on insert before first', () => { let css = parse('a {} b {}') @@ -60,3 +62,29 @@ it('generates result with map', () => { expect(result instanceof Result).toBe(true) expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) }) + +it('uses NoWork inside if no plugins, stringifier or parsers defined', () => { + let spy = jest.spyOn(NoWork.prototype, 'sync') + let root = parse('a {}') + + root.toResult({}) + + // eslint-disable-next-line + expect(spy).toHaveBeenCalled() + spy.mockRestore() +}) + +it('uses LazyWorkResult inside if stringifier defined', () => { + let spy = jest.spyOn(LazyResult.prototype, 'sync') + let root = parse('a {}') + + let customStringifier: Stringifier = doc => { + doc.toString() + } + + root.toResult({ stringifier: customStringifier }) + + // eslint-disable-next-line + expect(spy).toHaveBeenCalled() + spy.mockRestore() +}) From 3d52135215339c665dfca52cbaa43653d3608ebc Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 29 Oct 2021 18:51:16 +0700 Subject: [PATCH 2363/3047] content should return unprocessed css --- lib/no-work.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/no-work.js b/lib/no-work.js index 158014600..4bfb11f31 100644 --- a/lib/no-work.js +++ b/lib/no-work.js @@ -49,7 +49,7 @@ class NoWork { } get content() { - return this.stringify().content + return this._css } get map() { From 3fd90d52be1fd933676513ba7dd1f7b0a00a00f5 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 29 Oct 2021 18:54:20 +0700 Subject: [PATCH 2364/3047] Make messages getter to return empty array --- lib/no-work.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/no-work.js b/lib/no-work.js index 4bfb11f31..7f6b18684 100644 --- a/lib/no-work.js +++ b/lib/no-work.js @@ -61,7 +61,7 @@ class NoWork { } get messages() { - return this.sync().messages + return [] } prepareResult(processor, css, opts) { From ad522ccf1c7ec1189b936149fffbf06bbd81e351 Mon Sep 17 00:00:00 2001 From: CGQAQ Date: Mon, 1 Nov 2021 15:07:03 +0800 Subject: [PATCH 2365/3047] fix a typo in test --- test/tokenize.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/tokenize.test.js b/test/tokenize.test.js index 56d353616..834ef86e1 100644 --- a/test/tokenize.test.js +++ b/test/tokenize.test.js @@ -289,7 +289,7 @@ it('tokenizes hexadecimal escape', () => { }) it('ignore unclosed per token request', () => { - function tokn(css, opts) { + function token(css, opts) { let processor = tokenizer(new Input(css), opts) let tokens = [] while (!processor.endOfFile()) { @@ -299,7 +299,7 @@ it('ignore unclosed per token request', () => { } let css = "How's it going (" - let tokens = tokn(css, {}) + let tokens = token(css, {}) let expected = [ ['word', 'How', 0, 2], ['string', "'s", 3, 4], From d263777f837dc93bfc9f4c0e85e84ca12027906d Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:03:55 +0700 Subject: [PATCH 2366/3047] Revert changes to document and root --- lib/document.js | 24 +++--------------------- lib/root.js | 23 +++-------------------- 2 files changed, 6 insertions(+), 41 deletions(-) diff --git a/lib/document.js b/lib/document.js index 8d26f6bed..44689917f 100644 --- a/lib/document.js +++ b/lib/document.js @@ -2,7 +2,7 @@ let Container = require('./container') -let LazyResult, NoWork, Processor +let LazyResult, Processor class Document extends Container { constructor(defaults) { @@ -15,23 +15,9 @@ class Document extends Container { } toResult(opts = {}) { - let result - - if ( - typeof opts.plugins === 'undefined' && - typeof opts.parser === 'undefined' && - typeof opts.stringifier === 'undefined' && - typeof opts.syntax === 'undefined' && - // @TODO what to do with this warning option? do we need it here and in processor.js? - // Seems like we will not have a warning after NoWork is properly implemented. - !opts.hideNothingWarning - ) { - result = new NoWork(new Processor(), this, opts) - } else { - result = new LazyResult(new Processor(), this, opts) - } + let lazy = new LazyResult(new Processor(), this, opts) - return result.stringify() + return lazy.stringify() } } @@ -39,10 +25,6 @@ Document.registerLazyResult = dependant => { LazyResult = dependant } -Document.registerNoWork = dependant => { - NoWork = dependant -} - Document.registerProcessor = dependant => { Processor = dependant } diff --git a/lib/root.js b/lib/root.js index 3b814a7b7..18e4ceaf7 100644 --- a/lib/root.js +++ b/lib/root.js @@ -2,7 +2,7 @@ let Container = require('./container') -let LazyResult, NoWork, Processor +let LazyResult, Processor class Root extends Container { constructor(defaults) { @@ -42,21 +42,8 @@ class Root extends Container { } toResult(opts = {}) { - let result - - if ( - typeof opts.plugins === 'undefined' && - typeof opts.parser === 'undefined' && - typeof opts.stringifier === 'undefined' && - typeof opts.syntax === 'undefined' && - !opts.hideNothingWarning - ) { - result = new NoWork(new Processor(), this, opts) - } else { - result = new LazyResult(new Processor(), this, opts) - } - - return result.stringify() + let lazy = new LazyResult(new Processor(), this, opts) + return lazy.stringify() } } @@ -64,10 +51,6 @@ Root.registerLazyResult = dependant => { LazyResult = dependant } -Root.registerNoWork = dependant => { - NoWork = dependant -} - Root.registerProcessor = dependant => { Processor = dependant } From 7fca1401baca27268d1661dc5ab1b8276480cbde Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:07:49 +0700 Subject: [PATCH 2367/3047] Add generateSimpleMap method to map-generator --- lib/map-generator.js | 51 ++++++++++++++++++++++++++++++++++++++------ test/map.test.ts | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 7 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index a86cc67a0..daeab138d 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -8,11 +8,12 @@ let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(dirname && resolve && relative && sep) class MapGenerator { - constructor(stringify, root, opts) { + constructor(stringify, root, opts, cssString) { this.stringify = stringify this.mapOpts = opts.map || {} this.root = root this.opts = opts + this.css = cssString } isMap() { @@ -67,12 +68,16 @@ class MapGenerator { clearAnnotation() { if (this.mapOpts.annotation === false) return - let node - for (let i = this.root.nodes.length - 1; i >= 0; i--) { - node = this.root.nodes[i] - if (node.type !== 'comment') continue - if (node.text.indexOf('# sourceMappingURL=') === 0) { - this.root.removeChild(i) + if (!this.root && typeof this.css === 'string') { + this.css = this.css.replace(/\/\*#[\S\s]*?\*\/|([^:\\]|^)\/\/.*$/gm, '') + } else { + let node + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i] + if (node.type !== 'comment') continue + if (node.text.indexOf('# sourceMappingURL=') === 0) { + this.root.removeChild(i) + } } } } @@ -176,6 +181,34 @@ class MapGenerator { return [this.css, this.map] } + generateSimpleMap() { + this.map = new SourceMapGenerator({ file: this.outputFile() }) + this.previousMaps = [] + + let source + if (this.opts.from) { + source = this.toUrl(this.opts.from) + } else { + source = '' + } + + this.css.split(/\n/).forEach((_, index) => { + this.map.addMapping({ + source, + generated: { line: index + 1, column: 0 }, + original: { line: index + 1, column: 0 } + }) + }) + + if (this.isAnnotation()) this.addAnnotation() + + if (this.isInline()) { + return [this.css] + } + + return [this.cssString, this.map] + } + path(file) { if (file.indexOf('<') === 0) return file if (/^\w+:\/\//.test(file)) return file @@ -285,6 +318,10 @@ class MapGenerator { generate() { this.clearAnnotation() + if (pathAvailable && sourceMapAvailable && this.isMap() && !this.root) { + return this.generateSimpleMap() + } + if (pathAvailable && sourceMapAvailable && this.isMap()) { return this.generateMap() } diff --git a/test/map.test.ts b/test/map.test.ts index 13bf92ff8..aed40657f 100644 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -5,6 +5,7 @@ import { existsSync } from 'fs' import postcss, { SourceMap, Rule, Root } from '../lib/postcss.js' import PreviousMap from '../lib/previous-map.js' +import Processor from '../lib/processor.js' function consumer(map: SourceMap): any { return (SourceMapConsumer as any).fromSourceMap(map) @@ -628,3 +629,43 @@ it('uses URLs in sources', () => { }) expect(result.map.toJSON().sources).toEqual(['../a%20b.css']) }) + +it('generates inline map with empty processor', () => { + let processor = new Processor() + let result = postcss(processor).process('a {} /*hello world*/', { + map: true + }) + + expect(result.css).toMatch( + /a {} \/\*hello world\*\/\n\/\*# sourceMappingURL=/ + ) +}) + +it('generates correct sources with empty processor', () => { + let processor = new Processor() + let result = postcss(processor).process('a {} /*hello world*/', { + from: 'a.css', + to: 'b.css', + map: { inline: false } + }) + + expect(result.map.toJSON().sources).toEqual(['a.css']) +}) + +it('generates map object with empty processor', () => { + let processor = new Processor() + let result = postcss(processor).process('a {} /*hello world*/', { + from: 'a.css', + to: 'b.css', + map: true + }) + + let map = read(result) + + expect(map.originalPositionFor({ line: 1, column: 0 })).toEqual({ + source: 'a.css', + line: 1, + column: 0, + name: null + }) +}) From b4a4554e402968a54c01627334eaa54db5e52e62 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:12:04 +0700 Subject: [PATCH 2368/3047] Update processor.js --- lib/processor.d.ts | 3 ++- lib/processor.js | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/processor.d.ts b/lib/processor.d.ts index 1511f0100..4a470816c 100644 --- a/lib/processor.d.ts +++ b/lib/processor.d.ts @@ -8,6 +8,7 @@ import { import LazyResult from './lazy-result.js' import Result from './result.js' import Root from './root.js' +import NoWorkResult from './no-work-result.js' /** * Contains plugins to process CSS. Create one `Processor` instance, @@ -97,5 +98,5 @@ export default class Processor { process( css: string | { toString(): string } | Result | LazyResult | Root, options?: ProcessOptions - ): LazyResult + ): LazyResult | NoWorkResult } diff --git a/lib/processor.js b/lib/processor.js index 1727ed8c7..5bf35cae3 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -3,7 +3,7 @@ let LazyResult = require('./lazy-result') let Document = require('./document') let Root = require('./root') -let NoWork = require('./no-work') +let NoWorkResult = require('./no-work-result') class Processor { constructor(plugins = []) { @@ -21,10 +21,9 @@ class Processor { this.plugins.length === 0 && typeof opts.parser === 'undefined' && typeof opts.stringifier === 'undefined' && - typeof opts.syntax === 'undefined' && - !opts.hideNothingWarning + typeof opts.syntax === 'undefined' ) { - return new NoWork(this, css, opts) + return new NoWorkResult(this, css, opts) } else { return new LazyResult(this, css, opts) } From 3cfd423d0458d1f60d8c9542d11f2d68bd5d67ed Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:12:57 +0700 Subject: [PATCH 2369/3047] Update postcss.js --- lib/postcss.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/postcss.js b/lib/postcss.js index 0c8f0883c..1d0d0b9a0 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -3,6 +3,7 @@ let CssSyntaxError = require('./css-syntax-error') let Declaration = require('./declaration') let LazyResult = require('./lazy-result') +let NoWorkResult = require('./no-work-result') let Container = require('./container') let Processor = require('./processor') let stringify = require('./stringify') @@ -93,6 +94,7 @@ postcss.Root = Root postcss.Node = Node LazyResult.registerPostcss(postcss) +NoWorkResult.registerPostcss(postcss) module.exports = postcss postcss.default = postcss From edad78d7e64937590bb89206b8328ed5dee81298 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:14:01 +0700 Subject: [PATCH 2370/3047] [NoWork -> noWorkResult] and change implementation --- lib/{no-work.d.ts => no-work-result.d.ts} | 11 +- lib/no-work-result.js | 142 ++++++++++++++++ lib/no-work.js | 195 ---------------------- test/no-work.test.ts | 70 -------- 4 files changed, 149 insertions(+), 269 deletions(-) rename lib/{no-work.d.ts => no-work-result.d.ts} (89%) create mode 100644 lib/no-work-result.js delete mode 100644 lib/no-work.js delete mode 100644 test/no-work.test.ts diff --git a/lib/no-work.d.ts b/lib/no-work-result.d.ts similarity index 89% rename from lib/no-work.d.ts rename to lib/no-work-result.d.ts index bea2495dd..f36d669e7 100644 --- a/lib/no-work.d.ts +++ b/lib/no-work-result.d.ts @@ -6,14 +6,17 @@ import Root from './root.js' /** * A Promise proxy for the result of PostCSS transformations. - * - * A `NoWork` instance is returned by `Processor#process`. + * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root` + * are accessed. See the example below for details. + * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined. * * ```js - * const noWork = postcss([autoprefixer]).process(css) + * const noWorkResult = postcss().process(css) // No plugins are defined. + * // CSS is not parsed + * let root = noWorkResult.root // now css is parsed because we accessed the root * ``` */ -export default class NoWork implements PromiseLike { +export default class NoWorkResult implements PromiseLike { /** * Processes input CSS through synchronous and asynchronous plugins * and calls `onFulfilled` with a Result instance. If a plugin throws diff --git a/lib/no-work-result.js b/lib/no-work-result.js new file mode 100644 index 000000000..cd7e9f4ce --- /dev/null +++ b/lib/no-work-result.js @@ -0,0 +1,142 @@ +'use strict' + +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let warnOnce = require('./warn-once') +let parse = require('./parse') +const Result = require('./result') + +// @FIXME: Not sure why eslint is complaining about this. Temporary disable. +// eslint-disable-next-line +let postcss = {} + +// @TODO: Add more tests (we need 100% coverage for this class) +class NoWorkResult { + constructor(processor, css, opts) { + this.stringified = false + + this._processor = processor + this._css = css + this._opts = opts + this._map = undefined + let root + + let str = stringify + this.result = new Result(this._processor, root, this._opts) + this.result.css = css + + // @NOTE: this one is tricky. We set Result#root getter to return + // the NoWorkResult#root instead, to preserve laziness on Result#root access + let self = this + Object.defineProperty(this.result, 'root', { + get() { + return self.root + } + }) + + if (this._opts.map) { + let map = new MapGenerator(str, root, this._opts, css) + let [generatedCSS, generatedMap] = map.generate() + if (generatedCSS) { + this.result.css = generatedCSS + } + if (generatedMap) { + this.result.map = generatedMap + } + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } + + get processor() { + return this.result.processor + } + + get opts() { + return this.result.opts + } + + get css() { + return this.result.css + } + + get content() { + return this.result.css + } + + get map() { + return this.result.map + } + + get root() { + if (this._root) { + return this._root + } + + let root + let parser = parse + + try { + root = parser(this._css, this._opts) + } catch (error) { + this.error = error + } + + this._root = root + + return root + } + + get messages() { + return [] + } + + warnings() { + return [] + } + + toString() { + return this._css + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this._opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + + return this.async().then(onFulfilled, onRejected) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + sync() { + if (this.error) throw this.error + return this.result + } +} + +NoWorkResult.registerPostcss = dependant => { + postcss = dependant +} + +module.exports = NoWorkResult +NoWorkResult.default = NoWorkResult diff --git a/lib/no-work.js b/lib/no-work.js deleted file mode 100644 index 7f6b18684..000000000 --- a/lib/no-work.js +++ /dev/null @@ -1,195 +0,0 @@ -'use strict' - -let { isClean, my } = require('./symbols') -let MapGenerator = require('./map-generator') -let stringify = require('./stringify') -let Container = require('./container') -let Document = require('./document') -let warnOnce = require('./warn-once') -let Result = require('./result') -let parse = require('./parse') -let Root = require('./root') -let LazyResult = require('./lazy-result') - -function cleanMarks(node) { - node[isClean] = false - if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) - return node -} - -// @FIXME: Not sure why eslint is complaining about this. Temporary disable. -// eslint-disable-next-line -let postcss = {} - -// @TODO: Add more tests (we need 100% coverage for this class) -class NoWork { - constructor(processor, css, opts) { - this.stringified = false - this.processed = false - this._processor = processor - this._css = css - this._opts = opts - this.result = undefined - } - - get [Symbol.toStringTag]() { - return 'NoWork' - } - - get processor() { - return this._processor - } - - get opts() { - return this._opts - } - - get css() { - return this._css - } - - get content() { - return this._css - } - - get map() { - return this.stringify().map - } - - get root() { - return this.sync().root - } - - get messages() { - return [] - } - - prepareResult(processor, css, opts) { - let root - if ( - typeof css === 'object' && - css !== null && - (css.type === 'root' || css.type === 'document') - ) { - root = cleanMarks(css) - } else if (css instanceof LazyResult || css instanceof Result) { - root = cleanMarks(css.root) - if (css.map) { - if (typeof opts.map === 'undefined') opts.map = {} - if (!opts.map.inline) opts.map.inline = false - opts.map.prev = css.map - } - } else { - let parser = parse - if (opts.syntax) parser = opts.syntax.parse - if (opts.parser) parser = opts.parser - if (parser.parse) parser = parser.parse - - try { - root = parser(css, opts) - } catch (error) { - this.processed = true - this.error = error - } - - if (root && !root[my]) { - // istanbul ignore next - Container.rebuild(root) - } - } - - this.result = new Result(processor, root, opts) - return this.result - } - - warnings() { - return this.sync().warnings() - } - - toString() { - return this._css - } - - then(onFulfilled, onRejected) { - if (process.env.NODE_ENV !== 'production') { - if (!('from' in this._opts)) { - warnOnce( - 'Without `from` option PostCSS could generate wrong source map ' + - 'and will not find Browserslist config. Set it to CSS file path ' + - 'or to `undefined` to prevent this warning.' - ) - } - } - - return this.async().then(onFulfilled, onRejected) - } - - catch(onRejected) { - return this.async().catch(onRejected) - } - - finally(onFinally) { - return this.async().then(onFinally, onFinally) - } - - async() { - if (this.error) return Promise.reject(this.error) - if (this.processed) return Promise.resolve(this.result) - if (!this.result) { - this.prepareResult(this._processor, this._css, this._opts) - } - return Promise.resolve(this.stringify()) - } - - sync() { - if (this.error) throw this.error - if (this.processed) return this.result - this.processed = true - - if (this.processing) { - throw this.getAsyncError() - } - - if (!this.result) { - this.prepareResult(this._processor, this._css, this._opts) - } - - return this.result - } - - // @TODO: what to do with maps? - stringify() { - if (this.error) throw this.error - if (this.stringified) return this.result - this.stringified = true - - this.sync() - - let opts = this.result.opts - let str = stringify - if (opts.syntax) str = opts.syntax.stringify - if (opts.stringifier) str = opts.stringifier - if (str.stringify) str = str.stringify - - let map = new MapGenerator(str, this.result.root, this.result.opts) - let data = map.generate() - this.result.css = data[0] - this.result.map = data[1] - - return this.result - } - - getAsyncError() { - throw new Error('Use process(css).then(cb) to work with async plugins') - } -} - -NoWork.registerPostcss = dependant => { - postcss = dependant -} - -module.exports = NoWork -NoWork.default = NoWork - -Root.registerNoWork(NoWork) -Document.registerNoWork(NoWork) diff --git a/test/no-work.test.ts b/test/no-work.test.ts deleted file mode 100644 index 381b66959..000000000 --- a/test/no-work.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import mozilla from 'source-map-js' - -import NoWork from '../lib/no-work.js' -import Processor from '../lib/processor.js' - -let processor = new Processor() - -it('does not contain result if not processed', () => { - let noWork = new NoWork(processor, 'a {}', {}) - // @ts-ignore - expect(noWork.result).toBeUndefined() -}) - -it('contains AST if root is accessed', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(result.root.type).toBe('root') -}) - -it('will stringify css', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(result.css).toBe('a {}') -}) - -it('stringifies css', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(`${result}`).toEqual(result.css) -}) - -it('has content alias for css', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(result.content).toBe('a {}') -}) - -it('has map only if necessary', () => { - let result1 = new NoWork(processor, '', {}) - expect(result1.map).toBeUndefined() - - let result2 = new NoWork(processor, '', {}) - expect(result2.map).toBeUndefined() - - let result3 = new NoWork(processor, '', { map: { inline: false } }) - expect(result3.map instanceof mozilla.SourceMapGenerator).toBe(true) -}) - -it('contains options', () => { - let result = new NoWork(processor, 'a {}', { to: 'a.css' }) - expect(result.opts).toEqual({ to: 'a.css' }) -}) - -it('contains warnings', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(result.warnings()).toEqual([]) -}) - -it('contains messages', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(result.messages).toEqual([]) -}) - -it('executes on finally callback', () => { - let mockCallback = jest.fn() - return new NoWork(processor, 'a {}', {}).finally(mockCallback).then(() => { - expect(mockCallback).toHaveBeenCalledTimes(1) - }) -}) - -it('prints its object type', () => { - let result = new NoWork(processor, 'a {}', {}) - expect(Object.prototype.toString.call(result)).toBe('[object NoWork]') -}) From 12bd8b0dcfa94017a4adc640d87b6d4516eb2ae5 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:14:36 +0700 Subject: [PATCH 2371/3047] Add tests --- test/document.test.ts | 35 +----------- test/no-work-result.test.ts | 111 ++++++++++++++++++++++++++++++++++++ test/processor.test.ts | 52 ++++++++++++++--- test/root.test.ts | 30 +--------- 4 files changed, 158 insertions(+), 70 deletions(-) create mode 100644 test/no-work-result.test.ts diff --git a/test/document.test.ts b/test/document.test.ts index a215a8939..f9dc56f1e 100644 --- a/test/document.test.ts +++ b/test/document.test.ts @@ -1,7 +1,5 @@ -import { Result, Stringifier, parse } from '../lib/postcss.js' +import { Result, parse } from '../lib/postcss.js' import Document from '../lib/document.js' -import NoWork from '../lib/no-work.js' -import LazyResult from '../lib/lazy-result.js' it('generates result without map', () => { let root = parse('a {}') @@ -23,36 +21,5 @@ it('generates result with map', () => { let result = document.toResult({ map: true }) - expect(result instanceof Result).toBe(true) expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) }) - -it('uses NoWork inside if no plugins, stringifier or parsers defined', () => { - let spy = jest.spyOn(NoWork.prototype, 'sync') - let root = parse('a {}') - let document = new Document() - - document.append(root) - - document.toResult({}) - - spy.mockRestore() -}) - -it('uses LazyWorkResult inside if stringifier defined', () => { - let spy = jest.spyOn(LazyResult.prototype, 'sync') - let root = parse('a {}') - let document = new Document() - - document.append(root) - - let customStringifier: Stringifier = doc => { - doc.toString() - } - - document.toResult({ stringifier: customStringifier }) - - // eslint-disable-next-line - expect(spy).toHaveBeenCalledWith() - spy.mockRestore() -}) diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts new file mode 100644 index 000000000..3cede60de --- /dev/null +++ b/test/no-work-result.test.ts @@ -0,0 +1,111 @@ +import mozilla from 'source-map-js' + +import NoWorkResult from '../lib/no-work-result.js' +import { CssSyntaxError } from '../lib/postcss.js' +import Processor from '../lib/processor.js' + +let processor = new Processor() + +it('contains AST on root access', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(result.root.nodes).toHaveLength(1) +}) + +it('has async() method', async () => { + let noWorkResult = new NoWorkResult(processor, 'a {}', {}) + let result1 = await noWorkResult + let result2 = await noWorkResult + expect(result1).toEqual(result2) +}) + +it('has sync() method', () => { + let result = new NoWorkResult(processor, 'a {}', {}).sync() + expect(result.root.nodes).toHaveLength(1) +}) + +it('throws error on sync()', () => { + let noWorkResult = new NoWorkResult(processor, 'a {', {}) + + noWorkResult.root // process AST + + expect(() => noWorkResult.sync()).toThrow(CssSyntaxError) +}) + +it('returns cached root on second access', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + + // @ts-ignore + expect(result._root).toBeUndefined() + expect(result.root.nodes).toHaveLength(1) + + // @ts-ignore + expect(result._root).toBeDefined() + expect(result.root.nodes).toHaveLength(1) +}) + +it('contains css syntax errors', () => { + let result = new NoWorkResult(processor, 'a {', {}) + result.root + // @ts-ignore + expect(result.error).toBeInstanceOf(CssSyntaxError) +}) + +it('contains css', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(result.css).toBe('a {}') +}) + +it('stringifies css', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(`${result}`).toEqual(result.css) +}) + +it('has content alias for css', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(result.content).toBe('a {}') +}) + +it('has map only if necessary', () => { + let result1 = new NoWorkResult(processor, '', {}) + expect(result1.map).toBeUndefined() + + let result2 = new NoWorkResult(processor, '', {}) + expect(result2.map).toBeUndefined() + + let result3 = new NoWorkResult(processor, '', { map: { inline: false } }) + expect(result3.map instanceof mozilla.SourceMapGenerator).toBe(true) +}) + +it('contains processor', () => { + let result = new NoWorkResult(processor, 'a {}', { to: 'a.css' }) + expect(result.processor).toBeInstanceOf(Processor) +}) + +it('contains options', () => { + let result = new NoWorkResult(processor, 'a {}', { to: 'a.css' }) + expect(result.opts).toEqual({ to: 'a.css' }) +}) + +it('contains warnings', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(result.warnings()).toEqual([]) +}) + +it('contains messages', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(result.messages).toEqual([]) +}) + +it('executes on finally callback', () => { + let mockCallback = jest.fn() + return new NoWorkResult(processor, 'a {}', {}) + .finally(mockCallback) + .then(() => { + expect(mockCallback).toHaveBeenCalledTimes(1) + }) +}) + +it('prints its object type', () => { + let result = new NoWorkResult(processor, 'a {}', {}) + expect(Object.prototype.toString.call(result)).toBe('[object NoWorkResult]') +}) diff --git a/test/processor.test.ts b/test/processor.test.ts index 82c39de38..2a588e034 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -14,7 +14,7 @@ import postcss, { } from '../lib/postcss.js' import CssSyntaxError from '../lib/css-syntax-error.js' import LazyResult from '../lib/lazy-result.js' -import NoWork from '../lib/no-work.js' +import NoWorkResult from '../lib/no-work-result.js' import Processor from '../lib/processor.js' import Rule from '../lib/rule.js' @@ -526,12 +526,50 @@ it('warns about missed from', async () => { ) }) -it('returns NoWork object', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) - let result = await new Processor().process('a{}') - expect(result instanceof NoWork).toBe(false) - expect(result.css).toBe('a{}') - expect(result.toString()).toBe('a{}') +it('returns NoWorkResult object', async () => { + let noWorkResult = new Processor().process('a{}') + + expect(noWorkResult).toBeInstanceOf(NoWorkResult) +}) + +it('parses CSS only on root access when no plugins are specified', async () => { + let noWorkResult = new Processor().process('a{}') + let result = await noWorkResult + // @ts-ignore + expect(noWorkResult._root).toBeUndefined() + expect(result.root.nodes).toHaveLength(1) + // @ts-ignore + expect(noWorkResult._root).toBeDefined() + expect(noWorkResult.root.nodes).toHaveLength(1) +}) + +// @NOTE: couldn't spy on console.warn because warnOnce was triggered before +// in other tests. Spying on async() instead +it('warns about missed from with empty processor', async () => { + // @ts-ignore + let spy = jest + .spyOn(NoWorkResult.prototype, 'async') + .mockImplementation(() => Promise.resolve()) + let processor = new Processor() + + processor.process('a{}').css + expect(spy).not.toHaveBeenCalled() + + await processor.process('a{}') + expect(spy).toHaveBeenCalledTimes(1) + spy.mockRestore() +}) + +it('catches error with empty processor', async () => { + let noWorkResult = new Processor().process('a {}') + + // @ts-ignore + noWorkResult.error = new CssSyntaxError('error') + + noWorkResult.catch(err => { + // eslint-disable-next-line jest/no-conditional-expect + expect(err).toBeInstanceOf(CssSyntaxError) + }) }) it('supports plugins returning processors', () => { diff --git a/test/root.test.ts b/test/root.test.ts index 431f39255..bfec257f1 100644 --- a/test/root.test.ts +++ b/test/root.test.ts @@ -1,6 +1,4 @@ -import LazyResult from '../lib/lazy-result.js' -import NoWork from '../lib/no-work.js' -import { Result, parse, Stringifier } from '../lib/postcss.js' +import { Result, parse } from '../lib/postcss.js' it('prepend() fixes spaces on insert before first', () => { let css = parse('a {} b {}') @@ -62,29 +60,3 @@ it('generates result with map', () => { expect(result instanceof Result).toBe(true) expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) }) - -it('uses NoWork inside if no plugins, stringifier or parsers defined', () => { - let spy = jest.spyOn(NoWork.prototype, 'sync') - let root = parse('a {}') - - root.toResult({}) - - // eslint-disable-next-line - expect(spy).toHaveBeenCalled() - spy.mockRestore() -}) - -it('uses LazyWorkResult inside if stringifier defined', () => { - let spy = jest.spyOn(LazyResult.prototype, 'sync') - let root = parse('a {}') - - let customStringifier: Stringifier = doc => { - doc.toString() - } - - root.toResult({ stringifier: customStringifier }) - - // eslint-disable-next-line - expect(spy).toHaveBeenCalled() - spy.mockRestore() -}) From 9fbe816051d47c2e1744e66d396d9b29fe2dc160 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:26:47 +0700 Subject: [PATCH 2372/3047] Change clear annotation regex --- lib/map-generator.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index daeab138d..9bf88be76 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -69,7 +69,8 @@ class MapGenerator { if (this.mapOpts.annotation === false) return if (!this.root && typeof this.css === 'string') { - this.css = this.css.replace(/\/\*#[\S\s]*?\*\/|([^:\\]|^)\/\/.*$/gm, '') + // @NOTE: not sure about this regex. Is it safe to use? + this.css = this.css.replace(/\/\*#[\S\s]*?\*\/$/gm, '') } else { let node for (let i = this.root.nodes.length - 1; i >= 0; i--) { From 6760562dd2acaf0969f65a76db0136fed17e5a86 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:27:18 +0700 Subject: [PATCH 2373/3047] Fix tests --- test/processor.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/processor.test.ts b/test/processor.test.ts index 2a588e034..5c740c9b0 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -546,11 +546,11 @@ it('parses CSS only on root access when no plugins are specified', async () => { // @NOTE: couldn't spy on console.warn because warnOnce was triggered before // in other tests. Spying on async() instead it('warns about missed from with empty processor', async () => { - // @ts-ignore + let processor = new Processor() + let r = new Result(processor, new Root({}), {}) let spy = jest .spyOn(NoWorkResult.prototype, 'async') - .mockImplementation(() => Promise.resolve()) - let processor = new Processor() + .mockImplementation(() => Promise.resolve(r)) processor.process('a{}').css expect(spy).not.toHaveBeenCalled() From bf355553f54254977e86c0f3fc3de374c1a90dd5 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Fri, 5 Nov 2021 11:32:12 +0700 Subject: [PATCH 2374/3047] Fix tests --- test/document.test.ts | 1 + test/processor.test.ts | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/document.test.ts b/test/document.test.ts index f9dc56f1e..0d1253043 100644 --- a/test/document.test.ts +++ b/test/document.test.ts @@ -21,5 +21,6 @@ it('generates result with map', () => { let result = document.toResult({ map: true }) + expect(result instanceof Result).toBe(true) expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) }) diff --git a/test/processor.test.ts b/test/processor.test.ts index 2a588e034..5c740c9b0 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -546,11 +546,11 @@ it('parses CSS only on root access when no plugins are specified', async () => { // @NOTE: couldn't spy on console.warn because warnOnce was triggered before // in other tests. Spying on async() instead it('warns about missed from with empty processor', async () => { - // @ts-ignore + let processor = new Processor() + let r = new Result(processor, new Root({}), {}) let spy = jest .spyOn(NoWorkResult.prototype, 'async') - .mockImplementation(() => Promise.resolve()) - let processor = new Processor() + .mockImplementation(() => Promise.resolve(r)) processor.process('a{}').css expect(spy).not.toHaveBeenCalled() From a66b55b5f8e9d6c4e1ba68467be532cd2359ac8c Mon Sep 17 00:00:00 2001 From: Paul Shryock Date: Fri, 5 Nov 2021 15:22:38 -0400 Subject: [PATCH 2375/3047] Remove unmaintained precss from plugins docs --- docs/plugins.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 55b0b6354..be86f5019 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -40,7 +40,6 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`cssnano`] contains plugins that optimize CSS size for use in production. * [`oldie`] contains plugins that transform your CSS for older Internet Explorer compatibility. -* [`precss`] contains plugins that allow you to use Sass-like CSS. * [`rucksack`] contains plugins to speed up CSS development with new features and shortcuts. * [`level4`] contains only plugins that let you write CSS4 without From d757bb7293f813f57159e1e2695c00342cf8de44 Mon Sep 17 00:00:00 2001 From: Paul Shryock Date: Fri, 5 Nov 2021 15:26:04 -0400 Subject: [PATCH 2376/3047] Remove unmaintained precss plugin from Readme-cn --- docs/README-cn.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/README-cn.md b/docs/README-cn.md index d396450b9..f7cf95f7a 100644 --- a/docs/README-cn.md +++ b/docs/README-cn.md @@ -57,7 +57,6 @@ PostCSS 插件),请联系 [Evil Martians](https://evilmartians.com/?utm_sou ### 更佳的 CSS 可读性 -* [`precss`] 囊括了许多插件来支持类似 Sass 的特性,比如 CSS 变量,套嵌,mixins 等。 * [`postcss-sorting`] 给规则的内容以及@规则排序。 * [`postcss-utilities`] 囊括了最常用的简写方式和书写帮助。 * [`short`] 添加并拓展了大量的缩写属性。 From cd6bb7a69290d435fd5aa1cdc3e18b8562b2d577 Mon Sep 17 00:00:00 2001 From: Paul Shryock Date: Fri, 5 Nov 2021 15:28:06 -0400 Subject: [PATCH 2377/3047] Remove unmaintained precss from type definitions --- lib/processor.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/processor.d.ts b/lib/processor.d.ts index 1511f0100..50cab755b 100644 --- a/lib/processor.d.ts +++ b/lib/processor.d.ts @@ -14,7 +14,7 @@ import Root from './root.js' * initialize its plugins, and then use that instance on numerous CSS files. * * ```js - * const processor = postcss([autoprefixer, precss]) + * const processor = postcss([autoprefixer, postcss-nested]) * processor.process(css1).then(result => console.log(result.css)) * processor.process(css2).then(result => console.log(result.css)) * ``` @@ -35,7 +35,7 @@ export default class Processor { * Plugins added to this processor. * * ```js - * const processor = postcss([autoprefixer, precss]) + * const processor = postcss([autoprefixer, postcss-nested]) * processor.plugins.length //=> 2 * ``` */ @@ -67,7 +67,7 @@ export default class Processor { * ```js * const processor = postcss() * .use(autoprefixer) - * .use(precss) + * .use(postcss-nested) * ``` * * @param plugin PostCSS plugin or `Processor` with plugins. From 3a5c668126f84319d1ee7ab6a4e4a620bc21fb2a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Nov 2021 20:40:52 +0100 Subject: [PATCH 2378/3047] Remove precss --- docs/README-cn.md | 11 +++++------ docs/plugins.md | 3 --- lib/processor.d.ts | 6 +++--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/docs/README-cn.md b/docs/README-cn.md index f7cf95f7a..a7cfcd503 100644 --- a/docs/README-cn.md +++ b/docs/README-cn.md @@ -105,7 +105,6 @@ PostCSS 插件),请联系 [Evil Martians](https://evilmartians.com/?utm_sou [`stylelint`]: https://github.com/stylelint/stylelint [`stylefmt`]: https://github.com/morishitter/stylefmt [`cssnano`]: http://cssnano.co -[`precss`]: https://github.com/jonathantneal/precss [`doiuse`]: https://github.com/anandthakker/doiuse [`rtlcss`]: https://github.com/MohammadYounes/rtlcss [`short`]: https://github.com/jonathantneal/postcss-short @@ -201,8 +200,8 @@ module.exports = { ```js module.exports = { plugins: [ - require('precss'), - require('autoprefixer') + require('autoprefixer'), + require('postcss-nested') ] } ``` @@ -220,7 +219,7 @@ gulp.task('css', () => { return gulp.src('src/**/*.css') .pipe( sourcemaps.init() ) - .pipe( postcss([ require('precss'), require('autoprefixer') ]) ) + .pipe( postcss([ require('postcss-nested'), require('autoprefixer') ]) ) .pipe( sourcemaps.write('.') ) .pipe( gulp.dest('build/') ) }) @@ -278,13 +277,13 @@ prefixer({ display: 'flex' }) //=> { display: ['-webkit-box', '-webkit-flex', '- 对于其它的应用环境,你可以使用 JS API: ```js +const postcssNested = require('postcss-nested') const autoprefixer = require('autoprefixer') const postcss = require('postcss') -const precss = require('precss') const fs = require('fs') fs.readFile('src/app.css', (err, css) => { - postcss([precss, autoprefixer]) + postcss([postcssNested, autoprefixer]) .process(css, { from: 'src/app.css', to: 'dest/app.css' }) .then(result => { fs.writeFile('dest/app.css', result.css) diff --git a/docs/plugins.md b/docs/plugins.md index be86f5019..d4132ec11 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -57,7 +57,6 @@ Or enable plugins directly in CSS using [`postcss-use`]: [`rucksack`]: https://github.com/seaneking/rucksack [`cssnano`]: https://cssnano.co/ [`level4`]: https://github.com/stephenway/level4 -[`precss`]: https://github.com/jonathantneal/precss [`oldie`]: https://github.com/jonathantneal/oldie [`atcss`]: https://github.com/morishitter/atcss [`postcss-ui-theme`]: https://github.com/cleverboy32/postcss-ui-theme @@ -222,8 +221,6 @@ for targeting all button elements. * [`postcss-custom-css-units`] Define custom css units and convert them to CSS variables. * [`postcss-easy-z`] lets you organize z-indices by declaring relations between them. -See also [`precss`] plugins pack to add them by one line of code. - [Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html diff --git a/lib/processor.d.ts b/lib/processor.d.ts index 50cab755b..cdfce6bca 100644 --- a/lib/processor.d.ts +++ b/lib/processor.d.ts @@ -14,7 +14,7 @@ import Root from './root.js' * initialize its plugins, and then use that instance on numerous CSS files. * * ```js - * const processor = postcss([autoprefixer, postcss-nested]) + * const processor = postcss([autoprefixer, postcssNested]) * processor.process(css1).then(result => console.log(result.css)) * processor.process(css2).then(result => console.log(result.css)) * ``` @@ -35,7 +35,7 @@ export default class Processor { * Plugins added to this processor. * * ```js - * const processor = postcss([autoprefixer, postcss-nested]) + * const processor = postcss([autoprefixer, postcssNested]) * processor.plugins.length //=> 2 * ``` */ @@ -67,7 +67,7 @@ export default class Processor { * ```js * const processor = postcss() * .use(autoprefixer) - * .use(postcss-nested) + * .use(postcssNested) * ``` * * @param plugin PostCSS plugin or `Processor` with plugins. From 55eba27dd962f161f19b7cefdb098a7910c506c6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Nov 2021 20:47:36 +0100 Subject: [PATCH 2379/3047] Update dependencies --- package.json | 200 ++------- yarn.lock | 1183 ++++++++++++++++++-------------------------------- 2 files changed, 450 insertions(+), 933 deletions(-) diff --git a/package.json b/package.json index 8bf2dfd4c..ea45181c6 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "transpiler" ], "scripts": { - "test": "jest --coverage && eslint . && ./test/version.js && check-dts && ./test/integration.js && yaspeller *.md docs/{**/,}*.md && size-limit" + "test": "jest --coverage && eslint . && ./test/version.js && check-dts && ./test/integration.js && size-limit" }, "funding": { "type": "opencollective", @@ -72,49 +72,36 @@ "source-map-js": "^0.6.2" }, "devDependencies": { - "@logux/eslint-config": "^46.0.0", - "@size-limit/preset-small-lib": "^6.0.3", + "@logux/eslint-config": "^46.1.0", + "@size-limit/preset-small-lib": "^6.0.4", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", - "@types/node": "^16.11.2", - "@typescript-eslint/eslint-plugin": "^5.1.0", - "@typescript-eslint/parser": "^5.1.0", - "check-dts": "^0.6.1", - "ci-job-number": "^1.2.2", + "@types/node": "^16.11.6", + "@typescript-eslint/eslint-plugin": "^5.3.0", + "@typescript-eslint/parser": "^5.3.0", + "check-dts": "^0.6.3", "clean-publish": "^3.4.2", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.0.1", + "eslint": "^8.1.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.2", - "eslint-plugin-jest": "^25.2.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prefer-let": "^1.1.0", + "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^5.1.1", - "eslint-plugin-security": "^1.4.0", - "eslint-plugin-unicorn": "^37.0.1", "fs-extra": "^10.0.0", "jest": "^27.3.1", - "lint-staged": "^11.2.3", + "lint-staged": "^11.2.6", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", - "prettier": "^2.4.1", - "simple-git-hooks": "^2.6.1", - "size-limit": "^6.0.3", + "simple-git-hooks": "^2.7.0", + "size-limit": "^6.0.4", "strip-ansi": "^6.0.0", "ts-jest": "^27.0.7", - "typescript": "^4.4.4", - "yaspeller": "^7.2.0" + "typescript": "^4.4.4" }, "lint-staged": { - "*.md": "yaspeller", - "*.js": [ - "prettier --write", - "eslint --fix" - ], - "*.ts": [ - "prettier --write", - "eslint --fix" - ], + "*.js": "prettier --write", + "*.ts": "prettier --write", "package.json": "./test/version.js" }, "simple-git-hooks": { @@ -138,7 +125,7 @@ "size-limit": [ { "path": "lib/postcss.js", - "limit": "22 KB" + "limit": "15 KB" } ], "jest": { @@ -182,6 +169,16 @@ "no-console": "off", "func-style": "off" } + }, + { + "files": [ + "*.test.*" + ], + "globals": { + "it": "readonly", + "expect": "readonly", + "beforeAll": "readonly" + } } ] }, @@ -191,150 +188,5 @@ ], "clean-publish": { "cleanDocs": true - }, - "yaspeller": { - "lang": "en", - "ignoreCapitalization": true, - "excludeFiles": [ - "docs/README-cn.md" - ], - "ignoreText": [ - " \\(by [^)]+\\).", - "“[^”]+”" - ], - "dictionary": [ - "6to5", - "A CI", - "Andalusian", - "ASE", - "autodetect", - "Autodetect", - "Autoprefixer", - "base64", - "Base64", - "BEM", - "Browserhacks", - "Browserify or", - "Browserslist", - "CamelCase", - "changelog", - "Changelog", - "ClojureWerkz’s", - "CodePen", - "CoffeeScript", - "configs", - "CSS3", - "CSS4", - "cssnano", - "CSSWG", - "ENB", - "ES5", - "ES6", - "evilmartians", - "extendability", - "findable", - "Flexbox", - "flexbox", - "GitHub", - "GitLab", - "Gitter", - "IE8", - "IE9", - "inlined", - "inlines", - "Instagram", - "iOS", - "is SCSS", - "isolatable", - "Jeet", - "JetBrains", - "JS", - "js", - "JSDoc", - "JSS", - "keyframes", - "Less’s", - "Libby", - "linter", - "Linters", - "Lolspeak", - "LTR", - "LTS", - "maintainers", - "Markdown", - "MD5", - "minifier", - "mixin", - "mixins", - "Modernizr", - "multitool", - "npm", - "Packt", - "pantone", - "params", - "partials", - "polyfill", - "polyfills", - "Polyfills", - "PostCSS", - "postcss", - "PostCSS’s", - "rebases", - "regexp", - "replaces EOL", - "resolver", - "Rollup", - "RTL", - "RTLCSS", - "sanitization", - "Sass", - "SCSS", - "SemVer", - "Sharec", - "stringifier", - "Stringifier", - "stringifing", - "Stylelint", - "stylesheet", - "stylesheets", - "SugarSS", - "SVG", - "SVGO", - "SVGs", - "Taskr", - "Tidelift", - "tokenization", - "Tokenization", - "tokenize", - "tokenizer", - "Tokenizer", - "Traceur", - "transpile", - "Transpiler", - "transpiler", - "transpiles", - "transpiling", - "Travis", - "UI", - "unmaintained", - "Unprefixes", - "unprefixes", - "Versioning", - "VK", - "VS", - "Vue", - "W3C", - "WebP", - "webpack", - "Webpack", - "WebStorm", - "YIQ", - "TypeDoc", - "ES", - "Deno", - "AVIF", - "ReDoS", - "Backport" - ] } } diff --git a/yarn.lock b/yarn.lock index 80d6b965b..d9d1da6ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,32 +2,32 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" - integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== - dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/compat-data@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" - integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== - -"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" - integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== - dependencies: - "@babel/code-frame" "^7.15.8" - "@babel/generator" "^7.15.8" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.8" - "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.8" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + +"@babel/compat-data@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" + integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" + integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helpers" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -35,122 +35,113 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/eslint-parser@^7.12.16": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz#8988660b59d739500b67d0585fd4daca218d9f11" - integrity sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ== +"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" + integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.7.2": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" - integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== - dependencies: - "@babel/types" "^7.15.6" + "@babel/types" "^7.16.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" - integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== +"@babel/helper-compilation-targets@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" + integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== dependencies: - "@babel/compat-data" "^7.15.0" + "@babel/compat-data" "^7.16.0" "@babel/helper-validator-option" "^7.14.5" browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-function-name@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" - integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== dependencies: - "@babel/helper-get-function-arity" "^7.15.4" - "@babel/template" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" -"@babel/helper-get-function-arity@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b" - integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" -"@babel/helper-hoist-variables@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df" - integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" -"@babel/helper-member-expression-to-functions@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef" - integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== +"@babel/helper-member-expression-to-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" + integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" -"@babel/helper-module-imports@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" - integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== +"@babel/helper-module-imports@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" + integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" -"@babel/helper-module-transforms@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz#d8c0e75a87a52e374a8f25f855174786a09498b2" - integrity sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg== +"@babel/helper-module-transforms@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" + integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== dependencies: - "@babel/helper-module-imports" "^7.15.4" - "@babel/helper-replace-supers" "^7.15.4" - "@babel/helper-simple-access" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" -"@babel/helper-optimise-call-expression@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171" - integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== +"@babel/helper-optimise-call-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" + integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-replace-supers@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" - integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== +"@babel/helper-replace-supers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" + integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.4" - "@babel/helper-optimise-call-expression" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" -"@babel/helper-simple-access@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b" - integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== +"@babel/helper-simple-access@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" + integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" -"@babel/helper-split-export-declaration@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" - integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.16.0" -"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": +"@babel/helper-validator-identifier@^7.15.7": version "7.15.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== @@ -160,28 +151,28 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helpers@^7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" - integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== +"@babel/helpers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.0.tgz#875519c979c232f41adfbd43a3b0398c2e388183" + integrity sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ== dependencies: - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" -"@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== dependencies: - "@babel/helper-validator-identifier" "^7.14.5" + "@babel/helper-validator-identifier" "^7.15.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.7.2": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" - integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.7.2": + version "7.16.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" + integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -268,42 +259,42 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" - integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" + integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/template@^7.15.4", "@babel/template@^7.3.3": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" - integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.15.4" - "@babel/types" "^7.15.4" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" - integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.4" - "@babel/helper-function-name" "^7.15.4" - "@babel/helper-hoist-variables" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" - "@babel/parser" "^7.15.4" - "@babel/types" "^7.15.4" +"@babel/template@^7.16.0", "@babel/template@^7.3.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.7.2": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" + integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" - integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== +"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== dependencies: - "@babel/helper-validator-identifier" "^7.14.9" + "@babel/helper-validator-identifier" "^7.15.7" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -341,9 +332,9 @@ minimatch "^3.0.4" "@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -530,12 +521,10 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@logux/eslint-config@^46.0.0": - version "46.0.0" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-46.0.0.tgz#5fc8b756ff0e4b5ce9cfce009e403c941e05caff" - integrity sha512-1FMDNeLgGtjITAjmNjsr11PtPN/GH9qUfLYj6PvOLyp9HipIpOLQelabb1yAM5lrJhhsWakSx5xzXIVkLVFO8Q== - dependencies: - globals "^13.11.0" +"@logux/eslint-config@^46.1.0": + version "46.1.0" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-46.1.0.tgz#26921037e20ace9e8811bfe8672cede991ecb11c" + integrity sha512-7DikH6MvW2mc9DJHTmA9uGAPexBA69u21KNjCHqAbWPAqHD7XM++2BWBswMSJaWD3o2u+IEBFK6ZywNuPsNCbQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -566,40 +555,40 @@ type-detect "4.0.8" "@sinonjs/fake-timers@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz#1c1c9a91419f804e59ae8df316a07dd1c3a76b94" - integrity sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew== + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-6.0.3.tgz#8cae76a17e6061416353ea75799b45e8fc565191" - integrity sha512-OfDrkJBB7OAWtnedz6jpmL1pjlha1MpgtvYwUSP2442qB96nwMN5Ig78XR3ldPj2cbxq1FVoNnc2vfWMi40vQA== +"@size-limit/file@6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-6.0.4.tgz#64681f0e0ec93d69b1d99f0a40bbbcdd2fb7def6" + integrity sha512-SoGUUNEHsZJTDlw6znuMbR0z6apr/NmeEXSFT6iB6gUPyOHIdFtFJpvWeS1vijC7OFQhWHskedB6nBJ6L+bd+A== dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-6.0.3.tgz#30c37000c61ac9bbb8e848a7ff43221f19d60942" - integrity sha512-HvHgrLp5sNEWfw3js6oBWty2dQyDf2SDhehDGJuQRL+8IVRFQcx0XLkqiHAdMrCNvDmfRPfvLkcp5wcxpjgbrw== +"@size-limit/preset-small-lib@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-6.0.4.tgz#707863bee82c7412b2e7201c301db1de793e7158" + integrity sha512-eMay+Hv/ufJyCUX/pFXa30AiYsjrT/Tjw1G7h7CCNKulbEjAY2rAiEsCQkm+rCNnYoPUgOsWhMYy908J23Qb6Q== dependencies: - "@size-limit/file" "6.0.3" - "@size-limit/webpack" "6.0.3" + "@size-limit/file" "6.0.4" + "@size-limit/webpack" "6.0.4" -"@size-limit/webpack@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-6.0.3.tgz#43002b1ac8b72ea0ea91f80968a9306ac5bb2aa4" - integrity sha512-4LI3SpkL0YbOIJsE7+t0LdPgqMeRDDwk1LELHHyk1b67tIjQ9wfnehI0BPT4LYiT23vN7Tg1TN0ofjwuRCLdbA== +"@size-limit/webpack@6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-6.0.4.tgz#2e23b6a3efb11cb081fb65394d05f218c7051270" + integrity sha512-51rvLztZcvT+Qc5g8FusyC8ZDcpVg7+O1a4hfO2K2XMZV8CFguRN//xMwQXv5q6I1ImUQeyURyiCXIQD24qJYQ== dependencies: - "@statoscope/webpack-plugin" "^5.13.1" - css-loader "^6.4.0" + "@statoscope/webpack-plugin" "^5.17.0" + css-loader "^6.5.0" css-minimizer-webpack-plugin "^3.0.2" escape-string-regexp "^4.0.0" mkdirp "^1.0.4" - nanoid "^3.1.28" - style-loader "^3.3.0" - webpack "^5.56.0" + nanoid "^3.1.30" + style-loader "^3.3.1" + webpack "^5.61.0" "@statoscope/extensions@5.14.1": version "5.14.1" @@ -671,10 +660,10 @@ dependencies: "@statoscope/stats" "5.14.1" -"@statoscope/webpack-model@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-model/-/webpack-model-5.14.1.tgz#999f4be029b61ced6a9a1b5b74e50136e13a2ab6" - integrity sha512-qSZmtRAk2TSCDaG+ZiMBBfe850/McoNg0Ka2JKsAeSZQ7OOSNN24U/jhmcXtHaoUzxlEGsrEyx8Xz4BMdibjgw== +"@statoscope/webpack-model@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-model/-/webpack-model-5.18.0.tgz#02b13e8d2929875752887417dd9c4f406e797568" + integrity sha512-pvS/BiKUpzSGfpEGIzwORYyo/YDsYWZYLmKPGi/qlHnBQBQ3Diqa4N+6/dPGBFmuBj49Z2GK/3X1etniANhI0w== dependencies: "@statoscope/extensions" "5.14.1" "@statoscope/helpers" "5.14.1" @@ -689,10 +678,10 @@ ajv "^8.6.3" md5 "^2.3.0" -"@statoscope/webpack-plugin@^5.13.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-plugin/-/webpack-plugin-5.14.1.tgz#10eac3fed165794dfa094367641e3df3ede18fb0" - integrity sha512-FVbBnNaEHS10UHflXKf2ES5LRkWRlDNpECwY3Q1Ir7LyQ1okyYAb6VD4ePyclsQ1+pU64mvU3EVUbkFJWGgXMQ== +"@statoscope/webpack-plugin@^5.17.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-plugin/-/webpack-plugin-5.18.0.tgz#d268d967354d6fabacb746d53ddeca8e78cde8f1" + integrity sha512-WB7E6EwCCibhG5VUPuSlXxJ2oArzIM2SdpkF2NWeahFuPEJEXZtCuW9NFUdQuwLp486COy09oN9Dlw/Fe288Tw== dependencies: "@discoveryjs/json-ext" "^0.5.5" "@statoscope/report-writer" "5.14.1" @@ -700,38 +689,38 @@ "@statoscope/stats-extension-compressed" "5.14.1" "@statoscope/stats-extension-custom-reports" "5.14.1" "@statoscope/types" "5.14.1" - "@statoscope/webpack-model" "5.14.1" - "@statoscope/webpack-stats-extension-compressed" "5.14.1" - "@statoscope/webpack-stats-extension-package-info" "5.14.1" - "@statoscope/webpack-ui" "5.14.1" + "@statoscope/webpack-model" "5.18.0" + "@statoscope/webpack-stats-extension-compressed" "5.18.0" + "@statoscope/webpack-stats-extension-package-info" "5.18.0" + "@statoscope/webpack-ui" "5.18.0" "@types/node" "^12.20.15" "@types/webpack" "^5.0.0" open "^8.2.1" -"@statoscope/webpack-stats-extension-compressed@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.14.1.tgz#bc8ea1167e61160b7fe00a4f36d395e52cd00582" - integrity sha512-fg0m30TqM1vQx0aEkyILasvmtYxTmcR0mEWsK3bR7sp+lmLP+GvbGhWoQ51GTmiVofpO83yjvAlc1YhvLAEVWA== +"@statoscope/webpack-stats-extension-compressed@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.18.0.tgz#9173802f492cfeb53c406bd098135521618a9b91" + integrity sha512-3pD0XqOr6McVHAt6EEtymygTEUhEIHGy/kC06iTO6/r2nKCp4AFto7SKlorMuc2nZICpgiz7Dy/THNzVwrdKOA== dependencies: "@statoscope/stats" "5.14.1" "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/webpack-model" "5.14.1" + "@statoscope/webpack-model" "5.18.0" "@types/webpack" "^5.0.0" -"@statoscope/webpack-stats-extension-package-info@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.14.1.tgz#527616db566f913a1bee46482e0636cbad389e5a" - integrity sha512-J5turi/cQSxttPgusMt1ppefBdk4a7hocpVmdO7myv+v5S996RVFrmKnyZeOavp15PivA4LytJgO8Oq6/WORMA== +"@statoscope/webpack-stats-extension-package-info@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.18.0.tgz#0c418bdd19ef3ec1f46b2d19a98c86f6a17cf993" + integrity sha512-9u6NFdFZ5EkiLoOihAITS2/qNuL9e50vIfqQey9osxMevsA4fHk/xDxK66a3PTT45JXPdGnZlGZ77+KyghJrxw== dependencies: "@statoscope/stats" "5.14.1" "@statoscope/stats-extension-package-info" "5.14.1" - "@statoscope/webpack-model" "5.14.1" + "@statoscope/webpack-model" "5.18.0" "@types/webpack" "^5.0.0" -"@statoscope/webpack-ui@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-ui/-/webpack-ui-5.14.1.tgz#fbbd01bb43bd3071ed5b4a997457a8432314faca" - integrity sha512-lKiA9g7UaBZDA1Yo8eENjby2PXHB21lExNQ/nBbg4jjIqXGZ2+lU7mMYXhxw1n4PiVOdL7GrhSWlT6ByAzB3vw== +"@statoscope/webpack-ui@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@statoscope/webpack-ui/-/webpack-ui-5.18.0.tgz#0afb5f074d2bdaffff78a80381765b6167e22ba9" + integrity sha512-9UrAyJtcUSIfW2awDDxQr4Z06ktmBBtXkCHyecE6HQt+O5OJe6hr0pQAlNFw/rDqDhpAexpJGpnsWJZQSLeIqQ== dependencies: "@statoscope/types" "5.14.1" highcharts "^9.2.2" @@ -793,9 +782,9 @@ "@types/estree" "*" "@types/eslint@*": - version "7.28.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.1.tgz#50b07747f1f84c2ba8cd394cf0fe0ba07afce320" - integrity sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg== + version "7.28.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.2.tgz#0ff2947cdd305897c52d5372294e8c76f351db68" + integrity sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -863,20 +852,15 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^16.11.2": - version "16.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.2.tgz#31c249c136c3f9b35d4b60fb8e50e01a1f0cc9a5" - integrity sha512-w34LtBB0OkDTs19FQHXy4Ig/TOXI4zqvXS2Kk1PAsRKZ0I+nik7LlMYxckW0tSNGtvWmzB+mrCTbuEjuB9DVsw== +"@types/node@*", "@types/node@^16.11.6": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== "@types/node@^12.20.15": - version "12.20.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.33.tgz#24927446e8b7669d10abacedd16077359678f436" - integrity sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "12.20.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" + integrity sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -924,13 +908,13 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.1.0.tgz#381c188dfab12f7a2c7b6a8ba2402d6273eadeaa" - integrity sha512-bekODL3Tqf36Yz8u+ilha4zGxL9mdB6LIsIoMAvvC5FAuWo4NpZYXtCbv7B2CeR1LhI/lLtLk+q4tbtxuoVuCg== +"@typescript-eslint/eslint-plugin@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.0.tgz#a55ae72d28ffeb6badd817fe4566c9cced1f5e29" + integrity sha512-ARUEJHJrq85aaiCqez7SANeahDsJTD3AEua34EoQN9pHS6S5Bq9emcIaGGySt/4X2zSi+vF5hAH52sEen7IO7g== dependencies: - "@typescript-eslint/experimental-utils" "5.1.0" - "@typescript-eslint/scope-manager" "5.1.0" + "@typescript-eslint/experimental-utils" "5.3.0" + "@typescript-eslint/scope-manager" "5.3.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -938,60 +922,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.1.0", "@typescript-eslint/experimental-utils@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.1.0.tgz#918a1a3d30404cc1f8edcfdf0df200804ef90d31" - integrity sha512-ovE9qUiZMOMgxQAESZsdBT+EXIfx/YUYAbwGUI6V03amFdOOxI9c6kitkgRvLkJaLusgMZ2xBhss+tQ0Y1HWxA== +"@typescript-eslint/experimental-utils@5.3.0", "@typescript-eslint/experimental-utils@^5.0.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz#ee56b4957547ed2b0fc7451205e41502e664f546" + integrity sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.1.0" - "@typescript-eslint/types" "5.1.0" - "@typescript-eslint/typescript-estree" "5.1.0" + "@typescript-eslint/scope-manager" "5.3.0" + "@typescript-eslint/types" "5.3.0" + "@typescript-eslint/typescript-estree" "5.3.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.1.0.tgz#6c7f837d210d2bc0a811e7ea742af414f4e00908" - integrity sha512-vx1P+mhCtYw3+bRHmbalq/VKP2Y3gnzNgxGxfEWc6OFpuEL7iQdAeq11Ke3Rhy8NjgB+AHsIWEwni3e+Y7djKA== +"@typescript-eslint/parser@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.0.tgz#7879f15e26d370ed3f653fb7dd06479531ed3ab9" + integrity sha512-rKu/yAReip7ovx8UwOAszJVO5MgBquo8WjIQcp1gx4pYQCwYzag+I5nVNHO4MqyMkAo0gWt2gWUi+36gWAVKcw== dependencies: - "@typescript-eslint/scope-manager" "5.1.0" - "@typescript-eslint/types" "5.1.0" - "@typescript-eslint/typescript-estree" "5.1.0" + "@typescript-eslint/scope-manager" "5.3.0" + "@typescript-eslint/types" "5.3.0" + "@typescript-eslint/typescript-estree" "5.3.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.1.0.tgz#6f1f26ad66a8f71bbb33b635e74fec43f76b44df" - integrity sha512-yYlyVjvn5lvwCL37i4hPsa1s0ORsjkauhTqbb8MnpvUs7xykmcjGqwlNZ2Q5QpoqkJ1odlM2bqHqJwa28qV6Tw== +"@typescript-eslint/scope-manager@5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz#97d0ccc7c9158e89e202d5e24ce6ba49052d432e" + integrity sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A== dependencies: - "@typescript-eslint/types" "5.1.0" - "@typescript-eslint/visitor-keys" "5.1.0" + "@typescript-eslint/types" "5.3.0" + "@typescript-eslint/visitor-keys" "5.3.0" -"@typescript-eslint/types@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.1.0.tgz#a8a75ddfc611660de6be17d3ad950302385607a9" - integrity sha512-sEwNINVxcB4ZgC6Fe6rUyMlvsB2jvVdgxjZEjQUQVlaSPMNamDOwO6/TB98kFt4sYYfNhdhTPBEQqNQZjMMswA== +"@typescript-eslint/types@5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.0.tgz#af29fd53867c2df0028c57c36a655bd7e9e05416" + integrity sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg== -"@typescript-eslint/typescript-estree@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.1.0.tgz#132aea34372df09decda961cb42457433aa6e83d" - integrity sha512-SSz+l9YrIIsW4s0ZqaEfnjl156XQ4VRmJsbA0ZE1XkXrD3cRpzuZSVCyqeCMR3EBjF27IisWakbBDGhGNIOvfQ== +"@typescript-eslint/typescript-estree@5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz#4f68ddd46dc2983182402d2ab21fb44ad94988cf" + integrity sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug== dependencies: - "@typescript-eslint/types" "5.1.0" - "@typescript-eslint/visitor-keys" "5.1.0" + "@typescript-eslint/types" "5.3.0" + "@typescript-eslint/visitor-keys" "5.3.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.1.0.tgz#e01a01b27eb173092705ae983aa1451bd1842630" - integrity sha512-uqNXepKBg81JVwjuqAxYrXa1Ql/YDzM+8g/pS+TCPxba0wZttl8m5DkrasbfnmJGHs4lQ2jTbcZ5azGhI7kK+w== +"@typescript-eslint/visitor-keys@5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz#a6258790f3b7b2547f70ed8d4a1e0c3499994523" + integrity sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw== dependencies: - "@typescript-eslint/types" "5.1.0" + "@typescript-eslint/types" "5.3.0" eslint-visitor-keys "^3.0.0" "@webassemblyjs/ast@1.11.1": @@ -1304,11 +1288,6 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" - integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1411,14 +1390,14 @@ browser-process-hrtime@^1.0.0: integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.17.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.4.tgz#72e2508af2a403aec0a49847ef31bd823c57ead4" - integrity sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ== + version "4.17.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.6.tgz#c76be33e7786b497f66cad25a73756c8b938985d" + integrity sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw== dependencies: - caniuse-lite "^1.0.30001265" - electron-to-chromium "^1.3.867" + caniuse-lite "^1.0.30001274" + electron-to-chromium "^1.3.886" escalade "^3.1.1" - node-releases "^2.0.0" + node-releases "^2.0.1" picocolors "^1.0.0" bs-logger@0.x: @@ -1440,11 +1419,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -builtin-modules@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - bytes-iec@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" @@ -1483,10 +1457,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001265: - version "1.0.30001270" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz#cc9c37a4ec5c1a8d616fc7bace902bb053b0cdea" - integrity sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001274: + version "1.0.30001278" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff" + integrity sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1497,7 +1471,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.2: +chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1515,13 +1489,13 @@ charenc@0.0.2: resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= -check-dts@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.1.tgz#1c31e4d4b8f05242baf03fd99bd71f0551f82933" - integrity sha512-2PR5bO3NBD2hQWNf+7/ATK2nTcauuPv+mQJxfasDnhLGZlhbZXpqz+FA0aXo8nScON1QqU266fSObEJa7+jq7Q== +check-dts@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.3.tgz#c06f625c97131ce37c875998b2514ef888b265ea" + integrity sha512-whRqACQPsdv+DP7shkdK3u6boMzDagz+VqdIwAcfYQFd8NDQfMhPnsLMK/sAWm2QK0S1FKJQZZHN5zH/CRW/FA== dependencies: fast-glob "^3.2.7" - nanospinner "^0.3.0" + nanospinner "^0.4.0" picocolors "^1.0.0" vfile-location "^4.0.1" @@ -1571,13 +1545,6 @@ clean-publish@^3.4.2: hosted-git-info "^4.0.2" lilconfig "^2.0.3" -clean-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" - integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc= - dependencies: - escape-string-regexp "^1.0.5" - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -1607,6 +1574,11 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1641,7 +1613,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.0.1, colord@^2.6: +colord@^2.9.1: version "2.9.1" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== @@ -1651,6 +1623,11 @@ colorette@^1.4.0: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== +colorette@^2.0.16: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1663,20 +1640,15 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commander@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.2.0.tgz#37fe2bde301d87d47a53adeff8b5915db1381ca8" - integrity sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA== + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== concat-map@0.0.1: version "0.0.1" @@ -1734,10 +1706,10 @@ css-declaration-sorter@^6.0.3: dependencies: timsort "^0.3.0" -css-loader@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.4.0.tgz#01c57ea776024e18ca193428dcad3ff6b42a0130" - integrity sha512-Dlt6qfsxI/w1vU0r8qDd4BtMPxWqJeY5qQU7SmmZfvbpe6Xl18McO4GhyaMLns24Y2VNPiZwJPQ8JSbg4qvQLw== +css-loader@^6.5.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" + integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ== dependencies: icss-utils "^5.1.0" postcss "^8.2.15" @@ -1790,16 +1762,16 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2" - integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ== +cssnano-preset-default@^5.1.5: + version "5.1.5" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.5.tgz#6effb7175ee5d296f95330e137587e27ee974d44" + integrity sha512-fF00UI+d3PWkGfMd62geqmoUe5h+LOhGE2GH4Fqq3beNKdCU1LWwLUyIcu4/A72lWv0737cHey5zhhWw3rW0sA== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" postcss-calc "^8.0.0" - postcss-colormin "^5.2.0" - postcss-convert-values "^5.0.1" + postcss-colormin "^5.2.1" + postcss-convert-values "^5.0.2" postcss-discard-comments "^5.0.1" postcss-discard-duplicates "^5.0.1" postcss-discard-empty "^5.0.1" @@ -1807,7 +1779,7 @@ cssnano-preset-default@^5.1.4: postcss-merge-longhand "^5.0.2" postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.2" + postcss-minify-gradients "^5.0.3" postcss-minify-params "^5.0.1" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" @@ -1822,7 +1794,7 @@ cssnano-preset-default@^5.1.4: postcss-ordered-values "^5.0.2" postcss-reduce-initial "^5.0.1" postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.2" + postcss-svgo "^5.0.3" postcss-unique-selectors "^5.0.1" cssnano-utils@^2.0.1: @@ -1831,11 +1803,11 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.6: - version "5.0.8" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" - integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== + version "5.0.9" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.9.tgz#bd03168835c0883c16754085704f57861a32d99c" + integrity sha512-Y4olTKBKsPKl5izpcXHRDiB/1rVdbIDM4qVXgEKBt466kYT42SEEsnCYOQFFXzEkUYV8pJNCII9JKzb8KfDk+g== dependencies: - cssnano-preset-default "^5.1.4" + cssnano-preset-default "^5.1.5" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -2004,10 +1976,10 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -electron-to-chromium@^1.3.867: - version "1.3.876" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.876.tgz#fe6f65c9740406f4aa69f10faa8e1d79b81bdf34" - integrity sha512-a6LR4738psrubCtGx5HxM/gNlrIsh4eFTNnokgOqvQo81GWd07lLcOjITkAXn2y4lIp18vgS+DGnehj+/oEAxQ== +electron-to-chromium@^1.3.886: + version "1.3.889" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz#0b7c6f7628559592d5406deda281788f37107790" + integrity sha512-suEUoPTD1mExjL9TdmH7cvEiWJVM2oEiAi+Y1p0QKxI2HcRlT44qDTP2c1aZmVwRemIPYOpxmV7CxQCOWcm4XQ== emittery@^0.8.1: version "0.8.1" @@ -2039,16 +2011,6 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2101,11 +2063,6 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2182,10 +2139,10 @@ eslint-plugin-import@^2.25.2: resolve "^1.20.0" tsconfig-paths "^3.11.0" -eslint-plugin-jest@^25.2.2: - version "25.2.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.2.2.tgz#aada85113268e79d4e7423f8ad4e1b740f112e71" - integrity sha512-frn5yhOF60U4kcqozO3zKTNZQUk+mfx037XOy2iiYL8FhorEkuCuL3/flzKcY1ECDP2WYT9ydmvlO3fRW9o4mg== +eslint-plugin-jest@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.2.3.tgz#7a841eca91b4e21f31fe0a5403f55bc7779dd7b3" + integrity sha512-Yoa0at3euTjERDvPGPWiItY1uuqKYQ5Ov2SmkSLmKRq9OFiVdEehw0rWuK4PA538k7CNqnvmkztjAB9l+HJ7kQ== dependencies: "@typescript-eslint/experimental-utils" "^5.0.0" @@ -2201,10 +2158,10 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prefer-let@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-1.1.0.tgz#a5eb401a5f6b6995883bac7ebafb7fe5d6e9bedb" - integrity sha512-d7IhB8FZCtnCNQ20e4UTETPJNF3mIES3ZYan9RK/K3sIkEfuL3NfF9t5gxoNRFjeSkhlGpJmZdLGLRGPmKgVfQ== +eslint-plugin-prefer-let@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-3.0.1.tgz#bb9e3af2c3df2df5d7334f35ac7478d794d97215" + integrity sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w== dependencies: requireindex "~1.2.0" @@ -2213,34 +2170,6 @@ eslint-plugin-promise@^5.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz#9674d11c056d1bafac38e4a3a9060be740988d90" integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA== -eslint-plugin-security@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz#d4f314484a80b1b613b8c8886e84f52efe1526c2" - integrity sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA== - dependencies: - safe-regex "^1.1.0" - -eslint-plugin-unicorn@^37.0.1: - version "37.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-37.0.1.tgz#a2292dc302ffc0be1791e6ebbb4ae93242833f11" - integrity sha512-E1jq5u9ojnadisJcPi+hMXTGSiIzkIUMDvWsBudsCGXvKUB2aNSU2TcfyW2/jAS5A4ryBXfzxLykMxX1EdluSQ== - dependencies: - "@babel/helper-validator-identifier" "^7.14.9" - ci-info "^3.2.0" - clean-regexp "^1.0.0" - eslint-template-visitor "^2.3.2" - eslint-utils "^3.0.0" - esquery "^1.4.0" - indent-string "4" - is-builtin-module "^3.1.0" - lodash "^4.17.21" - pluralize "^8.0.0" - read-pkg-up "^7.0.1" - regexp-tree "^0.1.23" - safe-regex "^2.1.1" - semver "^7.3.5" - strip-indent "^3.0.0" - eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -2257,17 +2186,6 @@ eslint-scope@^6.0.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-template-visitor@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz#b52f96ff311e773a345d79053ccc78275bbc463d" - integrity sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA== - dependencies: - "@babel/core" "^7.12.16" - "@babel/eslint-parser" "^7.12.16" - eslint-visitor-keys "^2.0.0" - esquery "^1.3.1" - multimap "^1.1.0" - eslint-utils@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -2287,7 +2205,7 @@ eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: +eslint-visitor-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== @@ -2297,10 +2215,10 @@ eslint-visitor-keys@^3.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186" integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q== -eslint@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.0.1.tgz#3610e7fe4a05c2154669515ca60835a76a19f700" - integrity sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA== +eslint@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.1.0.tgz#00f1f7dbf4134f26588e6c9f2efe970760f64664" + integrity sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw== dependencies: "@eslint/eslintrc" "^1.0.3" "@humanwhocodes/config-array" "^0.6.0" @@ -2355,7 +2273,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.3.1, esquery@^1.4.0: +esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -2375,9 +2293,9 @@ estraverse@^4.1.1: integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" @@ -2421,11 +2339,6 @@ expect@^27.3.1: jest-message-util "^27.3.1" jest-regex-util "^27.0.6" -eyo-kernel@^2.5.6: - version "2.5.6" - resolved "https://registry.yarnpkg.com/eyo-kernel/-/eyo-kernel-2.5.6.tgz#aedd0e971943db3f5f282b4081f75b2983e7b606" - integrity sha512-lAcX7HdPLlNB8Ia6Uvq2hFMx9S5VQSfAXkjBZJi9OXzFC1exDvX9lzk2YeQVB9EKufhlHlgeiD26mzg5q42Rgg== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2607,7 +2520,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -2624,10 +2537,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.11.0, globals@^13.6.0, globals@^13.9.0: - version "13.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" - integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== +globals@^13.6.0, globals@^13.9.0: + version "13.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" + integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== dependencies: type-fest "^0.20.2" @@ -2690,14 +2603,9 @@ has@^1.0.3: function-bind "^1.1.1" highcharts@^9.2.2: - version "9.3.0" - resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.3.0.tgz#999496c8af677d5f08e41e2e708d3eb7baf56640" - integrity sha512-nQ7yW5ni7wFiPgDN2IWrS6o6NjL1gK/OhZjrdpyB3FQuefMkTQngygP+JqZFMx7PDrP3YAvfejx0M5IgkC01ow== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + version "9.3.1" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.3.1.tgz#dbeb39c2e5b298b02ccc459103f5f1c8daea1264" + integrity sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw== hosted-git-info@^4.0.2: version "4.0.2" @@ -2758,9 +2666,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + version "5.1.9" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" + integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -2783,7 +2691,7 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@4, indent-string@^4.0.0: +indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== @@ -2852,13 +2760,6 @@ is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-builtin-module@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" - integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== - dependencies: - builtin-modules "^3.0.0" - is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" @@ -2998,7 +2899,7 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -istanbul-lib-coverage@^3.0.0: +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== @@ -3014,14 +2915,14 @@ istanbul-lib-instrument@^4.0.3: semver "^6.3.0" istanbul-lib-instrument@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.0.4.tgz#e976f2aa66ebc6737f236d3ab05b76e36f885c80" - integrity sha512-W6jJF9rLGEISGoCyXRqa/JCGQGmmxPO10TMu7izaUTynxvBvTjqzAIIGCK9USBmIbQAaSWD6XJPrM9Pv5INknw== + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" + istanbul-lib-coverage "^3.2.0" semver "^6.3.0" istanbul-lib-report@^3.0.0: @@ -3050,11 +2951,6 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -isutf8@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-3.1.1.tgz#3f2ac77f49affb23ae54813da1a4ab44aadf1d7b" - integrity sha512-5P2FgGyDsSnRMaLPVGVIgYgMxj50lBujvi5lsVgP1qvMWhxvkmVBWtPcIKgXw9j+/RnmxSvHg3e9tbDnPxx6dw== - jest-changed-files@^27.3.0: version "27.3.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.3.0.tgz#22a02cc2b34583fc66e443171dc271c0529d263c" @@ -3612,17 +3508,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== - dependencies: - uc.micro "^1.0.1" - -lint-staged@^11.2.3: - version "11.2.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.3.tgz#fc3f4569cc4f46553309dfc1447b8aef69f744fb" - integrity sha512-Tfmhk8O2XFMD25EswHPv+OYhUjsijy5D7liTdxeXvhG2rsadmOLFtyj8lmlfoFFXY8oXWAIOKpoI+lJe1DB1mw== +lint-staged@^11.2.6: + version "11.2.6" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" + integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== dependencies: cli-truncate "2.1.0" colorette "^1.4.0" @@ -3640,15 +3529,16 @@ lint-staged@^11.2.3: supports-color "8.1.1" listr2@^3.12.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.2.tgz#2d55cc627111603ad4768a9e87c9c7bb9b49997e" - integrity sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A== + version "3.13.3" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.3.tgz#d8f6095c9371b382c9b1c2bc33c5941d8e177f11" + integrity sha512-VqAgN+XVfyaEjSaFewGPcDs5/3hBbWVaX1VgWv2f52MF7US45JuARlArULctiB44IIcEk3JF7GtoFCLqEdeuPA== dependencies: cli-truncate "^2.1.0" - colorette "^1.4.0" + clone "^2.1.2" + colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" - rxjs "^6.6.7" + rxjs "^7.4.0" through "^2.3.8" wrap-ansi "^7.0.0" @@ -3687,7 +3577,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.21, lodash@^4.7.0: +lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3721,23 +3611,12 @@ make-error@1.x: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -markdown-it@^12.2.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.2.0.tgz#091f720fd5db206f80de7a8d1f1a7035fd0d38db" - integrity sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg== +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: - argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" + tmpl "1.0.5" md5@^2.3.0: version "2.3.0" @@ -3753,11 +3632,6 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3793,11 +3667,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -3830,30 +3699,20 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multimap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" - integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== - -nanocolors@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" - integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== - nanodelay@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== -nanoid@^3.1.28, nanoid@^3.1.30: +nanoid@^3.1.30: version "3.1.30" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== -nanospinner@^0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/nanospinner/-/nanospinner-0.3.2.tgz#501ac31b48bf47be8e25fc07543b5fe620a742e8" - integrity sha512-ToZuxmiRuuNe3McB7CVzP7PCOhzWAy4qx6ndb5QWxJFp6INdg3n0mVm8f7HR6Fz8raRg3/vzglIZYrOSna8vkg== +nanospinner@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/nanospinner/-/nanospinner-0.4.0.tgz#f544f71fb990423528b8f6dd6c26134cf9f21659" + integrity sha512-FhxiB9PcEztMw6XfQDSLJBMlmN4n7B2hl/oiK4Hy9479r1+df0i2099DgcEx+m6yBfBJVUuKpILvP8fM3rK3Sw== dependencies: picocolors "^1.0.0" @@ -3867,13 +3726,6 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-fetch@^2.6.2: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== - dependencies: - whatwg-url "^5.0.0" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -3884,21 +3736,11 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^2.0.0: +node-releases@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -3972,9 +3814,9 @@ onetime@^5.1.0, onetime@^5.1.2: mimic-fn "^2.1.0" open@^8.2.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.3.0.tgz#fdef1cdfe405e60dec8ebd18889e7e812f39c59f" - integrity sha512-7INcPWb1UcOwSQxAXTnBJ+FxVV4MPs/X++FWWBtgY69/J5lc+tCteMt/oFK1MnkyHC4VILLa9ntmwKTwDR4Q9w== + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" @@ -4063,7 +3905,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^5.0.0, parse-json@^5.2.0: +parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -4108,11 +3950,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -4151,11 +3988,6 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - postcss-calc@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" @@ -4164,20 +3996,20 @@ postcss-calc@^8.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.2" -postcss-colormin@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88" - integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== +postcss-colormin@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" + integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" - colord "^2.0.1" + colord "^2.9.1" postcss-value-parser "^4.1.0" -postcss-convert-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" - integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== +postcss-convert-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" + integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== dependencies: postcss-value-parser "^4.1.0" @@ -4228,12 +4060,12 @@ postcss-minify-font-values@^5.0.1: dependencies: postcss-value-parser "^4.1.0" -postcss-minify-gradients@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5" - integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ== +postcss-minify-gradients@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" + integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== dependencies: - colord "^2.6" + colord "^2.9.1" cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" @@ -4391,13 +4223,13 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f" - integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== +postcss-svgo@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" + integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== dependencies: postcss-value-parser "^4.1.0" - svgo "^2.3.0" + svgo "^2.7.0" postcss-unique-selectors@^5.0.1: version "5.0.1" @@ -4414,9 +4246,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.2.15, postcss@^8.3.5: - version "8.3.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.10.tgz#4d614e108ccc69c65c2f6dc6cec23dd5c85b73af" - integrity sha512-YYfvfUdWx+ECpr5Hgc6XRfsaux8LksL5ey8qTtWiuRXOpOF1YYMwAySdh0nSmwhZAFvvJ6rgiIkKVShu4x2T1Q== + version "8.3.11" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" + integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== dependencies: nanoid "^3.1.30" picocolors "^1.0.0" @@ -4432,11 +4264,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== - pretty-format@^27.0.0, pretty-format@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" @@ -4487,25 +4314,6 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -4513,11 +4321,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -regexp-tree@^0.1.23, regexp-tree@~0.1.1: - version "0.1.24" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" - integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== - regexpp@^3.0.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" @@ -4560,7 +4363,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.20.0: +resolve@^1.10.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -4576,11 +4379,6 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -4600,12 +4398,12 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.6.7: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +rxjs@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" + integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== dependencies: - tslib "^1.9.0" + tslib "~2.1.0" safe-buffer@^5.1.0: version "5.2.1" @@ -4617,30 +4415,11 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - saxes@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" @@ -4662,11 +4441,6 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" @@ -4712,28 +4486,28 @@ signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== -simple-git-hooks@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.6.1.tgz#0843d7ad7d3be3bb877b86f218d0abea87611584" - integrity sha512-nvqaNfgvcjN3cGSYJSdjwB+tP8YKRCyvuUvQ24luIjIpGhUCPpZDTJ+p+hcJiwc0lZlTCl0NayfBVDoIMG7Jpg== +simple-git-hooks@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" + integrity sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ== sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-6.0.3.tgz#980e91993a409cb80dd4776fe3e2867afa4d55d0" - integrity sha512-bvZuNG1dPJ8GTkFq3lXkW8H1+ybVV3D7GecowAGlfbNO2T1Mcvy8kCoCpwVOWnq1wV+TraRUtExnQzIyyV94NQ== +size-limit@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-6.0.4.tgz#f3345206d8c25485d0d31ea41622761a3a1aad93" + integrity sha512-zo/9FrXzetvZGFJnd1LC4mR9GvirElALlerMY3EOwEGdW7Lwgl2WT0hTRC2559ZR2PGfRpnXEgAFkayGAJOebg== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" globby "^11.0.4" lilconfig "^2.0.3" - nanospinner "^0.3.0" - picocolors "^0.2.1" + nanospinner "^0.4.0" + picocolors "^1.0.0" slash@^3.0.0: version "3.0.0" @@ -4786,32 +4560,6 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" - integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== - spinnies@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/spinnies/-/spinnies-0.5.1.tgz#6ac88455d9117c7712d52898a02c969811819a7e" @@ -4914,22 +4662,15 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.0.tgz#d66ea95fc50b22f8b79b69a9e414760fcf58d8d8" - integrity sha512-szANub7ksJtQioJYtpbWwh1hUl99uK15n5HDlikeCRil/zYMZgSxucHddyF/4A3qJMUiAjPhFowrrQuNMA7jwQ== +style-loader@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" + integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== stylehacks@^5.0.1: version "5.0.1" @@ -4968,17 +4709,17 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -svgo@^2.3.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.7.0.tgz#e164cded22f4408fe4978f082be80159caea1e2d" - integrity sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w== +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" css-select "^4.1.3" css-tree "^1.1.3" csso "^4.2.0" - nanocolors "^0.1.12" + picocolors "^1.0.0" stable "^0.1.8" symbol-tree@^3.2.4: @@ -5049,7 +4790,7 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tmpl@1.0.x: +tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== @@ -5082,11 +4823,6 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - ts-jest@^27.0.7: version "27.0.7" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.7.tgz#fb7c8c8cb5526ab371bc1b23d06e745652cca2d0" @@ -5111,11 +4847,16 @@ tsconfig-paths@^3.11.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -5152,16 +4893,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -5174,11 +4905,6 @@ typescript@^4.4.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -5237,14 +4963,6 @@ v8-to-istanbul@^8.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - vendors@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" @@ -5267,9 +4985,9 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.1.1.tgz#d71576553720f73123b72f4b100d9ac95bc9164d" - integrity sha512-sfI+3MnGUodvAE2s3hXCcJxhcymXQgekdgqNf9WMcmWtZU65tPMaml5eGYREJfMJGHr4/0GPZgrN3UMgWjHXSQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.2.0.tgz#a32a646ff9251c274dbe8675644a39031025b369" + integrity sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -5291,11 +5009,11 @@ w3c-xmlserializer@^2.0.0: xml-name-validator "^3.0.0" walker@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: - makeerror "1.0.x" + makeerror "1.0.12" watchpack@^2.2.0: version "2.2.0" @@ -5305,11 +5023,6 @@ watchpack@^2.2.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -5325,10 +5038,10 @@ webpack-sources@^3.2.0: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== -webpack@^5, webpack@^5.56.0: - version "5.59.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.59.1.tgz#60c77e9aad796252153d4d7ab6b2d4c11f0e548c" - integrity sha512-I01IQV9K96FlpXX3V0L4nvd7gb0r7thfuu1IfT2P4uOHOA77nKARAKDYGe/tScSHKnffNIyQhLC8kRXzY4KEHQ== +webpack@^5, webpack@^5.61.0: + version "5.62.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.62.1.tgz#06f09b56a7b1bb13ed5137ad4b118358a90c9505" + integrity sha512-jNLtnWChS2CMZ7vqWtztv0G6fYB5hz11Zsadp5tE7e4/66zVDj7/KUeQZOsOl8Hz5KrLJH1h2eIDl6AnlyE12Q== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -5367,14 +5080,6 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" @@ -5450,19 +5155,6 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" @@ -5483,11 +5175,6 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yandex-speller@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/yandex-speller/-/yandex-speller-4.1.0.tgz#ccdd565705512934ccdcae2df332491a4834761c" - integrity sha512-z13o3GCMxm5g/MU28JCIdu9SXsAoShroqAheFciS3K0wa2JRkA1y5qASZuavJuaCl0KG5RhTjo8gdkbyp6QC+w== - yargs-parser@20.x, yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" @@ -5506,28 +5193,6 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yaspeller@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/yaspeller/-/yaspeller-7.2.0.tgz#0bd9d5423d8319466b6b31ca721cf1d5d436f755" - integrity sha512-remrayG57ND8qsV2mRbULZLl388iZ+XgslGZoh9U5wkaoEVGm30VpzOJAsSdPXK8ecQCF4jLM7MiQ+JfGrx06w== - dependencies: - async "^3.2.1" - chalk "^4.1.2" - commander "^3.0.0" - cosmiconfig "^7.0.1" - entities "^3.0.1" - escape-html "^1.0.3" - eyo-kernel "^2.5.6" - glob "^7.2.0" - isutf8 "^3.1.1" - markdown-it "^12.2.0" - minimatch "^3.0.4" - node-fetch "^2.6.2" - parse-json "^5.2.0" - strip-json-comments "^3.1.1" - xml2js "^0.4.23" - yandex-speller "^4.1.0" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 91bc74e1e08dc76cf4cc81731aecc6d3508c1bf1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Nov 2021 20:47:57 +0100 Subject: [PATCH 2380/3047] Add Node.js 17 to CI --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d80d24823..e65f7a2f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 17 cache: yarn - name: Install dependencies run: yarn --frozen-lockfile @@ -25,6 +25,7 @@ jobs: strategy: matrix: node-version: + - 16 - 14 - 12 - 10 From e1708eb6b299e7c26a03ec12eb921bd494d2e7ff Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Nov 2021 20:49:43 +0100 Subject: [PATCH 2381/3047] Fix CI job name --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e65f7a2f3..1c03e5b86 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ on: pull_request: jobs: full: - name: Node.js 16 Full + name: Node.js 17 Full runs-on: ubuntu-latest steps: - name: Checkout the repository From f7de6992f1ac81337303610038815b68586b4679 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Nov 2021 20:53:11 +0100 Subject: [PATCH 2382/3047] Speed up pre-commit hook --- package.json | 8 +- yarn.lock | 270 +++------------------------------------------------ 2 files changed, 15 insertions(+), 263 deletions(-) diff --git a/package.json b/package.json index ea45181c6..8310d2a3a 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,6 @@ "eslint-plugin-promise": "^5.1.1", "fs-extra": "^10.0.0", "jest": "^27.3.1", - "lint-staged": "^11.2.6", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", @@ -99,13 +98,8 @@ "ts-jest": "^27.0.7", "typescript": "^4.4.4" }, - "lint-staged": { - "*.js": "prettier --write", - "*.ts": "prettier --write", - "package.json": "./test/version.js" - }, "simple-git-hooks": { - "pre-commit": "npx lint-staged" + "pre-commit": "./test/version.js" }, "prettier": { "arrowParens": "avoid", diff --git a/yarn.lock b/yarn.lock index d9d1da6ca..f76dcab9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== @@ -862,11 +862,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" integrity sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA== -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - "@types/prettier@^2.1.5": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" @@ -922,7 +917,7 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.3.0", "@typescript-eslint/experimental-utils@^5.0.0": +"@typescript-eslint/experimental-utils@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz#ee56b4957547ed2b0fc7451205e41502e664f546" integrity sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w== @@ -1154,14 +1149,6 @@ agent-base@6: dependencies: debug "4" -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -1197,7 +1184,7 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -1283,11 +1270,6 @@ array.prototype.flat@^1.2.5: define-properties "^1.1.3" es-abstract "^1.19.0" -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1545,26 +1527,13 @@ clean-publish@^3.4.2: hosted-git-info "^4.0.2" lilconfig "^2.0.3" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.0.0, cli-cursor@^3.1.0: +cli-cursor@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" -cli-truncate@2.1.0, cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1574,11 +1543,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1618,16 +1582,6 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== -colorette@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== - -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1645,11 +1599,6 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1669,17 +1618,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1999,7 +1937,7 @@ enhanced-resolve@^5.8.3: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -2011,13 +1949,6 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" @@ -2139,13 +2070,6 @@ eslint-plugin-import@^2.25.2: resolve "^1.20.0" tsconfig-paths "^3.11.0" -eslint-plugin-jest@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.2.3.tgz#7a841eca91b4e21f31fe0a5403f55bc7779dd7b3" - integrity sha512-Yoa0at3euTjERDvPGPWiItY1uuqKYQ5Ov2SmkSLmKRq9OFiVdEehw0rWuK4PA538k7CNqnvmkztjAB9l+HJ7kQ== - dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" - eslint-plugin-node@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" @@ -2307,7 +2231,7 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0, execa@^5.1.1: +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -2478,11 +2402,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -2691,11 +2610,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2723,11 +2637,6 @@ is-absolute-url@^3.0.3: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -2823,11 +2732,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -2841,11 +2745,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -3429,11 +3328,6 @@ json-parse-better-errors@^1.0.2: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -3503,45 +3397,6 @@ lilconfig@^2.0.3: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -lint-staged@^11.2.6: - version "11.2.6" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" - integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== - dependencies: - cli-truncate "2.1.0" - colorette "^1.4.0" - commander "^8.2.0" - cosmiconfig "^7.0.1" - debug "^4.3.2" - enquirer "^2.3.6" - execa "^5.1.1" - listr2 "^3.12.2" - micromatch "^4.0.4" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "3.3.0" - supports-color "8.1.1" - -listr2@^3.12.2: - version "3.13.3" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.3.tgz#d8f6095c9371b382c9b1c2bc33c5941d8e177f11" - integrity sha512-VqAgN+XVfyaEjSaFewGPcDs5/3hBbWVaX1VgWv2f52MF7US45JuARlArULctiB44IIcEk3JF7GtoFCLqEdeuPA== - dependencies: - cli-truncate "^2.1.0" - clone "^2.1.2" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^7.4.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -3582,16 +3437,6 @@ lodash@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3881,13 +3726,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -3905,16 +3743,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -3981,13 +3809,6 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - postcss-calc@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" @@ -4398,13 +4219,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== - dependencies: - tslib "~2.1.0" - safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4436,11 +4250,6 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" @@ -4514,24 +4323,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" @@ -4586,11 +4377,6 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -4624,15 +4410,6 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -stringify-object@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -4680,13 +4457,6 @@ stylehacks@^5.0.1: browserslist "^4.16.0" postcss-selector-parser "^6.0.4" -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4701,6 +4471,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -4780,11 +4557,6 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" @@ -4852,11 +4624,6 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -5112,15 +4879,6 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -5170,7 +4928,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.10.2: +yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== From 7cccfac2a5d0b143186df86dd72591ec0ce6135b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 5 Nov 2021 20:53:18 +0100 Subject: [PATCH 2383/3047] Fix LazyResult sync methods warning --- lib/lazy-result.d.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/lazy-result.d.ts b/lib/lazy-result.d.ts index 9da0fb5a1..a5142345e 100644 --- a/lib/lazy-result.d.ts +++ b/lib/lazy-result.d.ts @@ -89,8 +89,9 @@ export default class LazyResult implements PromiseLike { * * This property will only work with synchronous plugins. * If the processor contains any asynchronous plugins - * it will throw an error. This is why this method is only - * for debug purpose, you should always use `LazyResult#then`. + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. */ get css(): string @@ -100,8 +101,9 @@ export default class LazyResult implements PromiseLike { * * This property will only work with synchronous plugins. * If the processor contains any asynchronous plugins - * it will throw an error. This is why this method is only - * for debug purpose, you should always use `LazyResult#then`. + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. */ get content(): string @@ -111,8 +113,9 @@ export default class LazyResult implements PromiseLike { * * This property will only work with synchronous plugins. * If the processor contains any asynchronous plugins - * it will throw an error. This is why this method is only - * for debug purpose, you should always use `LazyResult#then`. + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. */ get map(): SourceMap @@ -123,8 +126,7 @@ export default class LazyResult implements PromiseLike { * This property will only work with synchronous plugins. If the processor * contains any asynchronous plugins it will throw an error. * - * This is why this method is only for debug purpose, - * you should always use `LazyResult#then`. + * PostCSS runners should always use `LazyResult#then`. */ get root(): Root @@ -135,8 +137,7 @@ export default class LazyResult implements PromiseLike { * This property will only work with synchronous plugins. If the processor * contains any asynchronous plugins it will throw an error. * - * This is why this method is only for debug purpose, - * you should always use `LazyResult#then`. + * PostCSS runners should always use `LazyResult#then`. */ get messages(): Message[] From b1bb2fbbd73fd1de105e684f9d6ade01f05c4593 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Sat, 6 Nov 2021 10:21:52 +0700 Subject: [PATCH 2384/3047] Update package.json Co-authored-by: Andrey Sitnik --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6d5d9886c..1eafe5ed3 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "./lib/fromJSON": "./lib/fromJSON.js", "./lib/input": "./lib/input.js", "./lib/lazy-result": "./lib/lazy-result.js", - "./lib/no-work": "./lib/no-work.js", + "./lib/no-work-result": "./lib/no-work-result.js", "./lib/list": "./lib/list.js", "./lib/map-generator": "./lib/map-generator.js", "./lib/node": "./lib/node.js", From c652e5a852f0a7ba2aae9e5ce62be05090af6ad0 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Sat, 6 Nov 2021 10:22:08 +0700 Subject: [PATCH 2385/3047] Update test/processor.test.ts Co-authored-by: Andrey Sitnik --- test/processor.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/test/processor.test.ts b/test/processor.test.ts index 5c740c9b0..cfcfab627 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -567,7 +567,6 @@ it('catches error with empty processor', async () => { noWorkResult.error = new CssSyntaxError('error') noWorkResult.catch(err => { - // eslint-disable-next-line jest/no-conditional-expect expect(err).toBeInstanceOf(CssSyntaxError) }) }) From 31626221a8886670774e58d8735ae7b13a2a9eef Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Sat, 6 Nov 2021 11:15:46 +0700 Subject: [PATCH 2386/3047] revert version --- lib/processor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/processor.js b/lib/processor.js index 5bf35cae3..948e09438 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let NoWorkResult = require('./no-work-result') class Processor { constructor(plugins = []) { - this.version = '8.3.12' + this.version = '8.3.11' this.plugins = this.normalize(plugins) } From 23e18c34a85c2389e50ec82937a8b2128447e048 Mon Sep 17 00:00:00 2001 From: bogdan0083 Date: Sat, 6 Nov 2021 11:30:44 +0700 Subject: [PATCH 2387/3047] Change no-work-result.d.ts to avoid repeated docs --- lib/no-work-result.d.ts | 145 +--------------------------------------- 1 file changed, 2 insertions(+), 143 deletions(-) diff --git a/lib/no-work-result.d.ts b/lib/no-work-result.d.ts index f36d669e7..7ba1462c5 100644 --- a/lib/no-work-result.d.ts +++ b/lib/no-work-result.d.ts @@ -3,6 +3,7 @@ import { SourceMap } from './postcss.js' import Processor from './processor.js' import Warning from './warning.js' import Root from './root.js' +import LazyResult from './lazy-result.js' /** * A Promise proxy for the result of PostCSS transformations. @@ -16,163 +17,21 @@ import Root from './root.js' * let root = noWorkResult.root // now css is parsed because we accessed the root * ``` */ -export default class NoWorkResult implements PromiseLike { - /** - * Processes input CSS through synchronous and asynchronous plugins - * and calls `onFulfilled` with a Result instance. If a plugin throws - * an error, the `onRejected` callback will be executed. - * - * It implements standard Promise API. - * - * ```js - * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => { - * console.log(result.css) - * }) - * ``` - */ +export default class NoWorkResult implements LazyResult { then: Promise['then'] - - /** - * Processes input CSS through synchronous and asynchronous plugins - * and calls onRejected for each error thrown in any plugin. - * - * It implements standard Promise API. - * - * ```js - * postcss([autoprefixer]).process(css).then(result => { - * console.log(result.css) - * }).catch(error => { - * console.error(error) - * }) - * ``` - */ catch: Promise['catch'] - - /** - * Processes input CSS through synchronous and asynchronous plugins - * and calls onFinally on any error or when all plugins will finish work. - * - * It implements standard Promise API. - * - * ```js - * postcss([autoprefixer]).process(css).finally(() => { - * console.log('processing ended') - * }) - * ``` - */ finally: Promise['finally'] - - /** - * @param processor Processor used for this transformation. - * @param css CSS to parse and transform. - * @param opts Options from the `Processor#process` or `Root#toResult`. - */ constructor(processor: Processor, css: string, opts: ResultOptions) - - /** - * Returns the default string description of an object. - * Required to implement the Promise interface. - */ get [Symbol.toStringTag](): string - - /** - * Returns a `Processor` instance, which will be used - * for CSS transformations. - */ get processor(): Processor - - /** - * Options from the `Processor#process` call. - */ get opts(): ResultOptions - - /** - * Processes input CSS through synchronous plugins, converts `Root` - * to a CSS string and returns `Result#css`. - * - * This property will only work with synchronous plugins. - * If the processor contains any asynchronous plugins - * it will throw an error. This is why this method is only - * for debug purpose, you should always use `LazyResult#then`. - */ get css(): string - - /** - * An alias for the `css` property. Use it with syntaxes - * that generate non-CSS output. - * - * This property will only work with synchronous plugins. - * If the processor contains any asynchronous plugins - * it will throw an error. This is why this method is only - * for debug purpose, you should always use `LazyResult#then`. - */ get content(): string - - /** - * Processes input CSS through synchronous plugins - * and returns `Result#map`. - * - * This property will only work with synchronous plugins. - * If the processor contains any asynchronous plugins - * it will throw an error. This is why this method is only - * for debug purpose, you should always use `LazyResult#then`. - */ get map(): SourceMap - - /** - * Processes input CSS through synchronous plugins - * and returns `Result#root`. - * - * This property will only work with synchronous plugins. If the processor - * contains any asynchronous plugins it will throw an error. - * - * This is why this method is only for debug purpose, - * you should always use `LazyResult#then`. - */ get root(): Root - - /** - * Processes input CSS through synchronous plugins - * and returns `Result#messages`. - * - * This property will only work with synchronous plugins. If the processor - * contains any asynchronous plugins it will throw an error. - * - * This is why this method is only for debug purpose, - * you should always use `LazyResult#then`. - */ get messages(): Message[] - - /** - * Processes input CSS through synchronous plugins - * and calls `Result#warnings`. - * - * @return Warnings from plugins. - */ warnings(): Warning[] - - /** - * Alias for the `LazyResult#css` property. - * - * ```js - * lazy + '' === lazy.css - * ``` - * - * @return Output CSS. - */ toString(): string - - /** - * Run plugin in sync way and return `Result`. - * - * @return Result with output content. - */ sync(): Result - - /** - * Run plugin in async way and return `Result`. - * - * @return Result with output content. - */ async(): Promise } From fccaee84ca4368c3b6332c284f24913010b2bb26 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Sat, 6 Nov 2021 12:32:39 +0700 Subject: [PATCH 2388/3047] Revert version in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 179d95fa1..da0e84811 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.12", + "version": "8.3.11", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From e38d207aa032f0ccadebd240d6690662f5b46e54 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Sat, 6 Nov 2021 12:34:06 +0700 Subject: [PATCH 2389/3047] Remove package-lock.json --- package-lock.json | 7150 --------------------------------------------- 1 file changed, 7150 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 47764ba59..000000000 --- a/package-lock.json +++ /dev/null @@ -1,7150 +0,0 @@ -{ - "name": "postcss", - "version": "8.3.12", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true - }, - "@babel/core": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/eslint-parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", - "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", - "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", - "dev": true, - "requires": { - "@babel/types": "^7.15.6", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dev": true, - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@discoveryjs/json-ext": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", - "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", - "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz", - "integrity": "sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.3.1", - "jest-util": "^27.3.1", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz", - "integrity": "sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/reporters": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.3.0", - "jest-config": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-resolve-dependencies": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "jest-watcher": "^27.3.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz", - "integrity": "sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.3.0" - } - }, - "@jest/fake-timers": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz", - "integrity": "sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" - } - }, - "@jest/globals": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz", - "integrity": "sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==", - "dev": true, - "requires": { - "@jest/environment": "^27.3.1", - "@jest/types": "^27.2.5", - "expect": "^27.3.1" - } - }, - "@jest/reporters": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz", - "integrity": "sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - } - }, - "@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz", - "integrity": "sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz", - "integrity": "sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==", - "dev": true, - "requires": { - "@jest/test-result": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-runtime": "^27.3.1" - } - }, - "@jest/transform": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz", - "integrity": "sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.2.5", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.3.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@logux/eslint-config": { - "version": "46.0.0", - "resolved": "https://registry.npmjs.org/@logux/eslint-config/-/eslint-config-46.0.0.tgz", - "integrity": "sha512-1FMDNeLgGtjITAjmNjsr11PtPN/GH9qUfLYj6PvOLyp9HipIpOLQelabb1yAM5lrJhhsWakSx5xzXIVkLVFO8Q==", - "dev": true, - "requires": { - "globals": "^13.11.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", - "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@size-limit/file": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-6.0.3.tgz", - "integrity": "sha512-OfDrkJBB7OAWtnedz6jpmL1pjlha1MpgtvYwUSP2442qB96nwMN5Ig78XR3ldPj2cbxq1FVoNnc2vfWMi40vQA==", - "dev": true, - "requires": { - "semver": "7.3.5" - } - }, - "@size-limit/preset-small-lib": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-6.0.3.tgz", - "integrity": "sha512-HvHgrLp5sNEWfw3js6oBWty2dQyDf2SDhehDGJuQRL+8IVRFQcx0XLkqiHAdMrCNvDmfRPfvLkcp5wcxpjgbrw==", - "dev": true, - "requires": { - "@size-limit/file": "6.0.3", - "@size-limit/webpack": "6.0.3" - } - }, - "@size-limit/webpack": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@size-limit/webpack/-/webpack-6.0.3.tgz", - "integrity": "sha512-4LI3SpkL0YbOIJsE7+t0LdPgqMeRDDwk1LELHHyk1b67tIjQ9wfnehI0BPT4LYiT23vN7Tg1TN0ofjwuRCLdbA==", - "dev": true, - "requires": { - "@statoscope/webpack-plugin": "^5.13.1", - "css-loader": "^6.4.0", - "css-minimizer-webpack-plugin": "^3.0.2", - "escape-string-regexp": "^4.0.0", - "mkdirp": "^1.0.4", - "nanoid": "^3.1.28", - "style-loader": "^3.3.0", - "webpack": "^5.56.0" - } - }, - "@statoscope/extensions": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/extensions/-/extensions-5.14.1.tgz", - "integrity": "sha512-5O31566+bOkkdYFH81mGGBTh0YcU0zoYurTrsK5uZfpNY87ZCPpptrszX8npTRHNsxbjBBNt7vAwImJyYdhzLw==", - "dev": true - }, - "@statoscope/helpers": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/helpers/-/helpers-5.14.1.tgz", - "integrity": "sha512-Gl7NB06cOxxh86tFk75yQmcOCQ3b8i4euYlyxvdz4tWkzeZw8g5VLPH9g3X4uQbPM4rqkae/KmgtRo5Ey1km8w==", - "dev": true, - "requires": { - "@types/archy": "^0.0.32", - "@types/semver": "^7.3.6", - "archy": "~1.0.0", - "jora": "^1.0.0-beta.5", - "semver": "^7.3.5" - } - }, - "@statoscope/report-writer": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/report-writer/-/report-writer-5.14.1.tgz", - "integrity": "sha512-N7pjpiKspDQ6K0B9HNBs8u3bhueiYmJEqAazSw/U3v8hThcP31i/FLCH90bu/8Sj436xAE1KATtGzJnsN5mbQA==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.5" - } - }, - "@statoscope/stats": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/stats/-/stats-5.14.1.tgz", - "integrity": "sha512-Kz7kCKuT6DXaqAPfyTwp27xHMDUna9o6UlRSQXXBZ8Yyk7eYYvTNw+5ffRyqivL9IOzD7FQYDQ6VUBHh0UfyDw==", - "dev": true - }, - "@statoscope/stats-extension-compressed": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-compressed/-/stats-extension-compressed-5.14.1.tgz", - "integrity": "sha512-FnfmL18OAHWg1l95tBKeMGHmeNbEOdnHlOE1c9KT3TWc5kt4q8ntpChL4AAZJSgn7uBy5WKMgjZSr5aUGebHGQ==", - "dev": true, - "requires": { - "@statoscope/helpers": "5.14.1", - "gzip-size": "^6.0.0" - } - }, - "@statoscope/stats-extension-custom-reports": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-custom-reports/-/stats-extension-custom-reports-5.14.1.tgz", - "integrity": "sha512-+t7gq2zZu8frwJF651+fq1BOZPMdngEwtNhvdRCSWyBE2uYvotVnngQE+di1/Idaosshnf4GdwX82bSMIlF1mQ==", - "dev": true, - "requires": { - "@statoscope/extensions": "5.14.1", - "@statoscope/helpers": "5.14.1", - "@statoscope/stats": "5.14.1", - "@statoscope/types": "5.14.1" - } - }, - "@statoscope/stats-extension-package-info": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-package-info/-/stats-extension-package-info-5.14.1.tgz", - "integrity": "sha512-TPKq6qJ7hxyQdPPpcbPsagf9MjbmPRLLo0F2ceafJ11ubP0t8LQZ+m0Orqp5ay3wuzvBy406w/njPwHQuEBHZw==", - "dev": true, - "requires": { - "@statoscope/helpers": "5.14.1" - } - }, - "@statoscope/stats-extension-stats-validation-result": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/stats-extension-stats-validation-result/-/stats-extension-stats-validation-result-5.14.1.tgz", - "integrity": "sha512-/TiohT+iO5Idipdd3JmzZ/Utaq3nXeKfZKnvXahkls5x6rpRQgbXs2IrDRtf7rJg4B/g2GuZUMsu4m76rHdkwA==", - "dev": true, - "requires": { - "@statoscope/extensions": "5.14.1", - "@statoscope/helpers": "5.14.1", - "@statoscope/stats": "5.14.1", - "@statoscope/types": "5.14.1" - } - }, - "@statoscope/types": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@statoscope/types/-/types-5.14.1.tgz", - "integrity": "sha512-vIo7aq2E71AC3y3mdnZqA5aupYUaEIHuPD2gUG0bAA8zTXH7YICk7nRkuxx7xnCBhTZTXAgvtF8hgQ35K4N8oQ==", - "dev": true, - "requires": { - "@statoscope/stats": "5.14.1" - } - }, - "@statoscope/webpack-model": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@statoscope/webpack-model/-/webpack-model-5.17.0.tgz", - "integrity": "sha512-t6V9yNKgNzdKVakdRdlplSsMfmIp4Dn4j23FhoetzEh/fmLSkd7X8REFBtEYQeR8RFe+QC19gOmbb2uoGwZ+nA==", - "dev": true, - "requires": { - "@statoscope/extensions": "5.14.1", - "@statoscope/helpers": "5.14.1", - "@statoscope/stats": "5.14.1", - "@statoscope/stats-extension-compressed": "5.14.1", - "@statoscope/stats-extension-custom-reports": "5.14.1", - "@statoscope/stats-extension-package-info": "5.14.1", - "@statoscope/stats-extension-stats-validation-result": "5.14.1", - "@statoscope/types": "5.14.1", - "@types/md5": "^2.3.0", - "@types/webpack": "^5.0.0", - "ajv": "^8.6.3", - "md5": "^2.3.0" - } - }, - "@statoscope/webpack-plugin": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@statoscope/webpack-plugin/-/webpack-plugin-5.17.0.tgz", - "integrity": "sha512-oFjHK/7rOgyp5Y9izeMjRDWp1/Ku3gXqPpVYOxLu8N5IqRwwHXKNmxMP4cgqBw8qLOrwN0VVYLXrfx+gFtbk2A==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.5", - "@statoscope/report-writer": "5.14.1", - "@statoscope/stats": "5.14.1", - "@statoscope/stats-extension-compressed": "5.14.1", - "@statoscope/stats-extension-custom-reports": "5.14.1", - "@statoscope/types": "5.14.1", - "@statoscope/webpack-model": "5.17.0", - "@statoscope/webpack-stats-extension-compressed": "5.17.0", - "@statoscope/webpack-stats-extension-package-info": "5.17.0", - "@statoscope/webpack-ui": "5.17.0", - "@types/node": "^12.20.15", - "@types/webpack": "^5.0.0", - "open": "^8.2.1" - }, - "dependencies": { - "@types/node": { - "version": "12.20.36", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.36.tgz", - "integrity": "sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA==", - "dev": true - } - } - }, - "@statoscope/webpack-stats-extension-compressed": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.17.0.tgz", - "integrity": "sha512-SEZ2Pmi5hE7TPtjKgE+9VmryZ/YbzRMf0vqswrJsWmSJlXW1GBOuqVk67exeWkk2/+/vkO+f2afQgjEs6Jy+/A==", - "dev": true, - "requires": { - "@statoscope/stats": "5.14.1", - "@statoscope/stats-extension-compressed": "5.14.1", - "@statoscope/webpack-model": "5.17.0", - "@types/webpack": "^5.0.0" - } - }, - "@statoscope/webpack-stats-extension-package-info": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.17.0.tgz", - "integrity": "sha512-aBoQBviAYnTmso7k6WSmheSfBOQsagghIWG/9UOfueVUgF9yad/tZgrnPCJvmb55/LnrRvYF9nA8knHM9P1XYg==", - "dev": true, - "requires": { - "@statoscope/stats": "5.14.1", - "@statoscope/stats-extension-package-info": "5.14.1", - "@statoscope/webpack-model": "5.17.0", - "@types/webpack": "^5.0.0" - } - }, - "@statoscope/webpack-ui": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@statoscope/webpack-ui/-/webpack-ui-5.17.0.tgz", - "integrity": "sha512-R7g/r7x7VnrlMPcb99HYdQAnb5qpi1GLT2XMnnMalJfyPC/dLGoOqSsjCB9V3C/leuUKyhlKbaRI4FcWyrHbzw==", - "dev": true, - "requires": { - "@statoscope/types": "5.14.1", - "highcharts": "^9.2.2" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "@types/archy": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/archy/-/archy-0.0.32.tgz", - "integrity": "sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/eslint": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.2.tgz", - "integrity": "sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.2.tgz", - "integrity": "sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==", - "dev": true, - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/md5": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/md5/-/md5-2.3.1.tgz", - "integrity": "sha512-OK3oe+ALIoPSo262lnhAYwpqFNXbiwH2a+0+Z5YBnkQEwWD8fk5+PIeRhYA48PzvX9I4SGNpWy+9bLj8qz92RQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==", - "dev": true - }, - "@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, - "@types/webpack": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.0.tgz", - "integrity": "sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==", - "dev": true, - "requires": { - "@types/node": "*", - "tapable": "^2.2.0", - "webpack": "^5" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", - "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "5.2.0", - "@typescript-eslint/scope-manager": "5.2.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", - "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", - "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "debug": "^4.3.2" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", - "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0" - } - }, - "@typescript-eslint/types": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", - "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", - "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", - "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.2.0", - "eslint-visitor-keys": "^3.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "dependencies": { - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "babel-jest": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz", - "integrity": "sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==", - "dev": true, - "requires": { - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "babel-plugin-jest-hoist": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", - "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", - "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz", - "integrity": "sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001271", - "electron-to-chromium": "^1.3.878", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "bytes-iec": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", - "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001271", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz", - "integrity": "sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, - "check-dts": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.6.2.tgz", - "integrity": "sha512-MUYAwe723hpdeDlRPIEb77GYe0z5SceXRqIaUkAmOUqSGsH+rExM+yxcENOyxpJYaYjt8JyaTJiLDSiIhmvhxw==", - "dev": true, - "requires": { - "fast-glob": "^3.2.7", - "nanospinner": "^0.3.2", - "picocolors": "^1.0.0", - "vfile-location": "^4.0.1" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "ci-job-number": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", - "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "clean-publish": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/clean-publish/-/clean-publish-3.4.2.tgz", - "integrity": "sha512-VAEF61z7yivCcoIzJg0wEs5T6DpM6JgfMp152q3/JNuKU3leTUkU1QHUjm162dOULq9i+lvPrNYF9vdLS9AfYw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.2.7", - "fs-extra": "^10.0.0", - "hosted-git-info": "^4.0.2", - "lilconfig": "^2.0.3" - } - }, - "clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colord": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", - "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", - "dev": true - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, - "css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true - }, - "css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", - "dev": true, - "requires": { - "timsort": "^0.3.0" - } - }, - "css-loader": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.0.tgz", - "integrity": "sha512-VmuSdQa3K+wJsl39i7X3qGBM5+ZHmtTnv65fqMGI+fzmHoYmszTVvTqC1XN8JwWDViCB1a8wgNim5SV4fb37xg==", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.2.15", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "semver": "^7.3.5" - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-KlB8l5uoNcf9F7i5kXnkxoqJGd2BXH4f0+Lj2vSWSmuvMLYO1kNsJ1KHSzeDW8e45/whgSOPcKVT/3JopkT8dg==", - "dev": true, - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "p-limit": "^3.0.2", - "postcss": "^8.3.5", - "schema-utils": "^3.1.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - } - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", - "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", - "dev": true, - "requires": { - "cssnano-preset-default": "^5.1.4", - "is-resolvable": "^1.1.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", - "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.0", - "postcss-convert-values": "^5.0.1", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.2", - "postcss-minify-params": "^5.0.1", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.1", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.2", - "postcss-unique-selectors": "^5.0.1" - } - }, - "cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.880", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.880.tgz", - "integrity": "sha512-iwIP/6WoeSimzUKJIQtjtpVDsK8Ir8qQCMXsUBwg+rxJR2Uh3wTNSbxoYRfs+3UWx/9MAnPIxVZCyWkm8MT0uw==", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", - "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.0.3", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^6.0.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "eslint-scope": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", - "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } - } - }, - "eslint-config-standard": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", - "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", - "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.0", - "has": "^1.0.3", - "is-core-module": "^2.7.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "25.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.2.2.tgz", - "integrity": "sha512-frn5yhOF60U4kcqozO3zKTNZQUk+mfx037XOy2iiYL8FhorEkuCuL3/flzKcY1ECDP2WYT9ydmvlO3fRW9o4mg==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-prefer-let": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-1.1.0.tgz", - "integrity": "sha512-d7IhB8FZCtnCNQ20e4UTETPJNF3mIES3ZYan9RK/K3sIkEfuL3NfF9t5gxoNRFjeSkhlGpJmZdLGLRGPmKgVfQ==", - "dev": true, - "requires": { - "requireindex": "~1.2.0" - } - }, - "eslint-plugin-promise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz", - "integrity": "sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==", - "dev": true - }, - "eslint-plugin-security": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz", - "integrity": "sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==", - "dev": true, - "requires": { - "safe-regex": "^1.1.0" - } - }, - "eslint-plugin-unicorn": { - "version": "37.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-37.0.1.tgz", - "integrity": "sha512-E1jq5u9ojnadisJcPi+hMXTGSiIzkIUMDvWsBudsCGXvKUB2aNSU2TcfyW2/jAS5A4ryBXfzxLykMxX1EdluSQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "ci-info": "^3.2.0", - "clean-regexp": "^1.0.0", - "eslint-template-visitor": "^2.3.2", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", - "indent-string": "4", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.23", - "safe-regex": "^2.1.1", - "semver": "^7.3.5", - "strip-indent": "^3.0.0" - }, - "dependencies": { - "safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "requires": { - "regexp-tree": "~0.1.1" - } - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-template-visitor": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", - "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", - "dev": true, - "requires": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "eslint-visitor-keys": "^2.0.0", - "esquery": "^1.3.1", - "multimap": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", - "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", - "dev": true - }, - "espree": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", - "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", - "dev": true, - "requires": { - "acorn": "^8.5.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expect": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", - "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "eyo-kernel": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/eyo-kernel/-/eyo-kernel-2.5.6.tgz", - "integrity": "sha512-lAcX7HdPLlNB8Ia6Uvq2hFMx9S5VQSfAXkjBZJi9OXzFC1exDvX9lzk2YeQVB9EKufhlHlgeiD26mzg5q42Rgg==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "requires": { - "duplexer": "^0.1.2" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "highcharts": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.0.tgz", - "integrity": "sha512-nQ7yW5ni7wFiPgDN2IWrS6o6NjL1gK/OhZjrdpyB3FQuefMkTQngygP+JqZFMx7PDrP3YAvfejx0M5IgkC01ow==", - "dev": true - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "requires": { - "builtin-modules": "^3.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "isutf8": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isutf8/-/isutf8-3.1.1.tgz", - "integrity": "sha512-5P2FgGyDsSnRMaLPVGVIgYgMxj50lBujvi5lsVgP1qvMWhxvkmVBWtPcIKgXw9j+/RnmxSvHg3e9tbDnPxx6dw==", - "dev": true - }, - "jest": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.3.1.tgz", - "integrity": "sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng==", - "dev": true, - "requires": { - "@jest/core": "^27.3.1", - "import-local": "^3.0.2", - "jest-cli": "^27.3.1" - }, - "dependencies": { - "jest-cli": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz", - "integrity": "sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==", - "dev": true, - "requires": { - "@jest/core": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - } - } - }, - "jest-changed-files": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz", - "integrity": "sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz", - "integrity": "sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==", - "dev": true, - "requires": { - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.3.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-config": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", - "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.3.1", - "@jest/types": "^27.2.5", - "babel-jest": "^27.3.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.3.1", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-jasmine2": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.3.1" - } - }, - "jest-diff": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", - "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" - } - }, - "jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz", - "integrity": "sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1" - } - }, - "jest-environment-jsdom": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz", - "integrity": "sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==", - "dev": true, - "requires": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz", - "integrity": "sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==", - "dev": true, - "requires": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" - } - }, - "jest-get-type": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", - "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", - "dev": true - }, - "jest-haste-map": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz", - "integrity": "sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz", - "integrity": "sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.3.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz", - "integrity": "sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==", - "dev": true, - "requires": { - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" - } - }, - "jest-matcher-utils": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", - "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" - } - }, - "jest-message-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", - "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz", - "integrity": "sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true - }, - "jest-resolve": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz", - "integrity": "sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz", - "integrity": "sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.3.1" - } - }, - "jest-runner": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz", - "integrity": "sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-leak-detector": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz", - "integrity": "sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/globals": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } - } - }, - "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz", - "integrity": "sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.3.1", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz", - "integrity": "sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz", - "integrity": "sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", - "leven": "^3.1.0", - "pretty-format": "^27.3.1" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz", - "integrity": "sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==", - "dev": true, - "requires": { - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.3.1", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "jora": { - "version": "1.0.0-beta.5", - "resolved": "https://registry.npmjs.org/jora/-/jora-1.0.0-beta.5.tgz", - "integrity": "sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - } - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", - "dev": true - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lint-staged": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", - "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", - "dev": true, - "requires": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - } - } - }, - "listr2": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.1.tgz", - "integrity": "sha512-pk4YBDA2cxtpM8iLHbz6oEsfZieJKHf6Pt19NlKaHZZVpqHyVs/Wqr7RfBBCeAFCJchGO7WQHVkUPZTvJMHk8w==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.7", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - } - } - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "markdown-it": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.2.0.tgz", - "integrity": "sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - } - } - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime-db": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", - "dev": true - }, - "mime-types": { - "version": "2.1.33", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", - "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", - "dev": true, - "requires": { - "mime-db": "1.50.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multimap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", - "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", - "dev": true - }, - "nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", - "dev": true - }, - "nanodelay": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/nanodelay/-/nanodelay-1.0.8.tgz", - "integrity": "sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==", - "dev": true - }, - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==" - }, - "nanospinner": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-0.3.2.tgz", - "integrity": "sha512-ToZuxmiRuuNe3McB7CVzP7PCOhzWAy4qx6ndb5QWxJFp6INdg3n0mVm8f7HR6Fz8raRg3/vzglIZYrOSna8vkg==", - "dev": true, - "requires": { - "picocolors": "^1.0.0" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - }, - "dependencies": { - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", - "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" - } - }, - "postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", - "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-convert-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", - "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", - "dev": true - }, - "postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", - "dev": true - }, - "postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", - "dev": true - }, - "postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", - "dev": true - }, - "postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", - "dev": true, - "requires": { - "css-color-names": "^1.0.1", - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" - } - }, - "postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" - } - }, - "postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-minify-gradients": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", - "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", - "dev": true, - "requires": { - "colord": "^2.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", - "dev": true - }, - "postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", - "dev": true, - "requires": { - "is-absolute-url": "^3.0.3", - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-parser-tests": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/postcss-parser-tests/-/postcss-parser-tests-8.3.7.tgz", - "integrity": "sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "spinnies": "^0.5.1" - } - }, - "postcss-reduce-initial": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", - "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", - "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", - "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0", - "svgo": "^2.3.0" - } - }, - "postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", - "dev": true - }, - "pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", - "dev": true - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true - }, - "simple-git-hooks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz", - "integrity": "sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "size-limit": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-6.0.3.tgz", - "integrity": "sha512-bvZuNG1dPJ8GTkFq3lXkW8H1+ybVV3D7GecowAGlfbNO2T1Mcvy8kCoCpwVOWnq1wV+TraRUtExnQzIyyV94NQ==", - "dev": true, - "requires": { - "bytes-iec": "^3.1.1", - "chokidar": "^3.5.2", - "ci-job-number": "^1.2.2", - "globby": "^11.0.4", - "lilconfig": "^2.0.3", - "nanospinner": "^0.3.0", - "picocolors": "^0.2.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" - }, - "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", - "dev": true - }, - "spinnies": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.5.1.tgz", - "integrity": "sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0", - "strip-ansi": "^5.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "dev": true - }, - "stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", - "dev": true, - "requires": { - "browserslist": "^4.16.0", - "postcss-selector-parser": "^6.0.4" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "svgo": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", - "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", - "dev": true, - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "nanocolors": "^0.1.12", - "stable": "^0.1.8" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", - "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz", - "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==", - "dev": true, - "requires": { - "jest-worker": "^27.0.6", - "p-limit": "^3.1.0", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "ts-jest": { - "version": "27.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", - "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "vfile": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.1.tgz", - "integrity": "sha512-sfI+3MnGUodvAE2s3hXCcJxhcymXQgekdgqNf9WMcmWtZU65tPMaml5eGYREJfMJGHr4/0GPZgrN3UMgWjHXSQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - } - } - }, - "vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "webpack": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.60.0.tgz", - "integrity": "sha512-OL5GDYi2dKxnwJPSOg2tODgzDxAffN0osgWkZaBo/l3ikCxDFP+tuJT3uF7GyBE3SDBpKML/+a8EobyWAQO3DQ==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.2.0", - "webpack-sources": "^3.2.0" - } - }, - "webpack-sources": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.1.tgz", - "integrity": "sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yandex-speller": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/yandex-speller/-/yandex-speller-4.1.0.tgz", - "integrity": "sha512-z13o3GCMxm5g/MU28JCIdu9SXsAoShroqAheFciS3K0wa2JRkA1y5qASZuavJuaCl0KG5RhTjo8gdkbyp6QC+w==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yaspeller": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/yaspeller/-/yaspeller-7.2.1.tgz", - "integrity": "sha512-Iq1WUHckdH7SCXGkJdXsUhO/3Wmp7tPgBhAQQJjWlyQZKmwv+zigPKZFWAheVDefUSBvldTKINRgTv9dG/JL/g==", - "dev": true, - "requires": { - "async": "^3.2.1", - "chalk": "^4.1.2", - "commander": "^3.0.0", - "cosmiconfig": "^7.0.1", - "entities": "^3.0.1", - "escape-html": "^1.0.3", - "eyo-kernel": "^2.5.6", - "glob": "^7.2.0", - "isutf8": "^3.1.1", - "markdown-it": "^12.2.0", - "minimatch": "^3.0.4", - "node-fetch": "^2.6.2", - "parse-json": "^5.2.0", - "strip-json-comments": "^3.1.1", - "xml2js": "^0.4.23", - "yandex-speller": "^4.1.0" - }, - "dependencies": { - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true - } - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} From f12d80870df9304536d1f3e2bc1bc5202964a8e6 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Sun, 7 Nov 2021 12:02:39 +0700 Subject: [PATCH 2390/3047] rewrite catch error test --- test/processor.test.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/test/processor.test.ts b/test/processor.test.ts index cfcfab627..fba52ae67 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -561,14 +561,13 @@ it('warns about missed from with empty processor', async () => { }) it('catches error with empty processor', async () => { - let noWorkResult = new Processor().process('a {}') + let noWorkResult = new Processor().process('a {') - // @ts-ignore - noWorkResult.error = new CssSyntaxError('error') + noWorkResult.root - noWorkResult.catch(err => { - expect(err).toBeInstanceOf(CssSyntaxError) - }) + let err = await catchError(async () => await noWorkResult) + + expect(err).toBeInstanceOf(CssSyntaxError) }) it('supports plugins returning processors', () => { From e13a2325ca69d37f3b618bf0acc945250cb7a247 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Sun, 7 Nov 2021 12:20:29 +0700 Subject: [PATCH 2391/3047] add test to check how annotations are cleared with multiple comments --- test/map.test.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/map.test.ts b/test/map.test.ts index aed40657f..3a8396fc7 100644 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -630,7 +630,7 @@ it('uses URLs in sources', () => { expect(result.map.toJSON().sources).toEqual(['../a%20b.css']) }) -it('generates inline map with empty processor', () => { +it('generates correct inline map with empty processor', () => { let processor = new Processor() let result = postcss(processor).process('a {} /*hello world*/', { map: true @@ -641,6 +641,18 @@ it('generates inline map with empty processor', () => { ) }) +it('generates correct inline map with empty processor and multiple comments', () => { + let css = 'a {}\n/*# sourceMappingURL=a.css.map */\nb {}\n/*# sourceMappingURL=b.css.map */' + let processor = new Processor() + let result = postcss(processor).process(css, { + map: true + }) + + expect(result.css).toMatch( + /a {}\s\nb {}\s\n\/\*# sourceMappingURL=/ + ) +}) + it('generates correct sources with empty processor', () => { let processor = new Processor() let result = postcss(processor).process('a {} /*hello world*/', { From a232a49a1095c30a3ac7e8b6019e93caaf1035ec Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Mon, 8 Nov 2021 13:49:20 +0700 Subject: [PATCH 2392/3047] add expect for 100% coverage --- test/processor.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/processor.test.ts b/test/processor.test.ts index fba52ae67..8206aa583 100644 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -567,6 +567,10 @@ it('catches error with empty processor', async () => { let err = await catchError(async () => await noWorkResult) + noWorkResult.catch(e => { + expect(e).toBeInstanceOf(CssSyntaxError) + }) + expect(err).toBeInstanceOf(CssSyntaxError) }) From 0824dcacafb489ce92a1d3bc142c53a94faa68fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20G=C3=B6rtz?= Date: Mon, 8 Nov 2021 19:19:50 +0100 Subject: [PATCH 2393/3047] Add postcss-opacity-percentage to list of plugins --- docs/plugins.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index d4132ec11..cedb2b262 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -130,6 +130,8 @@ by one line of code. * [`postcss-hash-classname`] append hash string to your css class name. * [`postcss-mqwidth-to-class`] converts min/max-width media queries to classes. * [`postcss-opacity`] adds opacity filter for IE8. +* [`postcss-opacity-percentage`] transforms CSS4 percentage-based `opacity` + values to float values. * [`postcss-page-break`] adds `page-break-` fallback to `break-` properties. * [`postcss-pseudoelements`] Convert `::` selectors into `:` selectors for IE 8 compatibility. @@ -739,6 +741,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-initial`]: https://github.com/maximkoretskiy/postcss-initial [`postcss-modules`]: https://github.com/outpunk/postcss-modules [`postcss-opacity`]: https://github.com/iamvdo/postcss-opacity +[`postcss-opacity-percentage`]: https://github.com/Dreamseer/postcss-opacity-percentage [`postcss-pointer`]: https://github.com/markgoodyear/postcss-pointer [`postcss-pxtorem`]: https://github.com/cuth/postcss-pxtorem [`postcss-rgb-plz`]: https://github.com/himynameisdave/postcss-rgb-plz From 77c2e73ab3a840caf1743eee08ab08355ce8eb0a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 8 Nov 2021 20:50:35 +0100 Subject: [PATCH 2394/3047] Update dependncies --- package.json | 10 +-- yarn.lock | 187 ++++++++++++++++++++++++--------------------------- 2 files changed, 94 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 8310d2a3a..8e637a714 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "dependencies": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" + "source-map-js": "^1.0.1" }, "devDependencies": { "@logux/eslint-config": "^46.1.0", @@ -77,12 +77,12 @@ "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", "@types/node": "^16.11.6", - "@typescript-eslint/eslint-plugin": "^5.3.0", - "@typescript-eslint/parser": "^5.3.0", + "@typescript-eslint/eslint-plugin": "^5.3.1", + "@typescript-eslint/parser": "^5.3.1", "check-dts": "^0.6.3", - "clean-publish": "^3.4.2", + "clean-publish": "^3.4.3", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.1.0", + "eslint": "^8.2.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.2", "eslint-plugin-node": "^11.1.0", diff --git a/yarn.lock b/yarn.lock index f76dcab9a..f9b11ac69 100644 --- a/yarn.lock +++ b/yarn.lock @@ -307,10 +307,10 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3" integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA== -"@eslint/eslintrc@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.3.tgz#41f08c597025605f672251dcc4e8be66b5ed7366" - integrity sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg== +"@eslint/eslintrc@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" + integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -318,7 +318,7 @@ globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" - js-yaml "^3.13.1" + js-yaml "^4.1.0" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -903,13 +903,13 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.0.tgz#a55ae72d28ffeb6badd817fe4566c9cced1f5e29" - integrity sha512-ARUEJHJrq85aaiCqez7SANeahDsJTD3AEua34EoQN9pHS6S5Bq9emcIaGGySt/4X2zSi+vF5hAH52sEen7IO7g== +"@typescript-eslint/eslint-plugin@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3" + integrity sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw== dependencies: - "@typescript-eslint/experimental-utils" "5.3.0" - "@typescript-eslint/scope-manager" "5.3.0" + "@typescript-eslint/experimental-utils" "5.3.1" + "@typescript-eslint/scope-manager" "5.3.1" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -917,60 +917,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.0.tgz#ee56b4957547ed2b0fc7451205e41502e664f546" - integrity sha512-NFVxYTjKj69qB0FM+piah1x3G/63WB8vCBMnlnEHUsiLzXSTWb9FmFn36FD9Zb4APKBLY3xRArOGSMQkuzTF1w== +"@typescript-eslint/experimental-utils@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz#bbd8f9b67b4d5fdcb9d2f90297d8fcda22561e05" + integrity sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.3.0" - "@typescript-eslint/types" "5.3.0" - "@typescript-eslint/typescript-estree" "5.3.0" + "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/typescript-estree" "5.3.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.0.tgz#7879f15e26d370ed3f653fb7dd06479531ed3ab9" - integrity sha512-rKu/yAReip7ovx8UwOAszJVO5MgBquo8WjIQcp1gx4pYQCwYzag+I5nVNHO4MqyMkAo0gWt2gWUi+36gWAVKcw== +"@typescript-eslint/parser@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.1.tgz#8ff1977c3d3200c217b3e4628d43ef92f89e5261" + integrity sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw== dependencies: - "@typescript-eslint/scope-manager" "5.3.0" - "@typescript-eslint/types" "5.3.0" - "@typescript-eslint/typescript-estree" "5.3.0" + "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/typescript-estree" "5.3.1" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.0.tgz#97d0ccc7c9158e89e202d5e24ce6ba49052d432e" - integrity sha512-22Uic9oRlTsPppy5Tcwfj+QET5RWEnZ5414Prby465XxQrQFZ6nnm5KnXgnsAJefG4hEgMnaxTB3kNEyjdjj6A== +"@typescript-eslint/scope-manager@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz#3cfbfbcf5488fb2a9a6fbbe97963ee1e8d419269" + integrity sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg== dependencies: - "@typescript-eslint/types" "5.3.0" - "@typescript-eslint/visitor-keys" "5.3.0" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/visitor-keys" "5.3.1" -"@typescript-eslint/types@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.0.tgz#af29fd53867c2df0028c57c36a655bd7e9e05416" - integrity sha512-fce5pG41/w8O6ahQEhXmMV+xuh4+GayzqEogN24EK+vECA3I6pUwKuLi5QbXO721EMitpQne5VKXofPonYlAQg== +"@typescript-eslint/types@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.1.tgz#afaa715b69ebfcfde3af8b0403bf27527912f9b7" + integrity sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ== -"@typescript-eslint/typescript-estree@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.0.tgz#4f68ddd46dc2983182402d2ab21fb44ad94988cf" - integrity sha512-FJ0nqcaUOpn/6Z4Jwbtf+o0valjBLkqc3MWkMvrhA2TvzFXtcclIM8F4MBEmYa2kgcI8EZeSAzwoSrIC8JYkug== +"@typescript-eslint/typescript-estree@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz#50cc4bfb93dc31bc75e08ae52e29fcb786d606ec" + integrity sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ== dependencies: - "@typescript-eslint/types" "5.3.0" - "@typescript-eslint/visitor-keys" "5.3.0" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/visitor-keys" "5.3.1" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.0.tgz#a6258790f3b7b2547f70ed8d4a1e0c3499994523" - integrity sha512-oVIAfIQuq0x2TFDNLVavUn548WL+7hdhxYn+9j3YdJJXB7mH9dAmZNJsPDa7Jc+B9WGqoiex7GUDbyMxV0a/aw== +"@typescript-eslint/visitor-keys@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz#c2860ff22939352db4f3806f34b21d8ad00588ba" + integrity sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ== dependencies: - "@typescript-eslint/types" "5.3.0" + "@typescript-eslint/types" "5.3.1" eslint-visitor-keys "^3.0.0" "@webassemblyjs/ast@1.11.1": @@ -1516,10 +1516,10 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -clean-publish@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.2.tgz#c5d776ba5c5aaaacff696eacec452263a63f94a5" - integrity sha512-VAEF61z7yivCcoIzJg0wEs5T6DpM6JgfMp152q3/JNuKU3leTUkU1QHUjm162dOULq9i+lvPrNYF9vdLS9AfYw== +clean-publish@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.3.tgz#1b12ac1d26549098bf49d0c17fdc9e86824d66be" + integrity sha512-PXq2JrWYqsovKjaO7NqOi47vMHV/6VbkP8fxPK4e3RBsoghAJXemwCiBCqhymgIIxD67G0VfRnkCJCa78+zqDw== dependencies: cross-spawn "^7.0.3" fast-glob "^3.2.7" @@ -1659,13 +1659,12 @@ css-loader@^6.5.0: semver "^7.3.5" css-minimizer-webpack-plugin@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.1.tgz#27bafa3b75054713565b2266c64b0228acd18634" - integrity sha512-KlB8l5uoNcf9F7i5kXnkxoqJGd2BXH4f0+Lj2vSWSmuvMLYO1kNsJ1KHSzeDW8e45/whgSOPcKVT/3JopkT8dg== + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.2.tgz#ca16768c03fd929dee50d751c4ae4ef67cfa067c" + integrity sha512-pJ0DMd590fjvQ4+MrGcrUN+cqT9BAqml0/t3I4HxYLC2K3TfihWf5ZNGHQ411pJv+H5agbnZhtOlrV4hJfk/QQ== dependencies: cssnano "^5.0.6" jest-worker "^27.0.2" - p-limit "^3.0.2" postcss "^8.3.5" schema-utils "^3.1.0" serialize-javascript "^6.0.0" @@ -1700,10 +1699,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.5.tgz#6effb7175ee5d296f95330e137587e27ee974d44" - integrity sha512-fF00UI+d3PWkGfMd62geqmoUe5h+LOhGE2GH4Fqq3beNKdCU1LWwLUyIcu4/A72lWv0737cHey5zhhWw3rW0sA== +cssnano-preset-default@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.6.tgz#1bdb83be6a6b1fee6dc5e9ec2e61286bcadcc7a6" + integrity sha512-X2nDeNGBXc0486oHjT2vSj+TdeyVsxRvJUxaOH50hOM6vSDLkKd0+59YXpSZRInJ4sNtBOykS4KsPfhdrU/35w== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -1714,7 +1713,7 @@ cssnano-preset-default@^5.1.5: postcss-discard-duplicates "^5.0.1" postcss-discard-empty "^5.0.1" postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.2" + postcss-merge-longhand "^5.0.3" postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" postcss-minify-gradients "^5.0.3" @@ -1741,11 +1740,11 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.6: - version "5.0.9" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.9.tgz#bd03168835c0883c16754085704f57861a32d99c" - integrity sha512-Y4olTKBKsPKl5izpcXHRDiB/1rVdbIDM4qVXgEKBt466kYT42SEEsnCYOQFFXzEkUYV8pJNCII9JKzb8KfDk+g== + version "5.0.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.10.tgz#92207eb7c9c6dc08d318050726f9fad0adf7220b" + integrity sha512-YfNhVJJ04imffOpbPbXP2zjIoByf0m8E2c/s/HnvSvjXgzXMfgopVjAEGvxYOjkOpWuRQDg/OZFjO7WW94Ri8w== dependencies: - cssnano-preset-default "^5.1.5" + cssnano-preset-default "^5.1.6" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -1915,9 +1914,9 @@ duplexer@^0.1.2: integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== electron-to-chromium@^1.3.886: - version "1.3.889" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz#0b7c6f7628559592d5406deda281788f37107790" - integrity sha512-suEUoPTD1mExjL9TdmH7cvEiWJVM2oEiAi+Y1p0QKxI2HcRlT44qDTP2c1aZmVwRemIPYOpxmV7CxQCOWcm4XQ== + version "1.3.891" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.891.tgz#51d7224e64157656276f152a0b3361708fde1bf9" + integrity sha512-3cpwR82QkIS01CN/dup/4Yr3BiOiRLlZlcAFn/5FbNCunMO9ojqDgEP9JEo1QNLflu3pEnPWve50gHOEKc7r6w== emittery@^0.8.1: version "0.8.1" @@ -2135,16 +2134,16 @@ eslint-visitor-keys@^2.0.0: integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186" - integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q== + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" + integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== -eslint@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.1.0.tgz#00f1f7dbf4134f26588e6c9f2efe970760f64664" - integrity sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw== +eslint@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.2.0.tgz#44d3fb506d0f866a506d97a0fc0e90ee6d06a815" + integrity sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw== dependencies: - "@eslint/eslintrc" "^1.0.3" + "@eslint/eslintrc" "^1.0.4" "@humanwhocodes/config-array" "^0.6.0" ajv "^6.10.0" chalk "^4.0.0" @@ -2178,7 +2177,7 @@ eslint@^8.1.0: progress "^2.0.0" regexpp "^3.2.0" semver "^7.2.1" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -3393,9 +3392,9 @@ levn@~0.3.0: type-check "~0.3.2" lilconfig@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" - integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== loader-runner@^4.2.0: version "4.2.0" @@ -3705,13 +3704,6 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -3854,10 +3846,10 @@ postcss-discard-overridden@^5.0.1: resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== -postcss-merge-longhand@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" - integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== +postcss-merge-longhand@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.3.tgz#42194a5ffbaa5513edbf606ef79c44958564658b" + integrity sha512-kmB+1TjMTj/bPw6MCDUiqSA5e/x4fvLffiAdthra3a0m2/IjTrWsTmD3FdSskzUjEwkj5ZHBDEbv5dOcqD7CMQ== dependencies: css-color-names "^1.0.1" postcss-value-parser "^4.1.0" @@ -4328,6 +4320,11 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== + source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.20" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" @@ -4518,12 +4515,11 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@^5.1.3: - version "5.2.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1" - integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA== + version "5.2.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" + integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== dependencies: jest-worker "^27.0.6" - p-limit "^3.1.0" schema-utils "^3.1.1" serialize-javascript "^6.0.0" source-map "^0.6.1" @@ -4950,8 +4946,3 @@ yargs@^16.2.0: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From d6c6f8c07d91ba74f2c7ce890fc81436cd814167 Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Mon, 15 Nov 2021 11:25:34 +0300 Subject: [PATCH 2395/3047] Move from Jest to uvu --- package.json | 25 +- test/at-rule.test.ts | 35 +- test/browser.test.ts | 39 +- test/comment.test.ts | 13 +- test/container.test.ts | 442 +++---- test/css-syntax-error.test.ts | 117 +- test/declaration.test.ts | 35 +- test/document.test.ts | 17 +- test/fromJSON.test.ts | 29 +- test/lazy-result.test.ts | 53 +- test/list.test.ts | 53 +- test/map.test.ts | 201 ++-- test/node.test.ts | 242 ++-- test/parse.test.ts | 182 +-- test/postcss.test.ts | 181 +-- test/previous-map.test.ts | 130 +- test/processor.test.ts | 332 +++--- test/result.test.ts | 28 +- test/root.test.ts | 45 +- test/rule.test.ts | 60 +- test/stringifier.test.js | 151 +-- test/stringify.test.ts | 8 +- test/tokenize.test.js | 99 +- test/visitor.test.ts | 323 ++--- test/warning.test.ts | 56 +- yarn.lock | 2117 ++++----------------------------- 26 files changed, 1768 insertions(+), 3245 deletions(-) mode change 100644 => 100755 package.json mode change 100644 => 100755 test/at-rule.test.ts mode change 100644 => 100755 test/browser.test.ts mode change 100644 => 100755 test/comment.test.ts mode change 100644 => 100755 test/container.test.ts mode change 100644 => 100755 test/css-syntax-error.test.ts mode change 100644 => 100755 test/declaration.test.ts mode change 100644 => 100755 test/document.test.ts mode change 100644 => 100755 test/fromJSON.test.ts mode change 100644 => 100755 test/lazy-result.test.ts mode change 100644 => 100755 test/list.test.ts mode change 100644 => 100755 test/map.test.ts mode change 100644 => 100755 test/node.test.ts mode change 100644 => 100755 test/parse.test.ts mode change 100644 => 100755 test/postcss.test.ts mode change 100644 => 100755 test/previous-map.test.ts mode change 100644 => 100755 test/processor.test.ts mode change 100644 => 100755 test/result.test.ts mode change 100644 => 100755 test/root.test.ts mode change 100644 => 100755 test/rule.test.ts mode change 100644 => 100755 test/stringifier.test.js mode change 100644 => 100755 test/stringify.test.ts mode change 100644 => 100755 test/tokenize.test.js mode change 100644 => 100755 test/visitor.test.ts mode change 100644 => 100755 test/warning.test.ts mode change 100644 => 100755 yarn.lock diff --git a/package.json b/package.json old mode 100644 new mode 100755 index 8e637a714..496888f42 --- a/package.json +++ b/package.json @@ -53,7 +53,8 @@ "transpiler" ], "scripts": { - "test": "jest --coverage && eslint . && ./test/version.js && check-dts && ./test/integration.js && size-limit" + "test": "c8 yarn unit && eslint . && ./test/version.js && check-dts && ./test/integration.js && size-limit", + "unit": "uvu -r tsm test '\\.test\\.(ts|js)$'" }, "funding": { "type": "opencollective", @@ -75,10 +76,10 @@ "@logux/eslint-config": "^46.1.0", "@size-limit/preset-small-lib": "^6.0.4", "@types/fs-extra": "^9.0.13", - "@types/jest": "^27.0.2", "@types/node": "^16.11.6", "@typescript-eslint/eslint-plugin": "^5.3.1", "@typescript-eslint/parser": "^5.3.1", + "c8": "^7.10.0", "check-dts": "^0.6.3", "clean-publish": "^3.4.3", "concat-with-sourcemaps": "^1.1.0", @@ -89,14 +90,14 @@ "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^5.1.1", "fs-extra": "^10.0.0", - "jest": "^27.3.1", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", "size-limit": "^6.0.4", "strip-ansi": "^6.0.0", - "ts-jest": "^27.0.7", - "typescript": "^4.4.4" + "tsm": "^2.1.4", + "typescript": "^4.4.4", + "uvu": "^0.5.2" }, "simple-git-hooks": { "pre-commit": "./test/version.js" @@ -122,20 +123,6 @@ "limit": "15 KB" } ], - "jest": { - "preset": "ts-jest", - "testEnvironment": "node", - "globals": { - "ts-jest": { - "isolatedModules": true - } - }, - "coverageThreshold": { - "global": { - "statements": 100 - } - } - }, "eslintConfig": { "extends": "@logux/eslint-config/ts", "rules": { diff --git a/test/at-rule.test.ts b/test/at-rule.test.ts old mode 100644 new mode 100755 index 820d228bb..7f40a4aab --- a/test/at-rule.test.ts +++ b/test/at-rule.test.ts @@ -1,46 +1,51 @@ +import { test } from 'uvu' +import { is, type } from 'uvu/assert' + import { AtRule, parse } from '../lib/postcss.js' -it('initializes with properties', () => { +test('initializes with properties', () => { let rule = new AtRule({ name: 'encoding', params: '"utf-8"' }) - expect(rule.name).toBe('encoding') - expect(rule.params).toBe('"utf-8"') + is(rule.name, 'encoding') + is(rule.params, '"utf-8"') - expect(rule.toString()).toBe('@encoding "utf-8"') + is(rule.toString(), '@encoding "utf-8"') }) -it('does not fall on childless at-rule', () => { +test('does not fall on childless at-rule', () => { let rule = new AtRule() rule.each(() => { throw new Error('AtRule has no children') }) }) -it('creates nodes property on prepend()', () => { +test('creates nodes property on prepend()', () => { let rule = new AtRule() - expect(rule.nodes).toBeUndefined() + type(rule.nodes, 'undefined') rule.prepend('color: black') - expect(rule.nodes).toHaveLength(1) + is(rule.nodes.length, 1) }) -it('creates nodes property on append()', () => { +test('creates nodes property on append()', () => { let rule = new AtRule() - expect(rule.nodes).toBeUndefined() + type(rule.nodes, 'undefined') rule.append('color: black') - expect(rule.nodes).toHaveLength(1) + is(rule.nodes.length, 1) }) -it('inserts default spaces', () => { +test('inserts default spaces', () => { let rule = new AtRule({ name: 'page', params: 1, nodes: [] }) - expect(rule.toString()).toBe('@page 1 {}') + is(rule.toString(), '@page 1 {}') }) -it('clone spaces from another at-rule', () => { +test('clone spaces from another at-rule', () => { let root = parse('@page{}a{}') let rule = new AtRule({ name: 'page', params: 1, nodes: [] }) root.append(rule) - expect(rule.toString()).toBe('@page 1{}') + is(rule.toString(), '@page 1{}') }) + +test.run() diff --git a/test/browser.test.ts b/test/browser.test.ts old mode 100644 new mode 100755 index 32de2a73a..a50bb34b0 --- a/test/browser.test.ts +++ b/test/browser.test.ts @@ -1,5 +1,7 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import pico from 'picocolors' +import { test } from 'uvu' +import { is } from 'uvu/assert' import CssSyntaxError from '../lib/css-syntax-error.js' @@ -9,12 +11,7 @@ function isSyntaxError(e: unknown): e is CssSyntaxError { let { bold, red, gray, yellow } = pico.createColors(true) -beforeEach(() => { - jest.resetModules() - jest.doMock('fs', () => ({})) -}) - -it('shows code with colors', () => { +test('shows code with colors', () => { let postcss = require('../lib/postcss.js') let error: CssSyntaxError | undefined @@ -27,7 +24,8 @@ it('shows code with colors', () => { throw e } } - expect(error?.showSourceCode(true)).toEqual( + is( + error?.showSourceCode(true), bold(red('>')) + gray(' 1 | ') + 'a' + @@ -38,7 +36,7 @@ it('shows code with colors', () => { ) }) -it('shows code without colors', () => { +test('shows code without colors', () => { let postcss = require('../lib/postcss.js') let error: CssSyntaxError | undefined @@ -51,15 +49,14 @@ it('shows code without colors', () => { throw e } } - expect(error?.showSourceCode(false)).toEqual('> 1 | a{\n' + ' | ^') + is(error?.showSourceCode(false), '> 1 | a{\n' + ' | ^') }) -it('generates source map without fs', () => { +test('generates source map without fs', () => { let postcss = require('../lib/postcss.js') - expect( - postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css - ).toEqual( + is( + postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css, 'a{}\n/*# sourceMappingURL=data:application/json;base64,' + 'eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImEuY3NzIl0sIm5hbWVzIjpbXSw' + 'ibWFwcGluZ3MiOiJBQUFBLEVBQUUiLCJmaWxlIjoiYS5jc3MiLCJzb3VyY2' + @@ -67,11 +64,13 @@ it('generates source map without fs', () => { ) }) -it(`doesn't throw error without path`, () => { - jest.doMock('path', () => ({})) - let postcss = require('../lib/postcss.js') +// it(`doesn't throw error without path`, () => { +// jest.doMock('path', () => ({})) +// let postcss = require('../lib/postcss.js') - expect( - postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css - ).toBe('a{}') -}) +// expect( +// postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css +// ).toBe('a{}') +// }) + +test.run() diff --git a/test/comment.test.ts b/test/comment.test.ts old mode 100644 new mode 100755 index 47996a326..b25f8125e --- a/test/comment.test.ts +++ b/test/comment.test.ts @@ -1,14 +1,19 @@ +import { test } from 'uvu' +import { is } from 'uvu/assert' + import { Comment, parse } from '../lib/postcss.js' -it('toString() inserts default spaces', () => { +test('toString() inserts default spaces', () => { let comment = new Comment({ text: 'hi' }) - expect(comment.toString()).toBe('/* hi */') + is(comment.toString(), '/* hi */') }) -it('toString() clones spaces from another comment', () => { +test('toString() clones spaces from another comment', () => { let root = parse('a{} /*hello*/') let comment = new Comment({ text: 'world' }) root.append(comment) - expect(root.toString()).toBe('a{} /*hello*/ /*world*/') + is(root.toString(), 'a{} /*hello*/ /*world*/') }) + +test.run() diff --git a/test/container.test.ts b/test/container.test.ts old mode 100644 new mode 100755 index cdb450789..77817e102 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -1,3 +1,6 @@ +import { test } from 'uvu' +import { is, equal, throws, type, match } from 'uvu/assert' + import { Declaration, Root, Rule, AtRule, parse } from '../lib/postcss.js' let example = @@ -15,42 +18,42 @@ let example = '}' + '}' -it('throws error on declaration without value', () => { - expect(() => { +test('throws error on declaration without value', () => { + throws(() => { // @ts-expect-error new Rule().append({ prop: 'color', vlaue: 'black' }) - }).toThrow(/Value field is missed/) + }, /Value field is missed/) }) -it('throws error on unknown node type', () => { - expect(() => { +test('throws error on unknown node type', () => { + throws(() => { // @ts-expect-error new Rule().append({ foo: 'bar' }) - }).toThrow(/Unknown node type/) + }, /Unknown node type/) }) -it('push() adds child without checks', () => { +test('push() adds child without checks', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.push(new Declaration({ prop: 'c', value: '3' })) - expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3 }') - expect(rule.nodes).toHaveLength(3) - expect(rule.last?.raws.before).toBeUndefined() + is(rule.toString(), 'a { a: 1; b: 2; c: 3 }') + is(rule.nodes.length, 3) + type(rule.last?.raws.before, 'undefined') }) -it('each() iterates', () => { +test('each() iterates', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let indexes: number[] = [] let result = rule.each((decl, i) => { indexes.push(i) - expect(decl).toBe(rule.nodes[i]) + is(decl, rule.nodes[i]) }) - expect(result).toBeUndefined() - expect(indexes).toEqual([0, 1]) + type(result, 'undefined') + equal(indexes, [0, 1]) }) -it('each() iterates with prepend', () => { +test('each() iterates with prepend', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let size = 0 @@ -59,10 +62,10 @@ it('each() iterates with prepend', () => { size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('each() iterates with prepend insertBefore', () => { +test('each() iterates with prepend insertBefore', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let size = 0 @@ -73,10 +76,10 @@ it('each() iterates with prepend insertBefore', () => { size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('each() iterates with append insertBefore', () => { +test('each() iterates with append insertBefore', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let size = 0 @@ -87,10 +90,10 @@ it('each() iterates with append insertBefore', () => { size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('each() iterates with prepend insertAfter', () => { +test('each() iterates with prepend insertAfter', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let size = 0 @@ -99,10 +102,10 @@ it('each() iterates with prepend insertAfter', () => { size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('each() iterates with append insertAfter', () => { +test('each() iterates with append insertAfter', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let size = 0 @@ -113,10 +116,10 @@ it('each() iterates with append insertAfter', () => { size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('each() iterates with remove', () => { +test('each() iterates with remove', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let size = 0 @@ -125,10 +128,10 @@ it('each() iterates with remove', () => { size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('each() breaks iteration', () => { +test('each() breaks iteration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let indexes: number[] = [] @@ -137,11 +140,11 @@ it('each() breaks iteration', () => { return false }) - expect(result).toBe(false) - expect(indexes).toEqual([0]) + is(result, false) + equal(indexes, [0]) }) -it('each() allows to change children', () => { +test('each() allows to change children', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let props: string[] = [] @@ -152,10 +155,10 @@ it('each() allows to change children', () => { } }) - expect(props).toEqual(['a', 'a']) + equal(props, ['a', 'a']) }) -it('walk() iterates', () => { +test('walk() iterates', () => { let types: string[] = [] let indexes: number[] = [] @@ -164,8 +167,8 @@ it('walk() iterates', () => { indexes.push(i) }) - expect(result).toBeUndefined() - expect(types).toEqual([ + type(result, 'undefined') + equal(types, [ 'rule', 'decl', 'decl', @@ -181,10 +184,10 @@ it('walk() iterates', () => { 'decl', 'comment' ]) - expect(indexes).toEqual([0, 0, 1, 1, 2, 0, 1, 0, 3, 0, 0, 1, 0, 1]) + equal(indexes, [0, 0, 1, 1, 2, 0, 1, 0, 3, 0, 0, 1, 0, 1]) }) -it('walk() breaks iteration', () => { +test('walk() breaks iteration', () => { let indexes: number[] = [] let result = parse(example).walk((decl, i) => { @@ -192,11 +195,11 @@ it('walk() breaks iteration', () => { return false }) - expect(result).toBe(false) - expect(indexes).toEqual([0]) + is(result, false) + equal(indexes, [0]) }) -it('walk() adds CSS position to error stack', () => { +test('walk() adds CSS position to error stack', () => { let error = new Error('T') error.stack = 'Error: T\n at b (b.js:2:4)\n at a (a.js:2:1)' let root = parse(example, { from: '/c.css' }) @@ -208,14 +211,15 @@ it('walk() adds CSS position to error stack', () => { } catch (e) { catched = e } - expect(catched).toBe(error) - expect(catched.postcssNode.toString()).toBe('a { a: 1; b: 2 }') - expect(catched.stack.replace(/.:\\/i, '/')).toBe( + is(catched, error) + is(catched.postcssNode.toString(), 'a { a: 1; b: 2 }') + is( + catched.stack.replace(/.:\\/i, '/'), 'Error: T\n at /c.css:1:1\n at b (b.js:2:4)\n at a (a.js:2:1)' ) }) -it('walkDecls() iterates', () => { +test('walkDecls() iterates', () => { let props: string[] = [] let indexes: number[] = [] @@ -224,21 +228,21 @@ it('walkDecls() iterates', () => { indexes.push(i) }) - expect(result).toBeUndefined() - expect(props).toEqual(['a', 'b', 'c', 'd', 'e']) - expect(indexes).toEqual([0, 1, 0, 0, 0]) + type(result, 'undefined') + equal(props, ['a', 'b', 'c', 'd', 'e']) + equal(indexes, [0, 1, 0, 0, 0]) }) -it('walkDecls() iterates with changes', () => { +test('walkDecls() iterates with changes', () => { let size = 0 parse(example).walkDecls((decl, i) => { decl.parent?.removeChild(i) size += 1 }) - expect(size).toBe(5) + is(size, 5) }) -it('walkDecls() breaks iteration', () => { +test('walkDecls() breaks iteration', () => { let indexes: number[] = [] let result = parse(example).walkDecls((decl, i) => { @@ -246,23 +250,23 @@ it('walkDecls() breaks iteration', () => { return false }) - expect(result).toBe(false) - expect(indexes).toEqual([0]) + is(result, false) + equal(indexes, [0]) }) -it('walkDecls() filters declarations by property name', () => { +test('walkDecls() filters declarations by property name', () => { let css = parse('@page{a{one:1}}b{one:1;two:2}') let size = 0 css.walkDecls('one', decl => { - expect(decl.prop).toBe('one') + is(decl.prop, 'one') size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('walkDecls() breaks declarations filter by name', () => { +test('walkDecls() breaks declarations filter by name', () => { let css = parse('@page{a{one:1}}b{one:1;two:2}') let size = 0 @@ -271,10 +275,10 @@ it('walkDecls() breaks declarations filter by name', () => { return false }) - expect(size).toBe(1) + is(size, 1) }) -it('walkDecls() filters declarations by property regexp', () => { +test('walkDecls() filters declarations by property regexp', () => { let css = parse('@page{a{one:1}}b{one-x:1;two:2}') let size = 0 @@ -282,10 +286,10 @@ it('walkDecls() filters declarations by property regexp', () => { size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('walkDecls() breaks declarations filters by regexp', () => { +test('walkDecls() breaks declarations filters by regexp', () => { let css = parse('@page{a{one:1}}b{one-x:1;two:2}') let size = 0 @@ -294,10 +298,10 @@ it('walkDecls() breaks declarations filters by regexp', () => { return false }) - expect(size).toBe(1) + is(size, 1) }) -it('walkComments() iterates', () => { +test('walkComments() iterates', () => { let texts: string[] = [] let indexes: number[] = [] @@ -306,21 +310,21 @@ it('walkComments() iterates', () => { indexes.push(i) }) - expect(result).toBeUndefined() - expect(texts).toEqual(['a', 'b', 'c']) - expect(indexes).toEqual([1, 0, 1]) + type(result, 'undefined') + equal(texts, ['a', 'b', 'c']) + equal(indexes, [1, 0, 1]) }) -it('walkComments() iterates with changes', () => { +test('walkComments() iterates with changes', () => { let size = 0 parse(example).walkComments((comment, i) => { comment.parent?.removeChild(i) size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('walkComments() breaks iteration', () => { +test('walkComments() breaks iteration', () => { let indexes: number[] = [] let result = parse(example).walkComments((comment, i) => { @@ -328,11 +332,11 @@ it('walkComments() breaks iteration', () => { return false }) - expect(result).toBe(false) - expect(indexes).toEqual([1]) + is(result, false) + equal(indexes, [1]) }) -it('walkRules() iterates', () => { +test('walkRules() iterates', () => { let selectors: string[] = [] let indexes: number[] = [] @@ -341,21 +345,21 @@ it('walkRules() iterates', () => { indexes.push(i) }) - expect(result).toBeUndefined() - expect(selectors).toEqual(['a', 'to', 'em']) - expect(indexes).toEqual([0, 1, 0]) + type(result, 'undefined') + equal(selectors, ['a', 'to', 'em']) + equal(indexes, [0, 1, 0]) }) -it('walkRules() iterates with changes', () => { +test('walkRules() iterates with changes', () => { let size = 0 parse(example).walkRules((rule, i) => { rule.parent?.removeChild(i) size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('walkRules() breaks iteration', () => { +test('walkRules() breaks iteration', () => { let indexes: number[] = [] let result = parse(example).walkRules((rule, i) => { @@ -363,47 +367,47 @@ it('walkRules() breaks iteration', () => { return false }) - expect(result).toBe(false) - expect(indexes).toEqual([0]) + is(result, false) + equal(indexes, [0]) }) -it('walkRules() filters by selector', () => { +test('walkRules() filters by selector', () => { let size = 0 parse('a{}b{}a{}').walkRules('a', rule => { - expect(rule.selector).toBe('a') + is(rule.selector, 'a') size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('walkRules() breaks selector filters', () => { +test('walkRules() breaks selector filters', () => { let size = 0 parse('a{}b{}a{}').walkRules('a', () => { size += 1 return false }) - expect(size).toBe(1) + is(size, 1) }) -it('walkRules() filters by regexp', () => { +test('walkRules() filters by regexp', () => { let size = 0 parse('a{}a b{}b a{}').walkRules(/^a/, rule => { - expect(rule.selector).toMatch(/^a/) + match(rule.selector, /^a/) size += 1 }) - expect(size).toBe(2) + is(size, 2) }) -it('walkRules() breaks selector regexp', () => { +test('walkRules() breaks selector regexp', () => { let size = 0 parse('a{}b a{}b a{}').walkRules(/^a/, () => { size += 1 return false }) - expect(size).toBe(1) + is(size, 1) }) -it('walkAtRules() iterates', () => { +test('walkAtRules() iterates', () => { let names: string[] = [] let indexes: number[] = [] @@ -412,21 +416,21 @@ it('walkAtRules() iterates', () => { indexes.push(i) }) - expect(result).toBeUndefined() - expect(names).toEqual(['keyframes', 'media', 'page']) - expect(indexes).toEqual([2, 3, 1]) + type(result, 'undefined') + equal(names, ['keyframes', 'media', 'page']) + equal(indexes, [2, 3, 1]) }) -it('walkAtRules() iterates with changes', () => { +test('walkAtRules() iterates with changes', () => { let size = 0 parse(example).walkAtRules((atrule, i) => { atrule.parent?.removeChild(i) size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('walkAtRules() breaks iteration', () => { +test('walkAtRules() breaks iteration', () => { let indexes: number[] = [] let result = parse(example).walkAtRules((atrule, i) => { @@ -434,32 +438,32 @@ it('walkAtRules() breaks iteration', () => { return false }) - expect(result).toBe(false) - expect(indexes).toEqual([2]) + is(result, false) + equal(indexes, [2]) }) -it('walkAtRules() filters at-rules by name', () => { +test('walkAtRules() filters at-rules by name', () => { let css = parse('@page{@page 2{}}@media print{@page{}}') let size = 0 css.walkAtRules('page', atrule => { - expect(atrule.name).toBe('page') + is(atrule.name, 'page') size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('walkAtRules() breaks name filter', () => { +test('walkAtRules() breaks name filter', () => { let size = 0 parse('@page{@page{@page{}}}').walkAtRules('page', () => { size += 1 return false }) - expect(size).toBe(1) + is(size, 1) }) -it('walkAtRules() filters at-rules by name regexp', () => { +test('walkAtRules() filters at-rules by name regexp', () => { let css = parse('@page{@page 2{}}@media print{@pages{}}') let size = 0 @@ -467,83 +471,83 @@ it('walkAtRules() filters at-rules by name regexp', () => { size += 1 }) - expect(size).toBe(3) + is(size, 3) }) -it('walkAtRules() breaks regexp filter', () => { +test('walkAtRules() breaks regexp filter', () => { let size = 0 parse('@page{@pages{@page{}}}').walkAtRules(/page/, () => { size += 1 return false }) - expect(size).toBe(1) + is(size, 1) }) -it('append() appends child', () => { +test('append() appends child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3 }') - expect(rule.last?.raws.before).toBe(' ') + is(rule.toString(), 'a { a: 1; b: 2; c: 3 }') + is(rule.last?.raws.before, ' ') }) -it('append() appends multiple children', () => { +test('append() appends multiple children', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }) - expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3; d: 4 }') - expect(rule.last?.raws.before).toBe(' ') + is(rule.toString(), 'a { a: 1; b: 2; c: 3; d: 4 }') + is(rule.last?.raws.before, ' ') }) -it('append() has declaration shortcut', () => { +test('append() has declaration shortcut', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; b: 2; c: 3 }') + is(rule.toString(), 'a { a: 1; b: 2; c: 3 }') }) -it('append() has rule shortcut', () => { +test('append() has rule shortcut', () => { let root = new Root() root.append({ selector: 'a' }) - expect(root.first?.toString()).toBe('a {}') + is(root.first?.toString(), 'a {}') }) -it('append() has at-rule shortcut', () => { +test('append() has at-rule shortcut', () => { let root = new Root() root.append({ name: 'encoding', params: '"utf-8"' }) - expect(root.first?.toString()).toBe('@encoding "utf-8"') + is(root.first?.toString(), '@encoding "utf-8"') }) -it('append() has comment shortcut', () => { +test('append() has comment shortcut', () => { let root = new Root() root.append({ text: 'ok' }) - expect(root.first?.toString()).toBe('/* ok */') + is(root.first?.toString(), '/* ok */') }) -it('append() receives root', () => { +test('append() receives root', () => { let css = parse('a {}') css.append(parse('b {}')) - expect(css.toString()).toBe('a {}b {}') + is(css.toString(), 'a {}b {}') }) -it('append() reveives string', () => { +test('append() reveives string', () => { let root = new Root() root.append('a{}b{}') let a = root.first as Rule a.append('color:black') - expect(root.toString()).toBe('a{color:black}b{}') - expect(a.first?.source).toBeUndefined() + is(root.toString(), 'a{color:black}b{}') + type(a.first?.source, 'undefined') }) -it('append() receives array', () => { +test('append() receives array', () => { let a = parse('a{ z-index: 1 }') let b = parse('b{ width: 1px; height: 2px }') let aRule = a.first as Rule let bRule = b.first as Rule aRule.append(bRule.nodes) - expect(a.toString()).toBe('a{ z-index: 1; width: 1px; height: 2px }') - expect(b.toString()).toBe('b{ }') + is(a.toString(), 'a{ z-index: 1; width: 1px; height: 2px }') + is(b.toString(), 'b{ }') }) -it('append() move node on insert', () => { +test('append() move node on insert', () => { let a = parse('a{}') let b = parse('b{}') @@ -551,236 +555,248 @@ it('append() move node on insert', () => { let bLast = b.last as Rule bLast.selector = 'b a' - expect(a.toString()).toBe('') - expect(b.toString()).toBe('b{}b a{}') + is(a.toString(), '') + is(b.toString(), 'b{}b a{}') }) -it('prepend() prepends child', () => { +test('prepend() prepends child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.prepend({ prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { c: 3; a: 1; b: 2 }') - expect(rule.first?.raws.before).toBe(' ') + is(rule.toString(), 'a { c: 3; a: 1; b: 2 }') + is(rule.first?.raws.before, ' ') }) -it('prepend() prepends multiple children', () => { +test('prepend() prepends multiple children', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.prepend({ prop: 'c', value: '3' }, { prop: 'd', value: '4' }) - expect(rule.toString()).toBe('a { c: 3; d: 4; a: 1; b: 2 }') - expect(rule.first?.raws.before).toBe(' ') + is(rule.toString(), 'a { c: 3; d: 4; a: 1; b: 2 }') + is(rule.first?.raws.before, ' ') }) -it('prepend() receive hash instead of declaration', () => { +test('prepend() receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.prepend({ prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { c: 3; a: 1; b: 2 }') + is(rule.toString(), 'a { c: 3; a: 1; b: 2 }') }) -it('prepend() receives root', () => { +test('prepend() receives root', () => { let css = parse('a {}') css.prepend(parse('b {}')) - expect(css.toString()).toBe('b {}\na {}') + is(css.toString(), 'b {}\na {}') }) -it('prepend() receives string', () => { +test('prepend() receives string', () => { let css = parse('a {}') css.prepend('b {}') - expect(css.toString()).toBe('b {}\na {}') + is(css.toString(), 'b {}\na {}') }) -it('prepend() receives array', () => { +test('prepend() receives array', () => { let a = parse('a{ z-index: 1 }') let b = parse('b{ width: 1px; height: 2px }') let aRule = a.first as Rule let bRule = b.first as Rule aRule.prepend(bRule.nodes) - expect(a.toString()).toBe('a{ width: 1px; height: 2px; z-index: 1 }') + is(a.toString(), 'a{ width: 1px; height: 2px; z-index: 1 }') }) -it('prepend() works on empty container', () => { +test('prepend() works on empty container', () => { let root = parse('') root.prepend(new Rule({ selector: 'a' })) - expect(root.toString()).toBe('a {}') + is(root.toString(), 'a {}') }) -it('insertBefore() inserts child', () => { +test('insertBefore() inserts child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertBefore(1, { prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') - expect(rule.nodes[1].raws.before).toBe(' ') + is(rule.toString(), 'a { a: 1; c: 3; b: 2 }') + is(rule.nodes[1].raws.before, ' ') }) -it('insertBefore() works with nodes too', () => { +test('insertBefore() works with nodes too', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertBefore(rule.nodes[1], { prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') + is(rule.toString(), 'a { a: 1; c: 3; b: 2 }') }) -it('insertBefore() receive hash instead of declaration', () => { +test('insertBefore() receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertBefore(1, { prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') + is(rule.toString(), 'a { a: 1; c: 3; b: 2 }') }) -it('insertBefore() receives array', () => { +test('insertBefore() receives array', () => { let a = parse('a{ color: red; z-index: 1 }') let b = parse('b{ width: 1; height: 2 }') let aRule = a.first as Rule let bRule = b.first as Rule aRule.insertBefore(1, bRule.nodes) - expect(a.toString()).toBe('a{ color: red; width: 1; height: 2; z-index: 1 }') + is(a.toString(), 'a{ color: red; width: 1; height: 2; z-index: 1 }') }) -it('insertAfter() inserts child', () => { +test('insertAfter() inserts child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertAfter(0, { prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') - expect(rule.nodes[1].raws.before).toBe(' ') + is(rule.toString(), 'a { a: 1; c: 3; b: 2 }') + is(rule.nodes[1].raws.before, ' ') }) -it('insertAfter() works with nodes too', () => { +test('insertAfter() works with nodes too', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let aDecl = rule.first as Declaration rule.insertAfter(aDecl, { prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') + is(rule.toString(), 'a { a: 1; c: 3; b: 2 }') }) -it('insertAfter() receive hash instead of declaration', () => { +test('insertAfter() receive hash instead of declaration', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertAfter(0, { prop: 'c', value: '3' }) - expect(rule.toString()).toBe('a { a: 1; c: 3; b: 2 }') + is(rule.toString(), 'a { a: 1; c: 3; b: 2 }') }) -it('insertAfter() receives array', () => { +test('insertAfter() receives array', () => { let a = parse('a{ color: red; z-index: 1 }') let b = parse('b{ width: 1; height: 2 }') let aRule = a.first as Rule let bRule = b.first as Rule aRule.insertAfter(0, bRule.nodes) - expect(a.toString()).toBe('a{ color: red; width: 1; height: 2; z-index: 1 }') + is(a.toString(), 'a{ color: red; width: 1; height: 2; z-index: 1 }') }) -it('removeChild() removes by index', () => { +test('removeChild() removes by index', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.removeChild(1) - expect(rule.toString()).toBe('a { a: 1 }') + is(rule.toString(), 'a { a: 1 }') }) -it('removeChild() removes by node', () => { +test('removeChild() removes by node', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let bDecl = rule.last as Declaration rule.removeChild(bDecl) - expect(rule.toString()).toBe('a { a: 1 }') + is(rule.toString(), 'a { a: 1 }') }) -it('removeChild() cleans parent in removed node', () => { +test('removeChild() cleans parent in removed node', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let aDecl = rule.first as Declaration rule.removeChild(aDecl) - expect(aDecl.parent).toBeUndefined() + type(aDecl.parent, 'undefined') }) -it('removeAll() removes all children', () => { +test('removeAll() removes all children', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let decl = rule.first as Declaration rule.removeAll() - expect(decl.parent).toBeUndefined() - expect(rule.toString()).toBe('a { }') + type(decl.parent, 'undefined') + is(rule.toString(), 'a { }') }) -it('replaceValues() replaces strings', () => { +test('replaceValues() replaces strings', () => { let css = parse('a{one:1}b{two:1 2}') let result = css.replaceValues('1', 'A') - expect(result).toEqual(css) - expect(css.toString()).toBe('a{one:A}b{two:A 2}') + equal(result, css) + is(css.toString(), 'a{one:A}b{two:A 2}') }) -it('replaceValues() replaces regpexp', () => { +test('replaceValues() replaces regpexp', () => { let css = parse('a{one:1}b{two:1 2}') css.replaceValues(/\d/g, i => i + 'A') - expect(css.toString()).toBe('a{one:1A}b{two:1A 2A}') + is(css.toString(), 'a{one:1A}b{two:1A 2A}') }) -it('replaceValues() filters properties', () => { +test('replaceValues() filters properties', () => { let css = parse('a{one:1}b{two:1 2}') css.replaceValues('1', { props: ['one'] }, 'A') - expect(css.toString()).toBe('a{one:A}b{two:1 2}') + is(css.toString(), 'a{one:A}b{two:1 2}') }) -it('replaceValues() uses fast check', () => { +test('replaceValues() uses fast check', () => { let css = parse('a{one:1}b{two:1 2}') css.replaceValues('1', { fast: '2' }, 'A') - expect(css.toString()).toBe('a{one:1}b{two:A 2}') + is(css.toString(), 'a{one:1}b{two:A 2}') }) -it('any() return true if all children return true', () => { +test('any() return true if all children return true', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - expect(rule.every(i => i.type === 'decl' && /a|b/.test(i.prop))).toBe(true) - expect(rule.every(i => i.type === 'decl' && /b/.test(i.prop))).toBe(false) + is( + rule.every(i => i.type === 'decl' && /a|b/.test(i.prop)), + true + ) + is( + rule.every(i => i.type === 'decl' && /b/.test(i.prop)), + false + ) }) -it('some() return true if all children return true', () => { +test('some() return true if all children return true', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - expect(rule.some(i => i.type === 'decl' && i.prop === 'b')).toBe(true) - expect(rule.some(i => i.type === 'decl' && i.prop === 'c')).toBe(false) + is( + rule.some(i => i.type === 'decl' && i.prop === 'b'), + true + ) + is( + rule.some(i => i.type === 'decl' && i.prop === 'c'), + false + ) }) -it('index() returns child index', () => { +test('index() returns child index', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - expect(rule.index(rule.nodes[1])).toBe(1) + is(rule.index(rule.nodes[1]), 1) }) -it('index() returns argument if it is number', () => { +test('index() returns argument if it is number', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - expect(rule.index(2)).toBe(2) + is(rule.index(2), 2) }) -it('first() works for children-less nodes', () => { +test('first() works for children-less nodes', () => { let atRule = parse('@charset "UTF-*"').first as AtRule - expect(atRule.first).toBeUndefined() + type(atRule.first, 'undefined') }) -it('last() works for children-less nodes', () => { +test('last() works for children-less nodes', () => { let atRule = parse('@charset "UTF-*"').first as AtRule - expect(atRule.last).toBeUndefined() + type(atRule.last, 'undefined') }) -it('returns first child', () => { +test('returns first child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let aDecl = rule.first as Declaration - expect(aDecl.prop).toBe('a') + is(aDecl.prop, 'a') }) -it('returns last child', () => { +test('returns last child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule let bDecl = rule.last as Declaration - expect(bDecl.prop).toBe('b') + is(bDecl.prop, 'b') }) -it('normalize() does not normalize new children with exists before', () => { +test('normalize() does not normalize new children with exists before', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.append({ prop: 'c', value: '3', raws: { before: '\n ' } }) - expect(rule.toString()).toBe('a { a: 1; b: 2;\n c: 3 }') + is(rule.toString(), 'a { a: 1; b: 2;\n c: 3 }') }) -it('forces Declaration#value to be string', () => { +test('forces Declaration#value to be string', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule // @ts-expect-error rule.append({ prop: 'c', value: 3 }) let aDecl = rule.first as Declaration let cDecl = rule.last as Declaration - expect(typeof aDecl.value).toBe('string') - expect(typeof cDecl.value).toBe('string') + type(aDecl.value, 'string') + type(cDecl.value, 'string') }) -it('updates parent in overrides.nodes in constructor', () => { +test('updates parent in overrides.nodes in constructor', () => { let root = new Root({ nodes: [{ selector: 'a' }] }) let a = root.first as Rule - expect(a.parent).toBe(root) + equal(a.parent, root) root.append({ selector: 'b', @@ -788,12 +804,14 @@ it('updates parent in overrides.nodes in constructor', () => { }) let b = root.last as Rule let color = b.first as Declaration - expect(color.parent).toBe(root.last) + equal(color.parent, root.last) }) -it('allows to clone nodes', () => { +test('allows to clone nodes', () => { let root1 = parse('a { color: black; z-index: 1 } b {}') let root2 = new Root({ nodes: root1.nodes }) - expect(root1.toString()).toBe('a { color: black; z-index: 1 } b {}') - expect(root2.toString()).toBe('a { color: black; z-index: 1 } b {}') + is(root1.toString(), 'a { color: black; z-index: 1 } b {}') + is(root2.toString(), 'a { color: black; z-index: 1 } b {}') }) + +test.run() diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts old mode 100644 new mode 100755 index 71784abee..2debe6512 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -3,6 +3,8 @@ import { join, resolve as pathResolve } from 'path' import { pathToFileURL } from 'url' import stripAnsi from 'strip-ansi' import Concat from 'concat-with-sourcemaps' +import { test } from 'uvu' +import { is, equal, match, type } from 'uvu/assert' import postcss, { ProcessOptions, @@ -44,32 +46,31 @@ function parseError( throw new Error('Error was not thrown') } -it('saves source', () => { +test('saves source', () => { let error = parseError('a {\n content: "\n}') - expect(error instanceof CssSyntaxError).toBe(true) - expect(error.name).toBe('CssSyntaxError') - expect(error.message).toBe(':2:12: Unclosed string') - expect(error.reason).toBe('Unclosed string') - expect(error.line).toBe(2) - expect(error.column).toBe(12) - expect(error.source).toBe('a {\n content: "\n}') + is(error instanceof CssSyntaxError, true) + is(error.name, 'CssSyntaxError') + is(error.message, ':2:12: Unclosed string') + is(error.reason, 'Unclosed string') + is(error.line, 2) + is(error.column, 12) + is(error.source, 'a {\n content: "\n}') - expect(error.input).toEqual({ + equal(error.input, { line: error.line, column: error.column, source: error.source }) }) -it('has stack trace', () => { - expect(parseError('a {\n content: "\n}').stack).toMatch( - /css-syntax-error\.test\.ts/ - ) +test('has stack trace', () => { + match(parseError('a {\n content: "\n}').stack, /css-syntax-error\.test\.ts/) }) -it('highlights broken line with colors', () => { - expect(parseError('#a .b c() {').showSourceCode(true)).toEqual( +test('highlights broken line with colors', () => { + is( + parseError('#a .b c() {').showSourceCode(true), pico.bold(pico.red('>')) + pico.gray(' 1 | ') + pico.magenta('#a') + @@ -86,16 +87,16 @@ it('highlights broken line with colors', () => { ) }) -it('highlights broken line', () => { - expect(parseError('a {\n content: "\n}').showSourceCode(false)).toEqual( +test('highlights broken line', () => { + is( + parseError('a {\n content: "\n}').showSourceCode(false), ' 1 | a {\n' + '> 2 | content: "\n' + ' | ^\n' + ' 3 | }' ) }) -it('highlights broken line, when indented with tabs', () => { - expect( - parseError('a {\n\t \t content:\t"\n}').showSourceCode(false) - ).toEqual( +test('highlights broken line, when indented with tabs', () => { + is( + parseError('a {\n\t \t content:\t"\n}').showSourceCode(false), ' 1 | a {\n' + '> 2 | \t \t content:\t"\n' + ' | \t \t \t^\n' + @@ -103,15 +104,14 @@ it('highlights broken line, when indented with tabs', () => { ) }) -it('highlights small code example', () => { - expect(parseError('a {').showSourceCode(false)).toEqual( - '> 1 | a {\n' + ' | ^' - ) +test('highlights small code example', () => { + is(parseError('a {').showSourceCode(false), '> 1 | a {\n' + ' | ^') }) -it('add leading space for line numbers', () => { +test('add leading space for line numbers', () => { let css = '\n\n\n\n\n\n\na {\n content: "\n}\n\n\n' - expect(parseError(css).showSourceCode(false)).toEqual( + is( + parseError(css).showSourceCode(false), ' 7 | \n' + ' 8 | a {\n' + '> 9 | content: "\n' + @@ -121,8 +121,9 @@ it('add leading space for line numbers', () => { ) }) -it('prints with highlight', () => { - expect(stripAnsi(parseError('a {').toString())).toEqual( +test('prints with highlight', () => { + is( + stripAnsi(parseError('a {').toString()), 'CssSyntaxError: :1:1: Unclosed block\n' + '\n' + '> 1 | a {\n' + @@ -130,21 +131,19 @@ it('prints with highlight', () => { ) }) -it('misses highlights without source content', () => { +test('misses highlights without source content', () => { let error = parseError('a {') error.source = undefined - expect(error.toString()).toBe( - 'CssSyntaxError: :1:1: Unclosed block' - ) + is(error.toString(), 'CssSyntaxError: :1:1: Unclosed block') }) -it('misses position without source', () => { +test('misses position without source', () => { let decl = postcss.decl({ prop: 'color', value: 'black' }) let error = decl.error('Test') - expect(error.toString()).toBe('CssSyntaxError: : Test') + is(error.toString(), 'CssSyntaxError: : Test') }) -it('uses source map', () => { +test('uses source map', () => { function urlOf(file: string): string { return pathToFileURL(join(__dirname, file)).toString() } @@ -158,11 +157,11 @@ it('uses source map', () => { map: { prev: concat.sourceMap } }) - expect(error.file).toEqual(join(__dirname, 'b.css')) - expect(error.line).toBe(2) - expect(error.source).toBeUndefined() + is(error.file, join(__dirname, 'b.css')) + is(error.line, 2) + type(error.source, 'undefined') - expect(error.input).toEqual({ + equal(error.input, { url: urlOf(join('build', 'all.css')), file: join(__dirname, 'build', 'all.css'), line: 3, @@ -171,7 +170,7 @@ it('uses source map', () => { }) }) -it('works with path in sources', () => { +test('works with path in sources', () => { function pathOf(file: string): string { return join(__dirname, file) } @@ -185,11 +184,11 @@ it('works with path in sources', () => { map: { prev: concat.sourceMap } }) - expect(error.file).toEqual(join(__dirname, 'b.css')) - expect(error.line).toBe(2) - expect(error.source).toBeUndefined() + is(error.file, join(__dirname, 'b.css')) + is(error.line, 2) + type(error.source, 'undefined') - expect(error.input).toEqual({ + equal(error.input, { url: pathToFileURL(pathOf(join('build', 'all.css'))).toString(), file: join(__dirname, 'build', 'all.css'), line: 3, @@ -198,7 +197,7 @@ it('works with path in sources', () => { }) }) -it('shows origin source', () => { +test('shows origin source', () => { let input = postcss([() => {}]).process('a{}', { from: '/a.css', to: '/b.css', @@ -208,10 +207,10 @@ it('shows origin source', () => { from: '/b.css', map: { prev: input.map } }) - expect(error.source).toBe('a{}') + is(error.source, 'a{}') }) -it('does not uses wrong source map', () => { +test('does not uses wrong source map', () => { let error = parseError('a { }\nb {', { from: 'build/all.css', map: { @@ -223,19 +222,17 @@ it('does not uses wrong source map', () => { } } }) - expect(error.file).toEqual(pathResolve('build/all.css')) + is(error.file, pathResolve('build/all.css')) }) -it('set source plugin', () => { +test('set source plugin', () => { let a = postcss.parse('a{}').first as Rule let error = a.error('Error', { plugin: 'PL' }) - expect(error.plugin).toBe('PL') - expect(error.toString()).toMatch( - /^CssSyntaxError: PL: :1:1: Error/ - ) + is(error.plugin, 'PL') + match(error.toString(), /^CssSyntaxError: PL: :1:1: Error/) }) -it('set source plugin automatically', async () => { +test('set source plugin automatically', async () => { let plugin: Plugin = { postcssPlugin: 'test-plugin', Once(css) { @@ -248,11 +245,11 @@ it('set source plugin automatically', async () => { let error = await catchError(() => postcss([plugin]).process('a{}', { from: undefined }) ) - expect(error.plugin).toBe('test-plugin') - expect(error.toString()).toMatch(/test-plugin/) + is(error.plugin, 'test-plugin') + match(error.toString(), /test-plugin/) }) -it('set plugin automatically in async', async () => { +test('set plugin automatically in async', async () => { let plugin: Plugin = { postcssPlugin: 'async-plugin', Once(css) { @@ -267,5 +264,7 @@ it('set plugin automatically in async', async () => { let error = await catchError(() => postcss([plugin]).process('a{}', { from: undefined }) ) - expect(error.plugin).toBe('async-plugin') + is(error.plugin, 'async-plugin') }) + +test.run() diff --git a/test/declaration.test.ts b/test/declaration.test.ts old mode 100644 new mode 100755 index 2936c7271..eacbb8735 --- a/test/declaration.test.ts +++ b/test/declaration.test.ts @@ -1,43 +1,48 @@ +import { test } from 'uvu' +import { is } from 'uvu/assert' + import { Declaration, parse, Rule } from '../lib/postcss.js' -it('initializes with properties', () => { +test('initializes with properties', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) - expect(decl.prop).toBe('color') - expect(decl.value).toBe('black') + is(decl.prop, 'color') + is(decl.value, 'black') }) -it('returns boolean important', () => { +test('returns boolean important', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) decl.important = true - expect(decl.toString()).toBe('color: black !important') + is(decl.toString(), 'color: black !important') }) -it('inserts default spaces', () => { +test('inserts default spaces', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) let rule = new Rule({ selector: 'a' }) rule.append(decl) - expect(rule.toString()).toBe('a {\n color: black\n}') + is(rule.toString(), 'a {\n color: black\n}') }) -it('clones spaces from another declaration', () => { +test('clones spaces from another declaration', () => { let root = parse('a{color:black}') let rule = root.first as Rule let decl = new Declaration({ prop: 'margin', value: '0' }) rule.append(decl) - expect(root.toString()).toBe('a{color:black;margin:0}') + is(root.toString(), 'a{color:black;margin:0}') }) -it('converts value to string', () => { +test('converts value to string', () => { // @ts-expect-error let decl = new Declaration({ prop: 'color', value: 1 }) - expect(decl.value).toBe('1') + is(decl.value, '1') }) -it('detects variable declarations', () => { +test('detects variable declarations', () => { let prop = new Declaration({ prop: '--color', value: 'black' }) - expect(prop.variable).toBe(true) + is(prop.variable, true) let sass = new Declaration({ prop: '$color', value: 'black' }) - expect(sass.variable).toBe(true) + is(sass.variable, true) let decl = new Declaration({ prop: 'color', value: 'black' }) - expect(decl.variable).toBe(false) + is(decl.variable, false) }) + +test.run() diff --git a/test/document.test.ts b/test/document.test.ts old mode 100644 new mode 100755 index 0d1253043..7d81e3e9c --- a/test/document.test.ts +++ b/test/document.test.ts @@ -1,7 +1,10 @@ +import { test } from 'uvu' +import { is, match } from 'uvu/assert' + import { Result, parse } from '../lib/postcss.js' import Document from '../lib/document.js' -it('generates result without map', () => { +test('generates result without map', () => { let root = parse('a {}') let document = new Document() @@ -9,11 +12,11 @@ it('generates result without map', () => { let result = document.toResult() - expect(result instanceof Result).toBe(true) - expect(result.css).toBe('a {}') + is(result instanceof Result, true) + is(result.css, 'a {}') }) -it('generates result with map', () => { +test('generates result with map', () => { let root = parse('a {}') let document = new Document() @@ -21,6 +24,8 @@ it('generates result with map', () => { let result = document.toResult({ map: true }) - expect(result instanceof Result).toBe(true) - expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) + is(result instanceof Result, true) + match(result.css, /a {}\n\/\*# sourceMappingURL=/) }) + +test.run() diff --git a/test/fromJSON.test.ts b/test/fromJSON.test.ts old mode 100644 new mode 100755 index 7c9156c8b..2cbf82b6f --- a/test/fromJSON.test.ts +++ b/test/fromJSON.test.ts @@ -1,8 +1,10 @@ import v8 from 'v8' +import { test } from 'uvu' +import { is, instance, throws } from 'uvu/assert' import postcss, { Root, Declaration, Input, Rule } from '../lib/postcss.js' -it('rehydrates a JSON AST', () => { +test('rehydrates a JSON AST', () => { let cssWithMap = postcss().process( '.foo { color: red; font-size: 12pt; } /* abc */ @media (width: 60em) { }', { @@ -23,32 +25,35 @@ it('rehydrates a JSON AST', () => { rehydrated.nodes[0].remove() - expect(rehydrated.nodes).toHaveLength(3) + is(rehydrated.nodes.length, 3) - expect( + is( postcss().process(rehydrated, { from: undefined, map: { inline: true }, stringifier: postcss.stringify - }).css - ).toBe(`/* abc */ @media (width: 60em) { } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInguY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFzQyxRQUFRLEVBQUUsdUJBQXVCIiwiZmlsZSI6InRvLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb28geyBjb2xvcjogcmVkOyBmb250LXNpemU6IDEycHQ7IH0gLyogYWJjICovIEBtZWRpYSAod2lkdGg6IDYwZW0pIHsgfSJdfQ== */`) + }).css, + `/* abc */ @media (width: 60em) { } +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInguY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFzQyxRQUFRLEVBQUUsdUJBQXVCIiwiZmlsZSI6InRvLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb28geyBjb2xvcjogcmVkOyBmb250LXNpemU6IDEycHQ7IH0gLyogYWJjICovIEBtZWRpYSAod2lkdGg6IDYwZW0pIHsgfSJdfQ== */` + ) }) -it('rehydrates an array of Nodes via JSON.stringify', () => { +test('rehydrates an array of Nodes via JSON.stringify', () => { let root = postcss.parse('.cls { color: orange; }') let rule = root.first as Rule let json = JSON.stringify(rule.nodes) let rehydrated = postcss.fromJSON(JSON.parse(json) as object[]) - expect(rehydrated[0]).toBeInstanceOf(Declaration) - expect(rehydrated[0].source?.input).toBeInstanceOf(Input) + instance(rehydrated[0], Declaration) + instance(rehydrated[0].source?.input, Input) }) -it('throws when rehydrating an invalid JSON AST', () => { - expect(() => { +test('throws when rehydrating an invalid JSON AST', () => { + throws(() => { postcss.fromJSON({ type: 'not-a-node-type' }) - }).toThrow('Unknown node type: not-a-node-type') + }, 'Unknown node type: not-a-node-type') }) + +test.run() diff --git a/test/lazy-result.test.ts b/test/lazy-result.test.ts old mode 100644 new mode 100755 index 3d28a5393..588cc3583 --- a/test/lazy-result.test.ts +++ b/test/lazy-result.test.ts @@ -1,66 +1,73 @@ import mozilla from 'source-map-js' +import { test } from 'uvu' +import { is, equal, type } from 'uvu/assert' import LazyResult from '../lib/lazy-result.js' import Processor from '../lib/processor.js' let processor = new Processor() -it('contains AST', () => { +test('contains AST', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.root.type).toBe('root') + is(result.root.type, 'root') }) -it('will stringify css', () => { +test('will stringify css', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.css).toBe('a {}') + is(result.css, 'a {}') }) -it('stringifies css', () => { +test('stringifies css', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(`${result}`).toEqual(result.css) + is(`${result}`, result.css) }) -it('has content alias for css', () => { +test('has content alias for css', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.content).toBe('a {}') + is(result.content, 'a {}') }) -it('has map only if necessary', () => { +test('has map only if necessary', () => { let result1 = new LazyResult(processor, '', {}) - expect(result1.map).toBeUndefined() + type(result1.map, 'undefined') let result2 = new LazyResult(processor, '', {}) - expect(result2.map).toBeUndefined() + type(result2.map, 'undefined') let result3 = new LazyResult(processor, '', { map: { inline: false } }) - expect(result3.map instanceof mozilla.SourceMapGenerator).toBe(true) + is(result3.map instanceof mozilla.SourceMapGenerator, true) }) -it('contains options', () => { +test('contains options', () => { let result = new LazyResult(processor, 'a {}', { to: 'a.css' }) - expect(result.opts).toEqual({ to: 'a.css' }) + equal(result.opts, { to: 'a.css' }) }) -it('contains warnings', () => { +test('contains warnings', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.warnings()).toEqual([]) + equal(result.warnings(), []) }) -it('contains messages', () => { +test('contains messages', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(result.messages).toEqual([]) + equal(result.messages, []) }) -it('executes on finally callback', () => { - let mockCallback = jest.fn() +test('executes on finally callback', () => { + let callbackHaveBeenCalled = 0 + let mockCallback = (): void => { + callbackHaveBeenCalled++ + } return new LazyResult(processor, 'a {}', {}) .finally(mockCallback) .then(() => { - expect(mockCallback).toHaveBeenCalledTimes(1) + is(callbackHaveBeenCalled, 1) }) }) -it('prints its object type', () => { +test('prints its object type', () => { let result = new LazyResult(processor, 'a {}', {}) - expect(Object.prototype.toString.call(result)).toBe('[object LazyResult]') + is(Object.prototype.toString.call(result), '[object LazyResult]') }) + +test.run() diff --git a/test/list.test.ts b/test/list.test.ts old mode 100644 new mode 100755 index e95ae11bb..f4575690e --- a/test/list.test.ts +++ b/test/list.test.ts @@ -1,51 +1,56 @@ +import { test } from 'uvu' +import { equal } from 'uvu/assert' + import { list } from '../lib/postcss.js' -it('space() splits list by spaces', () => { - expect(list.space('a b')).toEqual(['a', 'b']) +test('space() splits list by spaces', () => { + equal(list.space('a b'), ['a', 'b']) }) -it('space() trims values', () => { - expect(list.space(' a b ')).toEqual(['a', 'b']) +test('space() trims values', () => { + equal(list.space(' a b '), ['a', 'b']) }) -it('space() checks quotes', () => { - expect(list.space('"a b\\"" \'\'')).toEqual(['"a b\\""', "''"]) +test('space() checks quotes', () => { + equal(list.space('"a b\\"" \'\''), ['"a b\\""', "''"]) }) -it('space() checks functions', () => { - expect(list.space('f( )) a( () )')).toEqual(['f( ))', 'a( () )']) +test('space() checks functions', () => { + equal(list.space('f( )) a( () )'), ['f( ))', 'a( () )']) }) -it('space() does not split on escaped spaces', () => { - expect(list.space('a\\ b')).toEqual(['a\\ b']) +test('space() does not split on escaped spaces', () => { + equal(list.space('a\\ b'), ['a\\ b']) }) -it('space() works from variable', () => { +test('space() works from variable', () => { let space = list.space - expect(space('a b')).toEqual(['a', 'b']) + equal(space('a b'), ['a', 'b']) }) -it('comma() splits list by spaces', () => { - expect(list.comma('a, b')).toEqual(['a', 'b']) +test('comma() splits list by spaces', () => { + equal(list.comma('a, b'), ['a', 'b']) }) -it('comma() adds last empty', () => { - expect(list.comma('a, b,')).toEqual(['a', 'b', '']) +test('comma() adds last empty', () => { + equal(list.comma('a, b,'), ['a', 'b', '']) }) -it('comma() checks quotes', () => { - expect(list.comma('"a,b\\"", \'\'')).toEqual(['"a,b\\""', "''"]) +test('comma() checks quotes', () => { + equal(list.comma('"a,b\\"", \'\''), ['"a,b\\""', "''"]) }) -it('comma() checks functions', () => { - expect(list.comma('f(,)), a(,(),)')).toEqual(['f(,))', 'a(,(),)']) +test('comma() checks functions', () => { + equal(list.comma('f(,)), a(,(),)'), ['f(,))', 'a(,(),)']) }) -it('comma() does not split on escaped commas', () => { - expect(list.comma('a\\, b')).toEqual(['a\\, b']) +test('comma() does not split on escaped commas', () => { + equal(list.comma('a\\, b'), ['a\\, b']) }) -it('comma() works from variable', () => { +test('comma() works from variable', () => { let comma = list.comma - expect(comma('a, b')).toEqual(['a', 'b']) + equal(comma('a, b'), ['a', 'b']) }) + +test.run() diff --git a/test/map.test.ts b/test/map.test.ts old mode 100644 new mode 100755 index 13bf92ff8..679cc5e1a --- a/test/map.test.ts +++ b/test/map.test.ts @@ -2,6 +2,8 @@ import { SourceMapConsumer, SourceMapGenerator } from 'source-map-js' import { removeSync, outputFileSync } from 'fs-extra' import { join, resolve, parse } from 'path' import { existsSync } from 'fs' +import { test } from 'uvu' +import { is, type, equal, match } from 'uvu/assert' import postcss, { SourceMap, Rule, Root } from '../lib/postcss.js' import PreviousMap from '../lib/previous-map.js' @@ -28,22 +30,22 @@ let lighter = postcss((css: Root) => { }) }) -afterEach(() => { +test.after.each(() => { if (existsSync(dir)) removeSync(dir) }) -it('adds map field only on request', () => { - expect(postcss([() => {}]).process('a {}').map).toBeUndefined() +test('adds map field only on request', () => { + type(postcss([() => {}]).process('a {}').map, 'undefined') }) -it('return map generator', () => { +test('return map generator', () => { let map = postcss([() => {}]).process('a {}', { map: { inline: false } }).map - expect(map instanceof SourceMapGenerator).toBe(true) + is(map instanceof SourceMapGenerator, true) }) -it('generate right source map', () => { +test('generate right source map', () => { let css = 'a {\n color: black;\n }' let processor = postcss((root: Root) => { root.walkRules(rule => { @@ -61,39 +63,39 @@ it('generate right source map', () => { }) let map = read(result) - expect(map.file).toBe('b.css') + is(map.file, 'b.css') - expect(map.originalPositionFor({ line: 1, column: 0 })).toEqual({ + equal(map.originalPositionFor({ line: 1, column: 0 }), { source: 'a.css', line: 1, column: 0, name: null }) - expect(map.originalPositionFor({ line: 1, column: 2 })).toEqual({ + equal(map.originalPositionFor({ line: 1, column: 2 }), { source: 'a.css', line: 1, column: 0, name: null }) - expect(map.originalPositionFor({ line: 2, column: 2 })).toEqual({ + equal(map.originalPositionFor({ line: 2, column: 2 }), { source: 'a.css', line: 2, column: 2, name: null }) - expect(map.originalPositionFor({ line: 3, column: 2 })).toEqual({ + equal(map.originalPositionFor({ line: 3, column: 2 }), { source: 'a.css', line: 2, column: 2, name: null }) - expect(map.originalPositionFor({ line: 3, column: 14 })).toEqual({ + equal(map.originalPositionFor({ line: 3, column: 14 }), { source: 'a.css', line: 2, column: 14, name: null }) - expect(map.originalPositionFor({ line: 4, column: 2 })).toEqual({ + equal(map.originalPositionFor({ line: 4, column: 2 }), { source: 'a.css', line: 3, column: 2, @@ -101,7 +103,7 @@ it('generate right source map', () => { }) }) -it('changes previous source map', () => { +test('changes previous source map', () => { let css = 'a { color: black }' let doubled = doubler.process(css, { @@ -117,7 +119,7 @@ it('changes previous source map', () => { }) let map = consumer(lighted.map) - expect(map.originalPositionFor({ line: 1, column: 18 })).toEqual({ + equal(map.originalPositionFor({ line: 1, column: 18 }), { source: 'a.css', line: 1, column: 4, @@ -125,7 +127,7 @@ it('changes previous source map', () => { }) }) -it('adds source map annotation', () => { +test('adds source map annotation', () => { let css = 'a { }/*# sourceMappingURL=a.css.map */' let result = postcss([() => {}]).process(css, { from: 'a.css', @@ -133,10 +135,10 @@ it('adds source map annotation', () => { map: { inline: false } }) - expect(result.css).toBe('a { }\n/*# sourceMappingURL=b.css.map */') + is(result.css, 'a { }\n/*# sourceMappingURL=b.css.map */') }) -it('misses source map annotation, if user ask', () => { +test('misses source map annotation, if user ask', () => { let css = 'a { }' let result = postcss([() => {}]).process(css, { from: 'a.css', @@ -144,10 +146,10 @@ it('misses source map annotation, if user ask', () => { map: { annotation: false } }) - expect(result.css).toEqual(css) + is(result.css, css) }) -it('misses source map annotation, if previous map missed it', () => { +test('misses source map annotation, if previous map missed it', () => { let css = 'a { }' let step1 = postcss([() => {}]).process(css, { @@ -162,26 +164,27 @@ it('misses source map annotation, if previous map missed it', () => { map: { prev: step1.map } }) - expect(step2.css).toEqual(css) + is(step2.css, css) }) -it('uses user path in annotation, relative to options.to', () => { +test('uses user path in annotation, relative to options.to', () => { let result = postcss([() => {}]).process('a { }', { from: 'source/a.css', to: 'build/b.css', map: { annotation: 'maps/b.map' } }) - expect(result.css).toBe('a { }\n/*# sourceMappingURL=maps/b.map */') + is(result.css, 'a { }\n/*# sourceMappingURL=maps/b.map */') let map = consumer(result.map) - expect(map.file).toEqual(join('..', 'b.css')) - expect(map.originalPositionFor({ line: 1, column: 0 }).source).toBe( + is(map.file, join('..', 'b.css')) + is( + map.originalPositionFor({ line: 1, column: 0 }).source, '../../source/a.css' ) }) -it('generates inline map', () => { +test('generates inline map', () => { let css = 'a { }' let inline = postcss([() => {}]).process(css, { @@ -190,8 +193,8 @@ it('generates inline map', () => { map: { inline: true } }) - expect(inline.map).toBeUndefined() - expect(inline.css).toMatch(/# sourceMappingURL=data:/) + type(inline.map, 'undefined') + match(inline.css, /# sourceMappingURL=data:/) let separated = postcss([() => {}]).process(css, { from: 'a.css', @@ -201,19 +204,19 @@ it('generates inline map', () => { let base64 = Buffer.from(separated.map.toString()).toString('base64') let end = inline.css.slice(-base64.length - 3) - expect(end).toEqual(base64 + ' */') + is(end, base64 + ' */') }) -it('generates inline map by default', () => { +test('generates inline map by default', () => { let inline = postcss([() => {}]).process('a { }', { from: 'a.css', to: 'b.css', map: true }) - expect(inline.css).toMatch(/# sourceMappingURL=data:/) + match(inline.css, /# sourceMappingURL=data:/) }) -it('generates separated map if previous map was not inlined', () => { +test('generates separated map if previous map was not inlined', () => { let step1 = doubler.process('a { color: black }', { from: 'a.css', to: 'b.css', @@ -225,20 +228,20 @@ it('generates separated map if previous map was not inlined', () => { map: { prev: step1.map } }) - expect(typeof step2.map).toBe('object') + type(step2.map, 'object') }) -it('generates separated map on annotation option', () => { +test('generates separated map on annotation option', () => { let result = postcss([() => {}]).process('a { }', { from: 'a.css', to: 'b.css', map: { annotation: false } }) - expect(typeof result.map).toBe('object') + type(result.map, 'object') }) -it('allows change map type', () => { +test('allows change map type', () => { let step1 = postcss([() => {}]).process('a { }', { from: 'a.css', to: 'b.css', @@ -251,11 +254,11 @@ it('allows change map type', () => { map: { inline: false } }) - expect(typeof step2.map).toBe('object') - expect(step2.css).toMatch(/# sourceMappingURL=c\.css\.map/) + type(step2.map, 'object') + match(step2.css, /# sourceMappingURL=c\.css\.map/) }) -it('misses check files on requires', () => { +test('misses check files on requires', () => { let file = join(dir, 'a.css') let step1 = doubler.process('a { }', { @@ -271,24 +274,24 @@ it('misses check files on requires', () => { map: false }) - expect(step2.map).toBeUndefined() + type(step2.map, 'undefined') }) -it('works in subdirs', () => { +test('works in subdirs', () => { let result = doubler.process('a { }', { from: 'from/a.css', to: 'out/b.css', map: { inline: false } }) - expect(result.css).toMatch(/sourceMappingURL=b.css.map/) + match(result.css, /sourceMappingURL=b.css.map/) let map = consumer(result.map) - expect(map.file).toBe('b.css') - expect(map.sources).toEqual(['../from/a.css']) + is(map.file, 'b.css') + equal(map.sources, ['../from/a.css']) }) -it('uses map from subdir', () => { +test('uses map from subdir', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', @@ -305,7 +308,7 @@ it('uses map from subdir', () => { line: 1, column: 0 }).source - expect(source).toBe('../../a.css') + is(source, '../../a.css') let step3 = doubler.process(step2.css, { from: 'c.css', @@ -317,10 +320,10 @@ it('uses map from subdir', () => { line: 1, column: 0 }).source - expect(source).toBe('../../a.css') + is(source, '../../a.css') }) -it('uses map from subdir if it inlined', () => { +test('uses map from subdir if it inlined', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', @@ -337,10 +340,10 @@ it('uses map from subdir if it inlined', () => { line: 1, column: 0 }).source - expect(source).toBe('../../a.css') + is(source, '../../a.css') }) -it('uses map from subdir if it written as a file', () => { +test('uses map from subdir if it written as a file', () => { let step1 = doubler.process('a { }', { from: 'source/a.css', to: 'one/b.css', @@ -351,7 +354,7 @@ it('uses map from subdir if it written as a file', () => { line: 1, column: 0 }).source - expect(source).toBe('../../source/a.css') + is(source, '../../source/a.css') let file = join(dir, 'one', 'maps', 'b.css.map') outputFileSync(file, step1.map.toString()) @@ -366,10 +369,10 @@ it('uses map from subdir if it written as a file', () => { line: 1, column: 0 }).source - expect(source).toBe('../source/a.css') + is(source, '../source/a.css') }) -it('works with different types of maps', () => { +test('works with different types of maps', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'b.css', @@ -389,31 +392,31 @@ it('works with different types of maps', () => { line: 1, column: 0 }).source - expect(source).toBe('a.css') + is(source, 'a.css') } }) -it('sets source content by default', () => { +test('sets source content by default', () => { let result = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', map: true }) - expect(read(result).sourceContentFor('../a.css')).toBe('a { }') + is(read(result).sourceContentFor('../a.css'), 'a { }') }) -it('misses source content on request', () => { +test('misses source content on request', () => { let result = doubler.process('a { }', { from: 'a.css', to: 'out/b.css', map: { sourcesContent: false } }) - expect(read(result).sourceContentFor('../a.css')).toBeNull() + is(read(result).sourceContentFor('../a.css'), null) }) -it('misses source content if previous not have', () => { +test('misses source content if previous not have', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/a.css', @@ -429,10 +432,10 @@ it('misses source content if previous not have', () => { if (file1.first) file2.append(file1.first.clone()) let step2 = file2.toResult({ to: 'c.css', map: true }) - expect(read(step2).sourceContentFor('b.css')).toBeNull() + is(read(step2).sourceContentFor('b.css'), null) }) -it('misses source content on request in multiple steps', () => { +test('misses source content on request in multiple steps', () => { let step1 = doubler.process('a { }', { from: 'a.css', to: 'out/a.css', @@ -452,23 +455,23 @@ it('misses source content on request in multiple steps', () => { }) let map = read(step2) - expect(map.sourceContentFor('b.css')).toBeNull() - expect(map.sourceContentFor('../a.css')).toBeNull() + is(map.sourceContentFor('b.css'), null) + is(map.sourceContentFor('../a.css'), null) }) -it('detects input file name from map', () => { +test('detects input file name from map', () => { let one = doubler.process('a { }', { to: 'a.css', map: true }) let two = doubler.process(one.css, { map: { prev: one.map } }) - expect(two.root.first?.source?.input.file).toEqual(resolve('a.css')) + is(two.root.first?.source?.input.file, resolve('a.css')) }) -it('works without file names', () => { +test('works without file names', () => { let step1 = doubler.process('a { }', { map: true }) let step2 = doubler.process(step1.css) - expect(step2.css).toMatch(/a { }\n\/\*/) + match(step2.css, /a { }\n\/\*/) }) -it('supports UTF-8', () => { +test('supports UTF-8', () => { let step1 = doubler.process('a { }', { from: 'вход.css', to: 'шаг1.css', @@ -479,10 +482,10 @@ it('supports UTF-8', () => { to: 'выход.css' }) - expect(read(step2).file).toBe('выход.css') + is(read(step2).file, 'выход.css') }) -it('generates map for node created manually', () => { +test('generates map for node created manually', () => { let contenter = postcss((css: Root) => { if (css.first && css.first.type === 'rule') { css.first.prepend({ selector: 'b' }) @@ -490,7 +493,7 @@ it('generates map for node created manually', () => { }) let result = contenter.process('a:after{\n}', { map: true }) let map = read(result) - expect(map.originalPositionFor({ line: 2, column: 5 })).toEqual({ + equal(map.originalPositionFor({ line: 2, column: 5 }), { source: '', column: 0, line: 1, @@ -498,20 +501,20 @@ it('generates map for node created manually', () => { }) }) -it('uses input file name as output file name', () => { +test('uses input file name as output file name', () => { let result = doubler.process('a{}', { from: 'a.css', map: { inline: false } }) - expect(result.map.toJSON().file).toBe('a.css') + is(result.map.toJSON().file, 'a.css') }) -it('uses to.css as default output name', () => { +test('uses to.css as default output name', () => { let result = doubler.process('a{}', { map: { inline: false } }) - expect(result.map.toJSON().file).toBe('to.css') + is(result.map.toJSON().file, 'to.css') }) -it('supports annotation comment in any place', () => { +test('supports annotation comment in any place', () => { let css = '/*# sourceMappingURL=a.css.map */a { }' let result = postcss([() => {}]).process(css, { from: 'a.css', @@ -519,10 +522,10 @@ it('supports annotation comment in any place', () => { map: { inline: false } }) - expect(result.css).toBe('a { }\n/*# sourceMappingURL=b.css.map */') + is(result.css, 'a { }\n/*# sourceMappingURL=b.css.map */') }) -it('does not update annotation on request', () => { +test('does not update annotation on request', () => { let css = 'a { }/*# sourceMappingURL=a.css.map */' let result = postcss([() => {}]).process(css, { from: 'a.css', @@ -530,10 +533,10 @@ it('does not update annotation on request', () => { map: { annotation: false, inline: false } }) - expect(result.css).toBe('a { }/*# sourceMappingURL=a.css.map */') + is(result.css, 'a { }/*# sourceMappingURL=a.css.map */') }) -it('clears source map', () => { +test('clears source map', () => { let css1 = postcss.root().toResult({ map: true }).css let css2 = postcss.root().toResult({ map: true }).css @@ -542,43 +545,43 @@ it('clears source map', () => { root.append(css2) let css = root.toResult({ map: true }).css - expect(css.match(/sourceMappingURL/g)).toHaveLength(1) + is(css.match(/sourceMappingURL/g)?.length, 1) }) -it('uses Windows line separation too', () => { +test('uses Windows line separation too', () => { let result = postcss([() => {}]).process('a {\r\n}', { map: true }) - expect(result.css).toMatch(/a {\r\n}\r\n\/\*# sourceMappingURL=/) + match(result.css, /a {\r\n}\r\n\/\*# sourceMappingURL=/) }) -it('`map.from` should override the source map sources', () => { +test('`map.from` should override the source map sources', () => { let result = postcss([() => {}]).process('a{}', { map: { inline: false, from: 'file:///dir/a.css' } }) - expect(result.map.toJSON().sources).toEqual(['file:///dir/a.css']) + equal(result.map.toJSON().sources, ['file:///dir/a.css']) }) -it('preserves absolute urls in `to`', () => { +test('preserves absolute urls in `to`', () => { let result = postcss([() => {}]).process('a{}', { from: '/dir/to/a.css', to: 'http://example.com/a.css', map: { inline: false } }) - expect(result.map.toJSON().file).toBe('http://example.com/a.css') + is(result.map.toJSON().file, 'http://example.com/a.css') }) -it('preserves absolute urls in sources', () => { +test('preserves absolute urls in sources', () => { let result = postcss([() => {}]).process('a{}', { from: 'file:///dir/a.css', to: 'http://example.com/a.css', map: { inline: false } }) - expect(result.map.toJSON().sources).toEqual(['file:///dir/a.css']) + equal(result.map.toJSON().sources, ['file:///dir/a.css']) }) -it('uses absolute path on request', () => { +test('uses absolute path on request', () => { let result = postcss([() => {}]).process('a{}', { from: '/dir/a.css', to: '/dir/b.css', @@ -588,10 +591,10 @@ it('uses absolute path on request', () => { if (process.platform === 'win32') { root = '/' + parse(process.cwd()).root.replace(/\\/g, '/') } - expect(result.map.toJSON().sources).toEqual([`file://${root}dir/a.css`]) + equal(result.map.toJSON().sources, [`file://${root}dir/a.css`]) }) -it('preserves absolute urls in sources from previous map', () => { +test('preserves absolute urls in sources from previous map', () => { let result1 = postcss([() => {}]).process('a{}', { from: 'http://example.com/a.css', to: 'http://example.com/b.css', @@ -603,11 +606,11 @@ it('preserves absolute urls in sources from previous map', () => { inline: false } }) - expect(result2.root.source?.input.file).toBe('http://example.com/b.css') - expect(result2.map.toJSON().sources).toEqual(['http://example.com/a.css']) + is(result2.root.source?.input.file, 'http://example.com/b.css') + equal(result2.map.toJSON().sources, ['http://example.com/a.css']) }) -it('allows dynamic annotations', () => { +test('allows dynamic annotations', () => { let result = postcss([() => {}]).process('a{}', { to: 'out.css', map: { @@ -617,14 +620,16 @@ it('allows dynamic annotations', () => { } } }) - expect(result.css).toBe('a{}\n/*# sourceMappingURL=out.css-a.map */') + is(result.css, 'a{}\n/*# sourceMappingURL=out.css-a.map */') }) -it('uses URLs in sources', () => { +test('uses URLs in sources', () => { let result = postcss([() => {}]).process('a{}', { from: 'a b.css', to: 'dir/b.css', map: { inline: false } }) - expect(result.map.toJSON().sources).toEqual(['../a%20b.css']) + equal(result.map.toJSON().sources, ['../a%20b.css']) }) + +test.run() diff --git a/test/node.test.ts b/test/node.test.ts old mode 100644 new mode 100755 index ff347e400..f3c3d30a8 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -1,4 +1,6 @@ import { resolve } from 'path' +import { test } from 'uvu' +import { is, equal, type, not } from 'uvu/assert' import postcss, { AnyNode, @@ -19,52 +21,52 @@ function stringify(node: AnyNode, builder: (str: string) => void): void { } } -it('error() generates custom error', () => { +test('error() generates custom error', () => { let file = resolve('a.css') let css = parse('a{}', { from: file }) let a = css.first as Rule let error = a.error('Test') - expect(error instanceof CssSyntaxError).toBe(true) - expect(error.message).toEqual(file + ':1:1: Test') + is(error instanceof CssSyntaxError, true) + is(error.message, file + ':1:1: Test') }) -it('error() generates custom error for nodes without source', () => { +test('error() generates custom error for nodes without source', () => { let rule = new Rule({ selector: 'a' }) let error = rule.error('Test') - expect(error.message).toBe(': Test') + is(error.message, ': Test') }) -it('error() highlights index', () => { +test('error() highlights index', () => { let root = parse('a { b: c }') let a = root.first as Rule let b = a.first as Declaration let error = b.error('Bad semicolon', { index: 1 }) - expect(error.showSourceCode(false)).toEqual( - '> 1 | a { b: c }\n' + ' | ^' - ) + is(error.showSourceCode(false), '> 1 | a { b: c }\n' + ' | ^') }) -it('error() highlights word', () => { +test('error() highlights word', () => { let root = parse('a { color: x red }') let a = root.first as Rule let color = a.first as Declaration let error = color.error('Wrong color', { word: 'x' }) - expect(error.showSourceCode(false)).toEqual( + is( + error.showSourceCode(false), '> 1 | a { color: x red }\n' + ' | ^' ) }) -it('error() highlights word in multiline string', () => { +test('error() highlights word in multiline string', () => { let root = parse('a { color: red\n x }') let a = root.first as Rule let color = a.first as Declaration let error = color.error('Wrong color', { word: 'x' }) - expect(error.showSourceCode(false)).toEqual( + is( + error.showSourceCode(false), ' 1 | a { color: red\n' + '> 2 | x }\n' + ' | ^' ) }) -it('warn() attaches a warning to the result object', async () => { +test('warn() attaches a warning to the result object', async () => { let warning: any let warner: Plugin = { postcssPlugin: 'warner', @@ -74,34 +76,34 @@ it('warn() attaches a warning to the result object', async () => { } let result = await postcss([warner]).process('a{}', { from: undefined }) - expect(warning.type).toBe('warning') - expect(warning.text).toBe('FIRST!') - expect(warning.plugin).toBe('warner') - expect(result.warnings()).toEqual([warning]) + is(warning.type, 'warning') + is(warning.text, 'FIRST!') + is(warning.plugin, 'warner') + equal(result.warnings(), [warning]) }) -it('warn() accepts options', () => { +test('warn() accepts options', () => { let warner = (css: Root, result: Result): void => { css.first?.warn(result, 'FIRST!', { index: 1 }) } let result = postcss([warner]).process('a{}') - expect(result.warnings()).toHaveLength(1) + is(result.warnings().length, 1) let warning = result.warnings()[0] as any - expect(warning.index).toBe(1) + is(warning.index, 1) }) -it('remove() removes node from parent', () => { +test('remove() removes node from parent', () => { let rule = new Rule({ selector: 'a' }) let decl = new Declaration({ prop: 'color', value: 'black' }) rule.append(decl) decl.remove() - expect(rule.nodes).toHaveLength(0) - expect(decl.parent).toBeUndefined() + is(rule.nodes.length, 0) + type(decl.parent, 'undefined') }) -it('replaceWith() inserts new node', () => { +test('replaceWith() inserts new node', () => { let rule = new Rule({ selector: 'a' }) rule.append({ prop: 'color', value: 'black' }) rule.append({ prop: 'width', value: '1px' }) @@ -111,8 +113,9 @@ it('replaceWith() inserts new node', () => { let width = rule.nodes[1] let result = width.replaceWith(node) - expect(result).toEqual(width) - expect(rule.toString()).toEqual( + equal(result, width) + is( + rule.toString(), 'a {\n' + ' color: black;\n' + ' min-width: 1px;\n' + @@ -121,7 +124,7 @@ it('replaceWith() inserts new node', () => { ) }) -it('replaceWith() inserts new root', () => { +test('replaceWith() inserts new root', () => { let root = new Root() root.append(new AtRule({ name: 'import', params: '"a.css"' })) @@ -130,21 +133,21 @@ it('replaceWith() inserts new root', () => { a.append(new Rule({ selector: 'b' })) root.first?.replaceWith(a) - expect(root.toString()).toBe('a {}\nb {}') + is(root.toString(), 'a {}\nb {}') }) -it('replaceWith() replaces node', () => { +test('replaceWith() replaces node', () => { let css = parse('a{one:1;two:2}') let a = css.first as Rule let one = a.first as Declaration let result = one.replaceWith({ prop: 'fix', value: 'fixed' }) - expect(result.prop).toBe('one') - expect(result.parent).toBeUndefined() - expect(css.toString()).toBe('a{fix:fixed;two:2}') + is(result.prop, 'one') + type(result.parent, 'undefined') + is(css.toString(), 'a{fix:fixed;two:2}') }) -it('replaceWith() can include itself', () => { +test('replaceWith() can include itself', () => { let css = parse('a{one:1;two:2}') let a = css.first as Rule let one = a.first as Declaration @@ -152,56 +155,56 @@ it('replaceWith() can include itself', () => { let afterDecl = { prop: 'fix2', value: 'fixedTwo' } one.replaceWith(beforeDecl, one, afterDecl) - expect(css.toString()).toBe('a{fix1:fixedOne;one:1;fix2:fixedTwo;two:2}') + is(css.toString(), 'a{fix1:fixedOne;one:1;fix2:fixedTwo;two:2}') }) -it('toString() accepts custom stringifier', () => { - expect(new Rule({ selector: 'a' }).toString(stringify)).toBe('a') +test('toString() accepts custom stringifier', () => { + is(new Rule({ selector: 'a' }).toString(stringify), 'a') }) -it('toString() accepts custom syntax', () => { - expect(new Rule({ selector: 'a' }).toString({ stringify })).toBe('a') +test('toString() accepts custom syntax', () => { + is(new Rule({ selector: 'a' }).toString({ stringify }), 'a') }) -it('assign() assigns to node', () => { +test('assign() assigns to node', () => { let decl = new Declaration({ prop: 'white-space', value: 'overflow-wrap' }) - expect(decl.prop).toBe('white-space') - expect(decl.value).toBe('overflow-wrap') + is(decl.prop, 'white-space') + is(decl.value, 'overflow-wrap') decl.assign({ prop: 'word-wrap', value: 'break-word' }) - expect(decl.prop).toBe('word-wrap') - expect(decl.value).toBe('break-word') + is(decl.prop, 'word-wrap') + is(decl.value, 'break-word') }) -it('clone() clones nodes', () => { +test('clone() clones nodes', () => { let rule = new Rule({ selector: 'a' }) rule.append({ prop: 'color', value: '/**/black' }) let clone = rule.clone() - expect(clone.parent).toBeUndefined() + type(clone.parent, 'undefined') - expect(rule.first?.parent).toBe(rule) - expect(clone.first?.parent).toBe(clone) + equal(rule.first?.parent, rule) + equal(clone.first?.parent, clone) clone.append({ prop: 'z-index', value: '1' }) - expect(rule.nodes).toHaveLength(1) + is(rule.nodes.length, 1) }) -it('clone() overrides properties', () => { +test('clone() overrides properties', () => { let rule = new Rule({ selector: 'a' }) let clone = rule.clone({ selector: 'b' }) - expect(clone.selector).toBe('b') + is(clone.selector, 'b') }) -it('clone() keeps code style', () => { +test('clone() keeps code style', () => { let css = parse('@page 1{a{color:black;}}') - expect(css.clone().toString()).toBe('@page 1{a{color:black;}}') + is(css.clone().toString(), '@page 1{a{color:black;}}') }) -it('clone() works with null in raws', () => { +test('clone() works with null in raws', () => { let decl = new Declaration({ prop: 'color', value: 'black', @@ -209,89 +212,90 @@ it('clone() works with null in raws', () => { raws: { value: null } }) let clone = decl.clone() - expect(Object.keys(clone.raws)).toEqual(['value']) + equal(Object.keys(clone.raws), ['value']) }) -it('cloneBefore() clones and insert before current node', () => { +test('cloneBefore() clones and insert before current node', () => { let rule = new Rule({ selector: 'a', raws: { after: '' } }) rule.append({ prop: 'z-index', value: '1', raws: { before: '' } }) let result = rule.first?.cloneBefore({ value: '2' }) - expect(result).toBe(rule.first) - expect(rule.toString()).toBe('a {z-index: 2;z-index: 1}') + equal(result, rule.first) + is(rule.toString(), 'a {z-index: 2;z-index: 1}') }) -it('cloneAfter() clones and insert after current node', () => { +test('cloneAfter() clones and insert after current node', () => { let rule = new Rule({ selector: 'a', raws: { after: '' } }) rule.append({ prop: 'z-index', value: '1', raws: { before: '' } }) let result = rule.first?.cloneAfter({ value: '2' }) - expect(result).toBe(rule.last) - expect(rule.toString()).toBe('a {z-index: 1;z-index: 2}') + equal(result, rule.last) + is(rule.toString(), 'a {z-index: 1;z-index: 2}') }) -it('before() insert before current node', () => { +test('before() insert before current node', () => { let rule = new Rule({ selector: 'a', raws: { after: '' } }) rule.append({ prop: 'z-index', value: '1', raws: { before: '' } }) let result = rule.first?.before('color: black') - expect(result).toBe(rule.last) - expect(rule.toString()).toBe('a {color: black;z-index: 1}') + equal(result, rule.last) + is(rule.toString(), 'a {color: black;z-index: 1}') }) -it('after() insert after current node', () => { +test('after() insert after current node', () => { let rule = new Rule({ selector: 'a', raws: { after: '' } }) rule.append({ prop: 'z-index', value: '1', raws: { before: '' } }) let result = rule.first?.after('color: black') - expect(result).toBe(rule.first) - expect(rule.toString()).toBe('a {z-index: 1;color: black}') + equal(result, rule.first) + is(rule.toString(), 'a {z-index: 1;color: black}') }) -it('next() returns next node', () => { +test('next() returns next node', () => { let css = parse('a{one:1;two:2}') let a = css.first as Rule - expect(a.first?.next()).toBe(a.last) - expect(a.last?.next()).toBeUndefined() + equal(a.first?.next(), a.last) + type(a.last?.next(), 'undefined') }) -it('next() returns undefined on no parent', () => { +test('next() returns undefined on no parent', () => { let css = parse('') - expect(css.next()).toBeUndefined() + type(css.next(), 'undefined') }) -it('prev() returns previous node', () => { +test('prev() returns previous node', () => { let css = parse('a{one:1;two:2}') let a = css.first as Rule - expect(a.last?.prev()).toBe(a.first) - expect(a.first?.prev()).toBeUndefined() + equal(a.last?.prev(), a.first) + type(a.first?.prev(), 'undefined') }) -it('prev() returns undefined on no parent', () => { +test('prev() returns undefined on no parent', () => { let css = parse('') - expect(css.prev()).toBeUndefined() + type(css.prev(), 'undefined') }) -it('toJSON() cleans parents inside', () => { +test('toJSON() cleans parents inside', () => { let rule = new Rule({ selector: 'a' }) rule.append({ prop: 'color', value: 'b' }) let json = rule.toJSON() as any - expect(json.parent).toBeUndefined() - expect(json.nodes[0].parent).toBeUndefined() + type(json.parent, 'undefined') + type(json.nodes[0].parent, 'undefined') - expect(JSON.stringify(rule)).toEqual( + is( + JSON.stringify(rule), '{"raws":{},"selector":"a","type":"rule","nodes":[' + '{"raws":{},"prop":"color","value":"b","type":"decl"}' + '],"inputs":[]}' ) }) -it('toJSON() converts custom properties', () => { +test('toJSON() converts custom properties', () => { let root = new Root() as any root._cache = [1] root._hack = { @@ -300,7 +304,7 @@ it('toJSON() converts custom properties', () => { } } - expect(root.toJSON()).toEqual({ + equal(root.toJSON(), { type: 'root', nodes: [], raws: {}, @@ -310,102 +314,102 @@ it('toJSON() converts custom properties', () => { }) }) -it('raw() has shortcut to stringifier', () => { +test('raw() has shortcut to stringifier', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.raw('before')).toBe('') + is(rule.raw('before'), '') }) -it('root() returns root', () => { +test('root() returns root', () => { let css = parse('@page{a{color:black}}') let page = css.first as AtRule let a = page.first as Rule let color = a.first as Declaration - expect(color.root()).toBe(css) + equal(color.root(), css) }) -it('root() returns parent of parents', () => { +test('root() returns parent of parents', () => { let rule = new Rule({ selector: 'a' }) rule.append({ prop: 'color', value: 'black' }) - expect(rule.first?.root()).toBe(rule) + equal(rule.first?.root(), rule) }) -it('root() returns self on root', () => { +test('root() returns self on root', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.root()).toBe(rule) + equal(rule.root(), rule) }) -it('root() returns root in document', () => { +test('root() returns root in document', () => { let css = new Document({ nodes: [parse('@page{a{color:black}}')] }) let root = css.first as Root let page = root.first as AtRule let a = page.first as Rule let color = a.first as Declaration - expect(color.root()).toBe(root) + equal(color.root(), root) }) -it('root() on root in document returns same root', () => { +test('root() on root in document returns same root', () => { let document = new Document() let root = new Root() document.append(root) - expect(document.first?.root()).toBe(root) + equal(document.first?.root(), root) }) -it('root() returns self on document', () => { +test('root() returns self on document', () => { let document = new Document() - expect(document.root()).toBe(document) + equal(document.root(), document) }) -it('cleanRaws() cleans style recursivelly', () => { +test('cleanRaws() cleans style recursivelly', () => { let css = parse('@page{a{color:black}}') css.cleanRaws() - expect(css.toString()).toBe( - '@page {\n a {\n color: black\n }\n}' - ) + is(css.toString(), '@page {\n a {\n color: black\n }\n}') let page = css.first as AtRule let a = page.first as Rule let color = a.first as Declaration - expect(page.raws.before).toBeUndefined() - expect(color.raws.before).toBeUndefined() - expect(page.raws.between).toBeUndefined() - expect(color.raws.between).toBeUndefined() - expect(page.raws.after).toBeUndefined() + type(page.raws.before, 'undefined') + type(color.raws.before, 'undefined') + type(page.raws.between, 'undefined') + type(color.raws.between, 'undefined') + type(page.raws.after, 'undefined') }) -it('cleanRaws() keeps between on request', () => { +test('cleanRaws() keeps between on request', () => { let css = parse('@page{a{color:black}}') css.cleanRaws(true) - expect(css.toString()).toBe('@page{\n a{\n color:black\n }\n}') + is(css.toString(), '@page{\n a{\n color:black\n }\n}') let page = css.first as AtRule let a = page.first as Rule let color = a.first as Declaration - expect(page.raws.between).toBeDefined() - expect(color.raws.between).toBeDefined() - expect(page.raws.before).toBeUndefined() - expect(color.raws.before).toBeUndefined() - expect(page.raws.after).toBeUndefined() + not.type(page.raws.between, 'undefined') + not.type(color.raws.between, 'undefined') + type(page.raws.before, 'undefined') + type(color.raws.before, 'undefined') + type(page.raws.after, 'undefined') }) -it('positionInside() returns position when node starts mid-line', () => { +test('positionInside() returns position when node starts mid-line', () => { let css = parse('a { one: X }') let a = css.first as Rule let one = a.first as Declaration - expect(one.positionInside(6)).toEqual({ line: 1, column: 12 }) + equal(one.positionInside(6), { line: 1, column: 12 }) }) -it('positionInside() returns position when before contains newline', () => { +test('positionInside() returns position when before contains newline', () => { let css = parse('a {\n one: X}') let a = css.first as Rule let one = a.first as Declaration - expect(one.positionInside(6)).toEqual({ line: 2, column: 9 }) + equal(one.positionInside(6), { line: 2, column: 9 }) }) -it('positionInside() returns position when node contains newlines', () => { +test('positionInside() returns position when node contains newlines', () => { let css = parse('a {\n\tone: 1\n\t\tX\n3}') let a = css.first as Rule let one = a.first as Declaration - expect(one.positionInside(10)).toEqual({ line: 3, column: 4 }) + equal(one.positionInside(10), { line: 3, column: 4 }) }) + +test.run() diff --git a/test/parse.test.ts b/test/parse.test.ts old mode 100644 new mode 100755 index a3645d05c..c6f5328ac --- a/test/parse.test.ts +++ b/test/parse.test.ts @@ -1,66 +1,68 @@ import { testPath, jsonify, eachTest } from 'postcss-parser-tests' import { readFileSync } from 'fs' import { resolve } from 'path' +import { test } from 'uvu' +import { equal, is, match, not, throws } from 'uvu/assert' import { Declaration, AtRule, parse, Root, Rule } from '../lib/postcss.js' -it('works with file reads', () => { +test('works with file reads', () => { let stream = readFileSync(testPath('atrule-empty.css')) - expect(parse(stream) instanceof Root).toBe(true) + is(parse(stream) instanceof Root, true) }) eachTest((name, css, json) => { - it(`parses ${name}`, () => { + test(`parses ${name}`, () => { css = css.replace(/\r\n/g, '\n') let parsed = jsonify(parse(css, { from: name })) - expect(JSON.parse(parsed)).toEqual(JSON.parse(json)) + equal(JSON.parse(parsed), JSON.parse(json)) }) }) -it('parses UTF-8 BOM', () => { +test('parses UTF-8 BOM', () => { let css = parse('\uFEFF@host { a {\f} }') - expect(css.nodes[0].raws.before).toBe('') + is(css.nodes[0].raws.before, '') }) -it('should has true at `hasBOM` property', () => { +test('should has true at `hasBOM` property', () => { let css = parse('\uFEFF@host { a {\f} }') - expect(css.first?.source?.input.hasBOM).toBe(true) + is(css.first?.source?.input.hasBOM, true) }) -it('should has false at `hasBOM` property', () => { +test('should has false at `hasBOM` property', () => { let css = parse('@host { a {\f} }') - expect(css.first?.source?.input.hasBOM).toBe(false) + is(css.first?.source?.input.hasBOM, false) }) -it('saves source file', () => { +test('saves source file', () => { let css = parse('a {}', { from: 'a.css' }) - expect(css.first?.source?.input.css).toBe('a {}') - expect(css.first?.source?.input.file).toEqual(resolve('a.css')) - expect(css.first?.source?.input.from).toEqual(resolve('a.css')) + is(css.first?.source?.input.css, 'a {}') + is(css.first?.source?.input.file, resolve('a.css')) + is(css.first?.source?.input.from, resolve('a.css')) }) -it('keeps absolute path in source', () => { +test('keeps absolute path in source', () => { let css = parse('a {}', { from: 'http://example.com/a.css' }) - expect(css.first?.source?.input.file).toBe('http://example.com/a.css') - expect(css.first?.source?.input.from).toBe('http://example.com/a.css') + is(css.first?.source?.input.file, 'http://example.com/a.css') + is(css.first?.source?.input.from, 'http://example.com/a.css') }) -it('saves source file on previous map', () => { +test('saves source file on previous map', () => { let root1 = parse('a {}', { map: { inline: true } }) let css = root1.toResult({ map: { inline: true } }).css let root2 = parse(css) - expect(root2.first?.source?.input.file).toEqual(resolve('to.css')) + is(root2.first?.source?.input.file, resolve('to.css')) }) -it('sets unique ID for file without name', () => { +test('sets unique ID for file without name', () => { let css1 = parse('a {}') let css2 = parse('a {}') - expect(css1.first?.source?.input.id).toMatch(/^$/) - expect(css1.first?.source?.input.from).toMatch(/^$/) - expect(css2.first?.source?.input.id).not.toEqual(css1.first?.source?.input.id) + match(String(css1.first?.source?.input.id), /^$/) + match(String(css1.first?.source?.input.from), /^$/) + is.not(css2.first?.source?.input.id, css1.first?.source?.input.id) }) -it('sets parent node', () => { +test('sets parent node', () => { let file = testPath('atrule-rules.css') let css = parse(readFileSync(file)) @@ -69,157 +71,159 @@ it('sets parent node', () => { let from = keyframes.first as Rule let decl = from.first as Declaration - expect(decl.parent).toBe(from) - expect(from.parent).toBe(keyframes) - expect(support.parent).toBe(css) - expect(keyframes.parent).toBe(support) + is(decl.parent, from) + is(from.parent, keyframes) + is(support.parent, css) + is(keyframes.parent, support) }) -it('ignores wrong close bracket', () => { +test('ignores wrong close bracket', () => { let root = parse('a { p: ()) }') let a = root.first as Rule let decl = a.first as Declaration - expect(decl.value).toBe('())') + is(decl.value, '())') }) -it('parses unofficial --mixins', () => { +test('parses unofficial --mixins', () => { let root = parse(':root { --x { color: pink; }; }') let rule = root.first as Rule let prop = rule.first as Rule - expect(prop.selector).toBe('--x') + is(prop.selector, '--x') }) -it('ignores symbols before declaration', () => { +test('ignores symbols before declaration', () => { let root = parse('a { :one: 1 }') let a = root.first as Rule let prop = a.first as Declaration - expect(prop.raws.before).toBe(' :') + is(prop.raws.before, ' :') }) -it('parses double semicolon after rule', () => { - expect(parse('a { };;').toString()).toBe('a { };;') +test('parses double semicolon after rule', () => { + is(parse('a { };;').toString(), 'a { };;') }) -it('throws on unclosed blocks', () => { - expect(() => { +test('throws on unclosed blocks', () => { + throws(() => { parse('\na {\n') - }).toThrow(/:2:1: Unclosed block/) + }, /:2:1: Unclosed block/) }) -it('throws on unnecessary block close', () => { - expect(() => { +test('throws on unnecessary block close', () => { + throws(() => { parse('a {\n} }') - }).toThrow(/:2:3: Unexpected }/) + }, /:2:3: Unexpected }/) }) -it('throws on unclosed comment', () => { - expect(() => { +test('throws on unclosed comment', () => { + throws(() => { parse('\n/*\n ') - }).toThrow(/:2:1: Unclosed comment/) + }, /:2:1: Unclosed comment/) }) -it('throws on unclosed quote', () => { - expect(() => { +test('throws on unclosed quote', () => { + throws(() => { parse('\n"\n\na ') - }).toThrow(/:2:1: Unclosed string/) + }, /:2:1: Unclosed string/) }) -it('throws on unclosed bracket', () => { - expect(() => { +test('throws on unclosed bracket', () => { + throws(() => { parse(':not(one() { }') - }).toThrow(/:1:5: Unclosed bracket/) + }, /:1:5: Unclosed bracket/) }) -it('throws on property without value', () => { - expect(() => { +test('throws on property without value', () => { + throws(() => { parse('a { b;}') - }).toThrow(/:1:5: Unknown word/) - expect(() => { + }, /:1:5: Unknown word/) + throws(() => { parse('a { b b }') - }).toThrow(/:1:5: Unknown word/) + }, /:1:5: Unknown word/) }) -it('throws on nameless at-rule', () => { - expect(() => { +test('throws on nameless at-rule', () => { + throws(() => { parse('@') - }).toThrow(/:1:1: At-rule without name/) + }, /:1:1: At-rule without name/) }) -it('throws on property without semicolon', () => { - expect(() => { +test('throws on property without semicolon', () => { + throws(() => { parse('a { one: filter(a:"") two: 2 }') - }).toThrow(/:1:21: Missed semicolon/) + }, /:1:21: Missed semicolon/) }) -it('throws on double colon', () => { - expect(() => { +test('throws on double colon', () => { + throws(() => { parse('a { one:: 1 }') - }).toThrow(/:1:9: Double colon/) + }, /:1:9: Double colon/) }) -it('do not throws on comment in between', () => { +test('do not throws on comment in between', () => { parse('a { b/* c */: 1 }') }) -it('throws on two words in between', () => { - expect(() => { +test('throws on two words in between', () => { + throws(() => { parse('a { b c: 1 }') - }).toThrow(/:1:7: Unknown word/) + }, /:1:7: Unknown word/) }) -it('throws on just colon', () => { - expect(() => { +test('throws on just colon', () => { + throws(() => { parse(':') - }).toThrow(/:1:1: Unknown word/) - expect(() => { + }, /:1:1: Unknown word/) + throws(() => { parse(' : ') - }).toThrow(/:1:2: Unknown word/) + }, /:1:2: Unknown word/) }) -it('does not suggest different parsers for CSS', () => { +test('does not suggest different parsers for CSS', () => { let error: any try { parse('a { one:: 1 }', { from: 'app.css' }) } catch (e) { error = e } - expect(error.message).not.toMatch(/postcss-less|postcss-scss/) + not.match(error.message, /postcss-less|postcss-scss/) }) -it('suggests postcss-scss for SCSS sources', () => { - expect(() => { +test('suggests postcss-scss for SCSS sources', () => { + throws(() => { parse('a { #{var}: 1 }', { from: 'app.scss' }) - }).toThrow(/postcss-scss/) + }, /postcss-scss/) }) -it('suggests postcss-sass for Sass sources', () => { - expect(() => { +test('suggests postcss-sass for Sass sources', () => { + throws(() => { parse('a\n #{var}: 1', { from: 'app.sass' }) - }).toThrow(/postcss-sass/) + }, /postcss-sass/) }) -it('suggests postcss-less for Less sources', () => { - expect(() => { +test('suggests postcss-less for Less sources', () => { + throws(() => { parse('.@{my-selector} { }', { from: 'app.less' }) - }).toThrow(/postcss-less/) + }, /postcss-less/) }) -it('should give the correct column of missed semicolon with !important', () => { +test('should give the correct column of missed semicolon with !important', () => { let error: any try { parse('a { \n color: red !important\n background-color: black;\n}') } catch (e) { error = e } - expect(error.message).toMatch(/2:26: Missed semicolon/) + match(error.message, /2:26: Missed semicolon/) }) -it('should give the correct column of missed semicolon without !important', () => { +test('should give the correct column of missed semicolon without !important', () => { let error: any try { parse('a { \n color: red\n background-color: black;\n}') } catch (e) { error = e } - expect(error.message).toMatch(/2:15: Missed semicolon/) + match(error.message, /2:15: Missed semicolon/) }) + +test.run() diff --git a/test/postcss.test.ts b/test/postcss.test.ts old mode 100644 new mode 100755 index 5d4757c76..517ba57d4 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -1,91 +1,48 @@ +import { test, suite } from 'uvu' +import { is, type, equal, match, throws } from 'uvu/assert' + import postcss, { Root, PluginCreator } from '../lib/postcss.js' import Processor from '../lib/processor.js' -afterEach(() => { - jest.resetAllMocks() -}) +const postcssSuite = suite('postcss suite') -it('creates plugins list', () => { +test('creates plugins list', () => { let processor = postcss() - expect(processor instanceof Processor).toBe(true) - expect(processor.plugins).toEqual([]) + is(processor instanceof Processor, true) + equal(processor.plugins, []) }) -it('saves plugins list', () => { +test('saves plugins list', () => { let a = (): void => {} let b = (): void => {} - expect(postcss(a, b).plugins).toEqual([a, b]) + equal(postcss(a, b).plugins, [a, b]) }) -it('saves plugins list as array', () => { +test('saves plugins list as array', () => { let a = (): void => {} let b = (): void => {} - expect(postcss([a, b]).plugins).toEqual([a, b]) + equal(postcss([a, b]).plugins, [a, b]) }) -it('takes plugin from other processor', () => { +test('takes plugin from other processor', () => { let a = (): void => {} let b = (): void => {} let c = (): void => {} let other = postcss([a, b]) - expect(postcss([other, c]).plugins).toEqual([a, b, c]) + equal(postcss([other, c]).plugins, [a, b, c]) }) -it('takes plugins from a a plugin returning a processor', () => { +test('takes plugins from a a plugin returning a processor', () => { let a = (): void => {} let b = (): void => {} let c = (): void => {} let other = postcss([a, b]) let meta = (() => other) as PluginCreator meta.postcss = true - expect(postcss([other, c]).plugins).toEqual([a, b, c]) -}) - -it('creates plugin', () => { - jest.spyOn(console, 'warn').mockImplementation(() => true) - let plugin = (postcss as any).plugin('test', (filter?: string) => { - return (root: Root) => { - root.walkDecls(filter ?? 'two', i => { - i.remove() - }) - } - }) - expect(console.warn).toHaveBeenCalledTimes(1) - expect(console.warn).toHaveBeenCalledWith(expect.stringMatching(/test/)) - - let func1: any = postcss(plugin).plugins[0] - expect(func1.postcssPlugin).toBe('test') - expect(func1.postcssVersion).toMatch(/\d+.\d+.\d+/) - - let func2: any = postcss(plugin()).plugins[0] - expect(func2.postcssPlugin).toEqual(func1.postcssPlugin) - expect(func2.postcssVersion).toEqual(func1.postcssVersion) - - let result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }') - expect(result1.css).toBe('a{ two: 2 }') - - let result2 = postcss(plugin).process('a{ one: 1; two: 2 }') - expect(result2.css).toBe('a{ one: 1 }') + equal(postcss([other, c]).plugins, [a, b, c]) }) -it('does not call plugin constructor', () => { - jest.spyOn(console, 'warn').mockImplementation(() => true) - let calls = 0 - let plugin = (postcss as any).plugin('test', () => { - calls += 1 - return () => {} - }) - expect(calls).toBe(0) - expect(console.warn).toHaveBeenCalledTimes(1) - - postcss(plugin).process('a{}') - expect(calls).toBe(1) - - postcss(plugin()).process('a{}') - expect(calls).toBe(2) -}) - -it('creates a shortcut to process css', async () => { +test('creates a shortcut to process css', async () => { let plugin = (postcss as any).plugin('test', (str?: string) => { return (root: Root) => { root.walkDecls(i => { @@ -95,25 +52,25 @@ it('creates a shortcut to process css', async () => { }) let result1 = plugin.process('a{value:foo}') - expect(result1.css).toBe('a{value:bar}') + is(result1.css, 'a{value:bar}') let result2 = plugin.process('a{value:foo}', {}, 'baz') - expect(result2.css).toBe('a{value:baz}') + is(result2.css, 'a{value:baz}') let result = await plugin.process('a{value:foo}', { from: 'a' }, 'baz') - expect(result.opts).toEqual({ from: 'a' }) - expect(result.css).toBe('a{value:baz}') + equal(result.opts, { from: 'a' }) + is(result.css, 'a{value:baz}') }) -it('contains parser', () => { - expect(postcss.parse('').type).toBe('root') +test('contains parser', () => { + is(postcss.parse('').type, 'root') }) -it('contains stringifier', () => { - expect(typeof postcss.stringify).toBe('function') +test('contains stringifier', () => { + type(postcss.stringify, 'function') }) -it('allows to build own CSS', () => { +test('allows to build own CSS', () => { let root = postcss.root({ raws: { after: '\n' } }) let comment = postcss.comment({ text: 'Example' }) let media = postcss.atRule({ name: 'media', params: 'screen' }) @@ -125,7 +82,8 @@ it('allows to build own CSS', () => { media.append(rule) root.append(media) - expect(root.toString()).toEqual( + is( + root.toString(), '/* Example */\n' + '@media screen {\n' + ' a {\n' + @@ -135,7 +93,7 @@ it('allows to build own CSS', () => { ) }) -it('allows to build own CSS with Document', () => { +test('allows to build own CSS with Document', () => { let document = postcss.document() let root = postcss.root({ raws: { after: '\n' } }) let comment = postcss.comment({ text: 'Example' }) @@ -149,7 +107,8 @@ it('allows to build own CSS with Document', () => { root.append(media) document.append(root) - expect(document.toString()).toEqual( + is( + document.toString(), '/* Example */\n' + '@media screen {\n' + ' a {\n' + @@ -159,13 +118,83 @@ it('allows to build own CSS with Document', () => { ) }) -it('contains list module', () => { - expect(postcss.list.space('a b')).toEqual(['a', 'b']) +test('contains list module', () => { + equal(postcss.list.space('a b'), ['a', 'b']) }) -it('works with null', () => { - expect(() => { +test('works with null', () => { + throws(() => { // @ts-expect-error postcss([() => {}]).process(null).css - }).toThrow(/PostCSS received null instead of CSS string/) + }, /PostCSS received null instead of CSS string/) +}) + +test.run() + +let _Warn: typeof global.console.warn +let _WarnArguments: any +let _WarnHaveBeenCalled: number + +postcssSuite.before(() => { + _Warn = global.console.warn + _WarnHaveBeenCalled = 0 + _WarnArguments = '' + global.console.warn = (...args) => { + _WarnArguments = args[0] + _WarnHaveBeenCalled++ + } }) + +postcssSuite.after.each(() => { + _WarnHaveBeenCalled = 0 + _WarnArguments = '' +}) + +postcssSuite.after(() => { + global.console.warn = _Warn +}) + +postcssSuite.only('creates plugin', () => { + let plugin = (postcss as any).plugin('test', (filter?: string) => { + return (root: Root) => { + root.walkDecls(filter ?? 'two', i => { + i.remove() + }) + } + }) + is(_WarnHaveBeenCalled, 1) + match(_WarnArguments, /test/) + + let func1: any = postcss(plugin).plugins[0] + is(func1.postcssPlugin, 'test') + match(func1.postcssVersion, /\d+.\d+.\d+/) + + let func2: any = postcss(plugin()).plugins[0] + equal(func2.postcssPlugin, func1.postcssPlugin) + equal(func2.postcssVersion, func1.postcssVersion) + + let result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }') + is(result1.css, 'a{ two: 2 }') + + let result2 = postcss(plugin).process('a{ one: 1; two: 2 }') + is(result2.css, 'a{ one: 1 }') +}) + +postcssSuite.only('does not call plugin constructor', () => { + global.console.warn + let calls = 0 + let plugin = (postcss as any).plugin('test', () => { + calls += 1 + return () => {} + }) + is(calls, 0) + is(_WarnHaveBeenCalled, 1) + + postcss(plugin).process('a{}') + is(calls, 1) + + postcss(plugin()).process('a{}') + is(calls, 2) +}) + +postcssSuite.run() diff --git a/test/previous-map.test.ts b/test/previous-map.test.ts old mode 100644 new mode 100755 index 939257db4..6c0db7511 --- a/test/previous-map.test.ts +++ b/test/previous-map.test.ts @@ -3,6 +3,8 @@ import { SourceMapConsumer } from 'source-map-js' import { pathToFileURL } from 'url' import { existsSync } from 'fs' import { join } from 'path' +import { test } from 'uvu' +import { is, type, equal, match, throws, not } from 'uvu/assert' import { parse } from '../lib/postcss.js' @@ -16,35 +18,35 @@ let mapObj = { } let map = JSON.stringify(mapObj) -afterEach(() => { +test.after.each(() => { if (existsSync(dir)) removeSync(dir) }) -it('misses property if no map', () => { - expect(parse('a{}').source?.input.map).toBeUndefined() +test('misses property if no map', () => { + type(parse('a{}').source?.input.map, 'undefined') }) -it('creates property if map present', () => { +test('creates property if map present', () => { let root = parse('a{}', { map: { prev: map } }) - expect(root.source?.input.map.text).toEqual(map) + is(root.source?.input.map.text, map) }) -it('returns consumer', () => { +test('returns consumer', () => { let obj = parse('a{}', { map: { prev: map } }).source?.input.map.consumer() - expect(obj instanceof SourceMapConsumer).toBe(true) + is(obj instanceof SourceMapConsumer, true) }) -it('sets annotation property', () => { +test('sets annotation property', () => { let mapOpts = { map: { prev: map } } let root1 = parse('a{}', mapOpts) - expect(root1.source?.input.map.annotation).toBeUndefined() + type(root1.source?.input.map.annotation, 'undefined') let root2 = parse('a{}/*# sourceMappingURL=a.css.map */', mapOpts) - expect(root2.source?.input.map.annotation).toBe('a.css.map') + is(root2.source?.input.map.annotation, 'a.css.map') }) -it('checks previous sources content', () => { +test('checks previous sources content', () => { let map2: any = { version: 3, file: 'b', @@ -54,21 +56,21 @@ it('checks previous sources content', () => { } let opts = { map: { prev: map2 } } - expect(parse('a{}', opts).source?.input.map.withContent()).toBe(false) + is(parse('a{}', opts).source?.input.map.withContent(), false) map2.sourcesContent = ['a{}'] - expect(parse('a{}', opts).source?.input.map.withContent()).toBe(true) + is(parse('a{}', opts).source?.input.map.withContent(), true) }) -it('decodes base64 maps', () => { +test('decodes base64 maps', () => { let b64 = Buffer.from(map).toString('base64') let css = 'a{}\n' + `/*# sourceMappingURL=data:application/json;base64,${b64} */` - expect(parse(css).source?.input.map.text).toEqual(map) + is(parse(css).source?.input.map.text, map) }) -it('decodes base64 UTF-8 maps', () => { +test('decodes base64 UTF-8 maps', () => { let b64 = Buffer.from(map).toString('base64') let css = 'a{}\n/*# sourceMappingURL=data:application/json;' + @@ -76,10 +78,10 @@ it('decodes base64 UTF-8 maps', () => { b64 + ' */' - expect(parse(css).source?.input.map.text).toEqual(map) + is(parse(css).source?.input.map.text, map) }) -it('accepts different name for base64 maps with UTF-8 encoding', () => { +test('accepts different name for base64 maps with UTF-8 encoding', () => { let b64 = Buffer.from(map).toString('base64') let css = 'a{}\n/*# sourceMappingURL=data:application/json;' + @@ -87,17 +89,17 @@ it('accepts different name for base64 maps with UTF-8 encoding', () => { b64 + ' */' - expect(parse(css).source?.input.map.text).toEqual(map) + is(parse(css).source?.input.map.text, map) }) -it('decodes URI maps', () => { +test('decodes URI maps', () => { let uri = 'data:application/json,' + decodeURI(map) let css = `a{}\n/*# sourceMappingURL=${uri} */` - expect(parse(css).source?.input.map.text).toEqual(map) + is(parse(css).source?.input.map.text, map) }) -it('decodes URI UTF-8 maps', () => { +test('decodes URI UTF-8 maps', () => { let uri = decodeURI(map) let css = 'a{}\n/*# sourceMappingURL=data:application/json;' + @@ -105,10 +107,10 @@ it('decodes URI UTF-8 maps', () => { uri + ' */' - expect(parse(css).source?.input.map.text).toEqual(map) + is(parse(css).source?.input.map.text, map) }) -it('accepts different name for URI maps with UTF-8 encoding', () => { +test('accepts different name for URI maps with UTF-8 encoding', () => { let uri = decodeURI(map) let css = 'a{}\n/*# sourceMappingURL=data:application/json;' + @@ -116,44 +118,44 @@ it('accepts different name for URI maps with UTF-8 encoding', () => { uri + ' */' - expect(parse(css).source?.input.map.text).toEqual(map) + is(parse(css).source?.input.map.text, map) }) -it('removes map on request', () => { +test('removes map on request', () => { let uri = 'data:application/json,' + decodeURI(map) let css = `a{}\n/*# sourceMappingURL=${uri} */` let input = parse(css, { map: { prev: false } }).source?.input - expect(input?.map).toBeUndefined() + type(input?.map, 'undefined') }) -it('raises on unknown inline encoding', () => { +test('raises on unknown inline encoding', () => { let css = 'a { }\n/*# sourceMappingURL=data:application/json;' + 'md5,68b329da9893e34099c7d8ad5cb9c940*/' - expect(() => { + throws(() => { parse(css) - }).toThrow('Unsupported source map encoding md5') + }, 'Unsupported source map encoding md5') }) -it('raises on unknown map format', () => { - expect(() => { +test('raises on unknown map format', () => { + throws(() => { // @ts-expect-error parse('a{}', { map: { prev: 1 } }) - }).toThrow('Unsupported previous source map format: 1') + }, 'Unsupported previous source map format: 1') }) -it('reads map from annotation', () => { +test('reads map from annotation', () => { let file = join(dir, 'a.map') outputFileSync(file, map) let root = parse('a{}\n/*# sourceMappingURL=a.map */', { from: file }) - expect(root.source?.input.map.text).toEqual(map) - expect(root.source?.input.map.root).toEqual(dir) + is(root.source?.input.map.text, map) + is(root.source?.input.map.root, dir) }) -it('reads only the last map from annotation', () => { +test('reads only the last map from annotation', () => { let file = join(dir, 'c.map') outputFileSync(file, map) let root = parse( @@ -164,11 +166,11 @@ it('reads only the last map from annotation', () => { { from: file } ) - expect(root.source?.input.map.text).toEqual(map) - expect(root.source?.input.map.root).toEqual(dir) + is(root.source?.input.map.text, map) + is(root.source?.input.map.root, dir) }) -it('sets unique name for inline map', () => { +test('sets unique name for inline map', () => { let map2 = { version: 3, sources: ['a'], @@ -180,12 +182,12 @@ it('sets unique name for inline map', () => { let file1 = parse('a{}', opts).source?.input.map.file let file2 = parse('a{}', opts).source?.input.map.file - expect(file1).toMatch(/^$/) - expect(file1).not.toEqual(file2) + match(String(file1), /^$/) + is.not(file1, file2) }) -it('accepts an empty mappings string', () => { - expect(() => { +test('accepts an empty mappings string', () => { + not.throws(() => { let emptyMap = { version: 3, sources: [], @@ -193,10 +195,10 @@ it('accepts an empty mappings string', () => { mappings: '' } parse('body{}', { map: { prev: emptyMap } }) - }).not.toThrow() + }) }) -it('accepts a function', () => { +test('accepts a function', () => { let css = 'body{}\n/*# sourceMappingURL=a.map */' let file = join(dir, 'previous-sourcemap-function.map') outputFileSync(file, map) @@ -206,13 +208,11 @@ it('accepts a function', () => { } } let root = parse(css, opts) - expect(root.source?.input.map.text).toEqual(map) - expect(root.source?.input.map.annotation).toBe('a.map') + is(root.source?.input.map.text, map) + is(root.source?.input.map.annotation, 'a.map') }) -it('calls function with opts.from', () => { - expect.assertions(1) - +test('calls function with opts.from', () => { let css = 'body{}\n/*# sourceMappingURL=a.map */' let file = join(dir, 'previous-sourcemap-function.map') outputFileSync(file, map) @@ -220,14 +220,14 @@ it('calls function with opts.from', () => { from: 'a.css', map: { prev: from => { - expect(from).toBe('a.css') + is(from, 'a.css') return file } } }) }) -it('raises when function returns invalid path', () => { +test('raises when function returns invalid path', () => { let css = 'body{}\n/*# sourceMappingURL=a.map */' let fakeMap = Number.MAX_SAFE_INTEGER.toString() + '.map' let fakePath = join(dir, fakeMap) @@ -236,12 +236,12 @@ it('raises when function returns invalid path', () => { prev: () => fakePath } } - expect(() => { + throws(() => { parse(css, opts) - }).toThrow('Unable to load previous source map: ' + fakePath) + }, 'Unable to load previous source map: ' + fakePath) }) -it('uses source map path as a root', () => { +test('uses source map path as a root', () => { let from = join(dir, 'a.css') outputFileSync( join(dir, 'maps', 'a.map'), @@ -254,7 +254,7 @@ it('uses source map path as a root', () => { }) ) let root = parse('a{}\n/*# sourceMappingURL=maps/a.map */', { from }) - expect(root.source?.input.origin(1, 1)).toEqual({ + equal(root.source?.input.origin(1, 1), { url: pathToFileURL(join(dir, '..', 'test.scss')).href, file: join(dir, '..', 'test.scss'), line: 1, @@ -262,7 +262,7 @@ it('uses source map path as a root', () => { }) }) -it('uses current file path for source map', () => { +test('uses current file path for source map', () => { let root = parse('a{b:1}', { from: join(__dirname, 'dir', 'subdir', 'a.css'), map: { @@ -275,7 +275,7 @@ it('uses current file path for source map', () => { } } }) - expect(root.source?.input.origin(1, 1)).toEqual({ + equal(root.source?.input.origin(1, 1), { url: pathToFileURL(join(__dirname, 'dir', 'test.scss')).href, file: join(__dirname, 'dir', 'test.scss'), line: 1, @@ -283,7 +283,7 @@ it('uses current file path for source map', () => { }) }) -it('works with non-file sources', () => { +test('works with non-file sources', () => { let root = parse('a{b:1}', { from: join(__dirname, 'dir', 'subdir', 'a.css'), map: { @@ -296,14 +296,14 @@ it('works with non-file sources', () => { } } }) - expect(root.source?.input.origin(1, 1)).toEqual({ + equal(root.source?.input.origin(1, 1), { url: 'http://example.com/test.scss', line: 1, column: 1 }) }) -it('works with index map', () => { +test('works with index map', () => { let root = parse('body {\nwidth:100%;\n}', { from: join(__dirname, 'a.css'), map: { @@ -323,7 +323,7 @@ it('works with index map', () => { } } }) - expect((root as any).source.input.origin(1, 1).file).toEqual( - join(__dirname, 'b.css') - ) + is((root as any).source.input.origin(1, 1).file, join(__dirname, 'b.css')) }) + +test.run() diff --git a/test/processor.test.ts b/test/processor.test.ts old mode 100644 new mode 100755 index 1d28f848a..621fd2ed5 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -1,5 +1,7 @@ import { resolve as pathResolve } from 'path' import { delay } from 'nanodelay' +import { test } from 'uvu' +import { is, type, equal, match, throws, not } from 'uvu/assert' import postcss, { Plugin, @@ -17,8 +19,42 @@ import LazyResult from '../lib/lazy-result.js' import Processor from '../lib/processor.js' import Rule from '../lib/rule.js' -afterEach(() => { - jest.resetAllMocks() +let _ConsoleWarn: typeof global.console.warn +let _ConsoleError: typeof global.console.error +let _ConsoleWarnArguments: any +let _ConsoleErrorArguments: any +let _ConsoleWarnHaveBeenCalled: number +let _ConsoleErrorHaveBeenCalled: number + +test.before(() => { + _ConsoleWarn = global.console.warn + _ConsoleError = global.console.error + _ConsoleWarnArguments = '' + _ConsoleErrorArguments = '' + _ConsoleWarnHaveBeenCalled = 0 + _ConsoleErrorHaveBeenCalled = 0 + + global.console.warn = (...args) => { + _ConsoleWarnArguments = args[0] + _ConsoleWarnHaveBeenCalled++ + } + + global.console.error = (...args) => { + _ConsoleErrorArguments = args[0] + _ConsoleErrorHaveBeenCalled++ + } +}) + +test.before.each(() => { + _ConsoleWarnArguments = '' + _ConsoleErrorArguments = '' + _ConsoleWarnHaveBeenCalled = 0 + _ConsoleErrorHaveBeenCalled = 0 +}) + +test.after(() => { + global.console.warn = _ConsoleWarn + global.console.error = _ConsoleError }) function prs(): Root { @@ -29,10 +65,6 @@ function str(node: Node, builder: (s: string) => void): void { builder(`${node.raws.after}!`) } -function getCalls(func: any): any { - return func.mock.calls -} - async function catchError(cb: () => Promise): Promise { try { await cb() @@ -53,88 +85,88 @@ let beforeFix = new Processor([ } ]) -it('adds new plugins', () => { +test('adds new plugins', () => { let a = (): void => {} let processor = new Processor() processor.use(a) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('adds new plugin by object', () => { +test('adds new plugin by object', () => { let a = (): void => {} let processor = new Processor() processor.use({ postcss: a }) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('adds new plugin by object-function', () => { +test('adds new plugin by object-function', () => { let a = (): void => {} let obj: any = () => {} obj.postcss = a let processor = new Processor() processor.use(obj) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('adds new processors of another postcss instance', () => { +test('adds new processors of another postcss instance', () => { let a = (): void => {} let processor = new Processor() let other = new Processor([a]) processor.use(other) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('adds new processors from object', () => { +test('adds new processors from object', () => { let a = (): void => {} let processor = new Processor() let other = new Processor([a]) processor.use({ postcss: other }) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('returns itself', () => { +test('returns itself', () => { let a = (): void => {} let b = (): void => {} let processor = new Processor() - expect(processor.use(a).use(b).plugins).toEqual([a, b]) + equal(processor.use(a).use(b).plugins, [a, b]) }) -it('throws on wrong format', () => { +test('throws on wrong format', () => { let pr = new Processor() - expect(() => { + throws(() => { // @ts-expect-error pr.use(1) - }).toThrow(/1 is not a PostCSS plugin/) + }, /1 is not a PostCSS plugin/) }) -it('processes CSS', () => { +test('processes CSS', () => { let result = beforeFix.process('a::before{top:0}') - expect(result.css).toBe('a::before{content:"";top:0}') + is(result.css, 'a::before{content:"";top:0}') }) -it('processes parsed AST', () => { +test('processes parsed AST', () => { let root = parse('a::before{top:0}') let result = beforeFix.process(root) - expect(result.css).toBe('a::before{content:"";top:0}') + is(result.css, 'a::before{content:"";top:0}') }) -it('processes previous result', () => { +test('processes previous result', () => { let result = new Processor([() => {}]).process('a::before{top:0}') result = beforeFix.process(result) - expect(result.css).toBe('a::before{content:"";top:0}') + is(result.css, 'a::before{content:"";top:0}') }) -it('takes maps from previous result', () => { +test('takes maps from previous result', () => { let one = new Processor([() => {}]).process('a{}', { from: 'a.css', to: 'b.css', map: { inline: false } }) let two = new Processor([() => {}]).process(one, { to: 'c.css' }) - expect(two.map.toJSON().sources).toEqual(['a.css']) + equal(two.map.toJSON().sources, ['a.css']) }) -it('inlines maps from previous result', () => { +test('inlines maps from previous result', () => { let one = new Processor([() => {}]).process('a{}', { from: 'a.css', to: 'b.css', @@ -144,10 +176,10 @@ it('inlines maps from previous result', () => { to: 'c.css', map: { inline: true } }) - expect(two.map).toBeUndefined() + type(two.map, 'undefined') }) -it('throws with file name', () => { +test('throws with file name', () => { let error: CssSyntaxError | undefined try { new Processor([() => {}]).process('a {', { from: 'a.css' }).css @@ -159,29 +191,27 @@ it('throws with file name', () => { } } - expect(error?.file).toEqual(pathResolve('a.css')) - expect(error?.message).toMatch(/a.css:1:1: Unclosed block$/) + is(error?.file, pathResolve('a.css')) + match(String(error?.message), /a.css:1:1: Unclosed block$/) }) -it('allows to replace Root', () => { +test('allows to replace Root', () => { let processor = new Processor([ (css, result) => { result.root = new Root() } ]) - expect(processor.process('a {}').css).toBe('') + is(processor.process('a {}').css, '') }) -it('returns LazyResult object', () => { +test('returns LazyResult object', () => { let result = new Processor([() => {}]).process('a{}') - expect(result instanceof LazyResult).toBe(true) - expect(result.css).toBe('a{}') - expect(result.toString()).toBe('a{}') + is(result instanceof LazyResult, true) + is(result.css, 'a{}') + is(result.toString(), 'a{}') }) -it('calls all plugins once', async () => { - expect.assertions(1) - +test('calls all plugins once', async () => { let calls = '' let a = (): void => { calls += 'a' @@ -195,33 +225,33 @@ it('calls all plugins once', async () => { result.map result.root await result - expect(calls).toBe('ab') + is(calls, 'ab') }) -it('parses, converts and stringifies CSS', () => { - expect( +test('parses, converts and stringifies CSS', () => { + is( typeof new Processor([ (css: Root) => { - expect(css instanceof Root).toBe(true) + equal(css instanceof Root, true) } - ]).process('a {}').css - ).toBe('string') + ]).process('a {}').css, + 'string' + ) }) -it('send result to plugins', () => { - expect.assertions(4) +test('send result to plugins', () => { let processor = new Processor([() => {}]) - return processor + processor .use((css, result) => { - expect(result instanceof Result).toBe(true) - expect(result.processor).toEqual(processor) - expect(result.opts).toEqual({ map: true }) - expect(result.root).toEqual(css) + is(result instanceof Result, true) + equal(result.processor, processor) + equal(result.opts, { map: true }) + equal(result.root, css) }) .process('a {}', { map: true, from: undefined }) }) -it('accepts source map from PostCSS', () => { +test('accepts source map from PostCSS', () => { let one = new Processor([() => {}]).process('a{}', { from: 'a.css', to: 'b.css', @@ -232,17 +262,17 @@ it('accepts source map from PostCSS', () => { to: 'c.css', map: { prev: one.map, inline: false } }) - expect(two.map.toJSON().sources).toEqual(['a.css']) + equal(two.map.toJSON().sources, ['a.css']) }) -it('supports async plugins', async () => { +test('supports async plugins', async () => { let starts = 0 let finish = 0 let async1 = (css: Root): Promise => new Promise(resolve => { starts += 1 setTimeout(() => { - expect(starts).toBe(1) + equal(starts, 1) css.append('a {}') finish += 1 @@ -251,8 +281,8 @@ it('supports async plugins', async () => { }) let async2 = (css: Root): Promise => new Promise(resolve => { - expect(starts).toBe(1) - expect(finish).toBe(1) + equal(starts, 1) + equal(finish, 1) starts += 1 setTimeout(() => { @@ -262,19 +292,17 @@ it('supports async plugins', async () => { }, 1) }) let r = await new Processor([async1, async2]).process('', { from: 'a' }) - expect(starts).toBe(2) - expect(finish).toBe(2) - expect(r.css).toBe('a {}b {}') + is(starts, 2) + is(finish, 2) + is(r.css, 'a {}b {}') }) -it('works async without plugins', async () => { +test('works async without plugins', async () => { let r = await new Processor([() => {}]).process('a {}', { from: 'a' }) - expect(r.css).toBe('a {}') + is(r.css, 'a {}') }) -it('runs async plugin only once', async () => { - expect.assertions(1) - +test('runs async plugin only once', async () => { let calls = 0 let async = (): Promise => { return new Promise(resolve => { @@ -289,10 +317,10 @@ it('runs async plugin only once', async () => { result.then(() => {}) await result await result - expect(calls).toBe(1) + is(calls, 1) }) -it('supports async errors', async () => { +test('supports async errors', async () => { let error = new Error('Async') let async = (): Promise => { return new Promise((resolve, reject) => { @@ -301,17 +329,17 @@ it('supports async errors', async () => { } let result = new Processor([async]).process('', { from: undefined }) let err1 = await catchError(async () => await result) - expect(err1).toEqual(error) + equal(err1, error) let err2: Error | undefined result.catch(catched => { err2 = catched }) await delay(10) - expect(err2).toEqual(error) + equal(err2, error) }) -it('supports sync errors in async mode', async () => { +test('supports sync errors in async mode', async () => { let error = new Error('Async') let async = (): void => { throw error @@ -319,40 +347,40 @@ it('supports sync errors in async mode', async () => { let err = await catchError(() => new Processor([async]).process('', { from: undefined }) ) - expect(err).toEqual(error) + equal(err, error) }) -it('throws parse error in async', async () => { +test('throws parse error in async', async () => { let err = await catchError(() => new Processor([() => {}]).process('a{', { from: undefined }) ) - expect(err.message).toBe(':1:1: Unclosed block') + is(err.message, ':1:1: Unclosed block') }) -it('throws error on sync method to async plugin', () => { +test('throws error on sync method to async plugin', () => { let async = (): Promise => { return new Promise(resolve => { resolve() }) } - expect(() => { + throws(() => { new Processor([async]).process('a{}').css - }).toThrow(/async/) + }, /async/) }) -it('throws a sync call in async running', async () => { +test('throws a sync call in async running', async () => { let async = (): Promise => new Promise(resolve => setTimeout(resolve, 1)) let processor = new Processor([async]).process('a{}', { from: 'a.css' }) processor.async() - expect(() => { + throws(() => { processor.sync() - }).toThrow(/then/) + }, /then/) }) -it('remembers errors', async () => { +test('remembers errors', async () => { let calls = 0 let plugin: Plugin = { postcssPlugin: 'plugin', @@ -364,15 +392,15 @@ it('remembers errors', async () => { let processing = postcss([plugin]).process('a{}', { from: undefined }) - expect(() => { + throws(() => { processing.css - }).toThrow('test') - expect(() => { + }, 'test') + throws(() => { processing.css - }).toThrow('test') - expect(() => { + }, 'test') + throws(() => { processing.root - }).toThrow('test') + }, 'test') let asyncError: any try { @@ -380,19 +408,18 @@ it('remembers errors', async () => { } catch (e) { asyncError = e } - expect(asyncError.message).toBe('test') + is(asyncError.message, 'test') - expect(calls).toBe(1) + is(calls, 1) }) -it('checks plugin compatibility', () => { - jest.spyOn(console, 'warn').mockImplementation(() => true) +test('checks plugin compatibility', () => { let plugin = (postcss as any).plugin('test', () => { return () => { throw new Error('Er') } }) - expect(console.warn).toHaveBeenCalledTimes(1) + is(_ConsoleWarnHaveBeenCalled, 1) let func = plugin() func.postcssVersion = '2.1.5' @@ -402,151 +429,145 @@ it('checks plugin compatibility', () => { processor.process('a{}').css } - jest.spyOn(console, 'error').mockImplementation(() => {}) - - expect(() => { + throws(() => { processBy('1.0.0') - }).toThrow('Er') - expect(getCalls(console.error)).toHaveLength(1) - expect(getCalls(console.error)[0][0]).toEqual( + }, 'Er') + is(_ConsoleErrorHaveBeenCalled, 1) + is( + _ConsoleErrorArguments, 'Unknown error from PostCSS plugin. ' + 'Your current PostCSS version is 1.0.0, but test uses 2.1.5. ' + 'Perhaps this is the source of the error below.' ) - expect(() => { + throws(() => { processBy('3.0.0') - }).toThrow('Er') - expect(getCalls(console.error)).toHaveLength(2) + }, 'Er') + is(_ConsoleErrorHaveBeenCalled, 2) - expect(() => { + throws(() => { processBy('2.0.0') - }).toThrow('Er') - expect(getCalls(console.error)).toHaveLength(3) + }, 'Er') + is(_ConsoleErrorHaveBeenCalled, 3) - expect(() => { + throws(() => { processBy('2.1.0') - }).toThrow('Er') - expect(getCalls(console.error)).toHaveLength(3) + }, 'Er') + is(_ConsoleErrorHaveBeenCalled, 3) }) -it('sets last plugin to result', async () => { +test('sets last plugin to result', async () => { let plugin1 = (css: Root, result: Result): void => { - expect(result.lastPlugin).toBe(plugin1) + equal(result.lastPlugin, plugin1) } let plugin2 = (css: Root, result: Result): void => { - expect(result.lastPlugin).toBe(plugin2) + equal(result.lastPlugin, plugin2) } let processor = new Processor([plugin1, plugin2]) let result = await processor.process('a{}', { from: undefined }) - expect(result.lastPlugin).toBe(plugin2) + equal(result.lastPlugin, plugin2) }) -it('uses custom parsers', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('uses custom parsers', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { parser: prs, from: undefined }) - expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toBe('ok') + not.ok(_ConsoleWarnHaveBeenCalled) + is(result.css, 'ok') }) -it('uses custom parsers from object', async () => { +test('uses custom parsers from object', async () => { let processor = new Processor([]) let syntax = { parse: prs, stringify: str } let result = await processor.process('a{}', { parser: syntax, from: 'a' }) - expect(result.css).toBe('ok') + equal(result.css, 'ok') }) -it('uses custom stringifier', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('uses custom stringifier', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { stringifier: str, from: 'a' }) - expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toBe('!') + not.ok(_ConsoleWarnHaveBeenCalled) + is(result.css, '!') }) -it('uses custom stringifier from object', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('uses custom stringifier from object', async () => { let processor = new Processor([]) let syntax = { parse: prs, stringify: str } let result = await processor.process('', { stringifier: syntax, from: 'a' }) - expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toBe('!') + not.ok(_ConsoleWarnHaveBeenCalled) + is(result.css, '!') }) -it('uses custom stringifier with source maps', async () => { +test('uses custom stringifier with source maps', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { map: true, stringifier: str, from: undefined }) - expect(result.css).toMatch(/!\n\/\*# sourceMap/) + match(result.css, /!\n\/\*# sourceMap/) }) -it('uses custom syntax', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('uses custom syntax', async () => { let processor = new Processor([() => {}]) let result = await processor.process('a{}', { syntax: { parse: prs, stringify: str }, from: undefined }) - expect(console.warn).not.toHaveBeenCalled() - expect(result.css).toBe('ok!') + not.ok(_ConsoleWarnHaveBeenCalled) + is(result.css, 'ok!') }) -it('contains PostCSS version', () => { - expect(new Processor().version).toMatch(/\d+.\d+.\d+/) +test('contains PostCSS version', () => { + match(new Processor().version, /\d+.\d+.\d+/) }) -it('throws on syntax as plugin', () => { +test('throws on syntax as plugin', () => { let processor = new Processor([() => {}]) - expect(() => { + throws(() => { processor.use({ // @ts-expect-error parse() {} }) - }).toThrow(/syntax/) + }, /syntax/) }) -it('warns about missed from', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('warns about missed from', async () => { let processor = new Processor([() => {}]) processor.process('a{}').css - expect(console.warn).not.toHaveBeenCalled() + not.ok(_ConsoleWarnHaveBeenCalled) await processor.process('a{}') - expect(console.warn).toHaveBeenCalledWith( + is( + _ConsoleWarnArguments, 'Without `from` option PostCSS could generate wrong source map ' + 'and will not find Browserslist config. Set it to CSS file path ' + 'or to `undefined` to prevent this warning.' ) }) -it('warns about missed plugins', async () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('warns about missed plugins', async () => { await new Processor().process('a{}') - expect(console.warn).toHaveBeenCalledWith( + is( + _ConsoleWarnArguments, 'You did not set any plugins, parser, or stringifier. ' + 'Right now, PostCSS does nothing. Pick plugins for your case ' + 'on https://www.postcss.parts/ and use them in postcss.config.js.' ) }) -it('supports plugins returning processors', () => { - jest.spyOn(console, 'warn').mockImplementation(() => {}) +test('supports plugins returning processors', () => { let a = (): void => {} let processor = new Processor() let other: any = (postcss as any).plugin('test', () => { return new Processor([a]) }) processor.use(other) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('supports plugin creators returning processors', () => { +test('supports plugin creators returning processors', () => { let a = (): void => {} let processor = new Processor() let other = (() => { @@ -554,10 +575,10 @@ it('supports plugin creators returning processors', () => { }) as PluginCreator other.postcss = true processor.use(other) - expect(processor.plugins).toEqual([a]) + equal(processor.plugins, [a]) }) -it('uses custom syntax for document', async () => { +test('uses custom syntax for document', async () => { let customParser: Parser = () => { return new Document({ nodes: [ @@ -605,7 +626,8 @@ it('uses custom syntax for document', async () => { from: undefined }) - expect(result.css).toEqual( + is( + result.css, '\n\n\n\n' ) }) + +test.run() diff --git a/test/result.test.ts b/test/result.test.ts old mode 100644 new mode 100755 index 8d35ad724..6c0328bb8 --- a/test/result.test.ts +++ b/test/result.test.ts @@ -1,16 +1,19 @@ +import { test } from 'uvu' +import { is, equal } from 'uvu/assert' + import postcss, { Warning, Result, Root, Plugin } from '../lib/postcss.js' import Processor from '../lib/processor.js' let processor = new Processor() let root = new Root() -it('stringifies', () => { +test('stringifies', () => { let result = new Result(processor, root, {}) result.css = 'a{}' - expect(`${result}`).toEqual(result.css) + is(`${result}`, result.css) }) -it('adds warning', () => { +test('adds warning', () => { let warning let plugin: Plugin = { postcssPlugin: 'test-plugin', @@ -20,17 +23,18 @@ it('adds warning', () => { } let result = postcss([plugin]).process('a{}').sync() - expect(warning).toEqual( + equal( + warning, new Warning('test', { plugin: 'test-plugin', node: result.root.first }) ) - expect(result.messages).toEqual([warning]) + equal(result.messages, [warning]) }) -it('allows to override plugin', () => { +test('allows to override plugin', () => { let plugin: Plugin = { postcssPlugin: 'test-plugin', Once(css, { result }) { @@ -39,26 +43,28 @@ it('allows to override plugin', () => { } let result = postcss([plugin]).process('a{}').sync() - expect(result.messages[0].plugin).toBe('test-plugin#one') + is(result.messages[0].plugin, 'test-plugin#one') }) -it('allows Root', () => { +test('allows Root', () => { let css = postcss.parse('a{}') let result = new Result(processor, css, {}) result.warn('TT', { node: css.first }) - expect(result.messages[0].toString()).toBe(':1:1: TT') + is(result.messages[0].toString(), ':1:1: TT') }) -it('returns only warnings', () => { +test('returns only warnings', () => { let result = new Result(processor, root, {}) result.messages = [ { type: 'warning', text: 'a' }, { type: 'custom' }, { type: 'warning', text: 'b' } ] - expect(result.warnings()).toEqual([ + equal(result.warnings(), [ { type: 'warning', text: 'a' }, { type: 'warning', text: 'b' } ]) }) + +test.run() diff --git a/test/root.test.ts b/test/root.test.ts old mode 100644 new mode 100755 index bfec257f1..898be036f --- a/test/root.test.ts +++ b/test/root.test.ts @@ -1,62 +1,67 @@ +import { test } from 'uvu' +import { is, type, match } from 'uvu/assert' + import { Result, parse } from '../lib/postcss.js' -it('prepend() fixes spaces on insert before first', () => { +test('prepend() fixes spaces on insert before first', () => { let css = parse('a {} b {}') css.prepend({ selector: 'em' }) - expect(css.toString()).toBe('em {} a {} b {}') + is(css.toString(), 'em {} a {} b {}') }) -it('prepend() fixes spaces on multiple inserts before first', () => { +test('prepend() fixes spaces on multiple inserts before first', () => { let css = parse('a {} b {}') css.prepend({ selector: 'em' }, { selector: 'strong' }) - expect(css.toString()).toBe('em {} strong {} a {} b {}') + is(css.toString(), 'em {} strong {} a {} b {}') }) -it('prepend() uses default spaces on only first', () => { +test('prepend() uses default spaces on only first', () => { let css = parse('a {}') css.prepend({ selector: 'em' }) - expect(css.toString()).toBe('em {}\na {}') + is(css.toString(), 'em {}\na {}') }) -it('append() sets new line between rules in multiline files', () => { +test('append() sets new line between rules in multiline files', () => { let a = parse('a {}\n\na {}\n') let b = parse('b {}\n') - expect(a.append(b).toString()).toBe('a {}\n\na {}\n\nb {}\n') + is(a.append(b).toString(), 'a {}\n\na {}\n\nb {}\n') }) -it('insertAfter() does not use before of first rule', () => { +test('insertAfter() does not use before of first rule', () => { let css = parse('a{} b{}') css.insertAfter(0, { selector: '.a' }) css.insertAfter(2, { selector: '.b' }) - expect(css.nodes[1].raws.before).toBeUndefined() - expect(css.nodes[3].raws.before).toBe(' ') - expect(css.toString()).toBe('a{} .a{} b{} .b{}') + type(css.nodes[1].raws.before, 'undefined') + is(css.nodes[3].raws.before, ' ') + is(css.toString(), 'a{} .a{} b{} .b{}') }) -it('fixes spaces on removing first rule', () => { +test('fixes spaces on removing first rule', () => { let css = parse('a{}\nb{}\n') if (!css.first) throw new Error('No nodes were parsed') css.first.remove() - expect(css.toString()).toBe('b{}\n') + is(css.toString(), 'b{}\n') }) -it('keeps spaces on moving root', () => { +test('keeps spaces on moving root', () => { let css1 = parse('a{}\nb{}\n') let css2 = parse('') css2.append(css1) - expect(css2.toString()).toBe('a{}\nb{}') + is(css2.toString(), 'a{}\nb{}') let css3 = parse('\n') css3.append(css2.nodes) - expect(css3.toString()).toBe('a{}\nb{}\n') + is(css3.toString(), 'a{}\nb{}\n') }) -it('generates result with map', () => { +test('generates result with map', () => { let root = parse('a {}') let result = root.toResult({ map: true }) - expect(result instanceof Result).toBe(true) - expect(result.css).toMatch(/a {}\n\/\*# sourceMappingURL=/) + is(result instanceof Result, true) + match(result.css, /a {}\n\/\*# sourceMappingURL=/) }) + +test.run() diff --git a/test/rule.test.ts b/test/rule.test.ts old mode 100644 new mode 100755 index 3b96ad27a..9d4b6d7e6 --- a/test/rule.test.ts +++ b/test/rule.test.ts @@ -1,79 +1,81 @@ +import { test } from 'uvu' +import { is, equal } from 'uvu/assert' + import { Rule, parse } from '../lib/postcss.js' -it('initializes with properties', () => { +test('initializes with properties', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.selector).toBe('a') + is(rule.selector, 'a') }) -it('returns array in selectors', () => { +test('returns array in selectors', () => { let rule = new Rule({ selector: 'a,b' }) - expect(rule.selectors).toEqual(['a', 'b']) + equal(rule.selectors, ['a', 'b']) }) -it('trims selectors', () => { +test('trims selectors', () => { let rule = new Rule({ selector: '.a\n, .b , .c' }) - expect(rule.selectors).toEqual(['.a', '.b', '.c']) + equal(rule.selectors, ['.a', '.b', '.c']) }) -it('is smart about selectors commas', () => { +test('is smart about selectors commas', () => { let rule = new Rule({ selector: "[foo='a, b'], a:-moz-any(:focus, [href*=','])" }) - expect(rule.selectors).toEqual([ - "[foo='a, b']", - "a:-moz-any(:focus, [href*=','])" - ]) + equal(rule.selectors, ["[foo='a, b']", "a:-moz-any(:focus, [href*=','])"]) }) -it('receive array in selectors', () => { +test('receive array in selectors', () => { let rule = new Rule({ selector: 'i, b' }) rule.selectors = ['em', 'strong'] - expect(rule.selector).toBe('em, strong') + is(rule.selector, 'em, strong') }) -it('saves separator in selectors', () => { +test('saves separator in selectors', () => { let rule = new Rule({ selector: 'i,\nb' }) rule.selectors = ['em', 'strong'] - expect(rule.selector).toBe('em,\nstrong') + is(rule.selector, 'em,\nstrong') }) -it('uses between to detect separator in selectors', () => { +test('uses between to detect separator in selectors', () => { let rule = new Rule({ selector: 'b', raws: { between: '' } }) rule.selectors = ['b', 'strong'] - expect(rule.selector).toBe('b,strong') + is(rule.selector, 'b,strong') }) -it('uses space in separator be default in selectors', () => { +test('uses space in separator be default in selectors', () => { let rule = new Rule({ selector: 'b' }) rule.selectors = ['b', 'strong'] - expect(rule.selector).toBe('b, strong') + is(rule.selector, 'b, strong') }) -it('selectors works in constructor', () => { +test('selectors works in constructor', () => { let rule = new Rule({ selectors: ['a', 'b'] }) - expect(rule.selector).toBe('a, b') + is(rule.selector, 'a, b') }) -it('inserts default spaces', () => { +test('inserts default spaces', () => { let rule = new Rule({ selector: 'a' }) - expect(rule.toString()).toBe('a {}') + is(rule.toString(), 'a {}') rule.append({ prop: 'color', value: 'black' }) - expect(rule.toString()).toBe('a {\n color: black\n}') + is(rule.toString(), 'a {\n color: black\n}') }) -it('clones spaces from another rule', () => { +test('clones spaces from another rule', () => { let root = parse('b{\n }') let rule = new Rule({ selector: 'em' }) root.append(rule) - expect(root.toString()).toBe('b{\n }\nem{\n }') + is(root.toString(), 'b{\n }\nem{\n }') }) -it('uses different spaces for empty rules', () => { +test('uses different spaces for empty rules', () => { let root = parse('a{}\nb{\n a:1\n}') let rule = new Rule({ selector: 'em' }) root.append(rule) - expect(root.toString()).toBe('a{}\nb{\n a:1\n}\nem{}') + is(root.toString(), 'a{}\nb{\n a:1\n}\nem{}') rule.append({ prop: 'top', value: '0' }) - expect(root.toString()).toBe('a{}\nb{\n a:1\n}\nem{\n top:0\n}') + is(root.toString(), 'a{}\nb{\n a:1\n}\nem{\n top:0\n}') }) + +test.run() diff --git a/test/stringifier.test.js b/test/stringifier.test.js old mode 100644 new mode 100755 index 31d8f9bb1..f05eee8b2 --- a/test/stringifier.test.js +++ b/test/stringifier.test.js @@ -1,109 +1,122 @@ -let { Declaration, AtRule, Node, Root, Rule, Document, parse } = require('..') +let { test } = require('uvu') +let { is } = require('uvu/assert') + +let { + Declaration, + AtRule, + Node, + Root, + Rule, + Document, + parse +} = require('../lib/postcss') let Stringifier = require('../lib/stringifier') let str -beforeAll(() => { + +test.before.each(() => { str = new Stringifier() }) -it('creates trimmed/raw property', () => { +test('creates trimmed/raw property', () => { let b = new Node({ one: 'trim' }) b.raws.one = { value: 'trim', raw: 'raw' } - expect(str.rawValue(b, 'one')).toBe('raw') + is(str.rawValue(b, 'one'), 'raw') b.one = 'trim1' - expect(str.rawValue(b, 'one')).toBe('trim1') + is(str.rawValue(b, 'one'), 'trim1') }) -it('works without rawValue magic', () => { +test('works without rawValue magic', () => { let b = new Node() b.one = '1' - expect(b.one).toBe('1') - expect(str.rawValue(b, 'one')).toBe('1') + is(b.one, '1') + is(str.rawValue(b, 'one'), '1') }) -it('uses node raw', () => { +test('uses node raw', () => { let rule = new Rule({ selector: 'a', raws: { between: '\n' } }) - expect(str.raw(rule, 'between', 'beforeOpen')).toBe('\n') + is(str.raw(rule, 'between', 'beforeOpen'), '\n') }) -it('hacks before for nodes without parent', () => { +test('hacks before for nodes without parent', () => { let rule = new Rule({ selector: 'a' }) - expect(str.raw(rule, 'before')).toBe('') + is(str.raw(rule, 'before'), '') }) -it('hacks before for first node', () => { +test('hacks before for first node', () => { let root = new Root() root.append(new Rule({ selector: 'a' })) - expect(str.raw(root.first, 'before')).toBe('') + is(str.raw(root.first, 'before'), '') }) -it('hacks before for first decl', () => { +test('hacks before for first decl', () => { let decl = new Declaration({ prop: 'color', value: 'black' }) - expect(str.raw(decl, 'before')).toBe('') + is(str.raw(decl, 'before'), '') let rule = new Rule({ selector: 'a' }) rule.append(decl) - expect(str.raw(decl, 'before')).toBe('\n ') + is(str.raw(decl, 'before'), '\n ') }) -it('detects after raw', () => { +test('detects after raw', () => { let root = new Root() root.append({ selector: 'a', raws: { after: ' ' } }) root.first.append({ prop: 'color', value: 'black' }) root.append({ selector: 'a' }) - expect(str.raw(root.last, 'after')).toBe(' ') + is(str.raw(root.last, 'after'), ' ') }) -it('uses defaults without parent', () => { +test('uses defaults without parent', () => { let rule = new Rule({ selector: 'a' }) - expect(str.raw(rule, 'between', 'beforeOpen')).toBe(' ') + is(str.raw(rule, 'between', 'beforeOpen'), ' ') }) -it('uses defaults for unique node', () => { +test('uses defaults for unique node', () => { let root = new Root() root.append(new Rule({ selector: 'a' })) - expect(str.raw(root.first, 'between', 'beforeOpen')).toBe(' ') + is(str.raw(root.first, 'between', 'beforeOpen'), ' ') }) -it('clones raw from first node', () => { +test('clones raw from first node', () => { let root = new Root() root.append(new Rule({ selector: 'a', raws: { between: '' } })) root.append(new Rule({ selector: 'b' })) - expect(str.raw(root.last, 'between', 'beforeOpen')).toBe('') + is(str.raw(root.last, 'between', 'beforeOpen'), '') }) -it('indents by default', () => { +test('indents by default', () => { let root = new Root() root.append(new AtRule({ name: 'page' })) root.first.append(new Rule({ selector: 'a' })) root.first.first.append({ prop: 'color', value: 'black' }) - expect(root.toString()).toEqual( + is( + root.toString(), '@page {\n' + ' a {\n' + ' color: black\n' + ' }\n' + '}' ) }) -it('clones style', () => { +test('clones style', () => { let compress = parse('@page{ a{ } }') let spaces = parse('@page {\n a {\n }\n}') compress.first.first.append({ prop: 'color', value: 'black' }) - expect(compress.toString()).toBe('@page{ a{ color: black } }') + is(compress.toString(), '@page{ a{ color: black } }') spaces.first.first.append({ prop: 'color', value: 'black' }) - expect(spaces.toString()).toBe('@page {\n a {\n color: black\n }\n}') + is(spaces.toString(), '@page {\n a {\n color: black\n }\n}') }) -it('clones indent', () => { +test('clones indent', () => { let root = parse('a{\n}') root.first.append({ text: 'a' }) root.first.append({ text: 'b', raws: { before: '\n\n ' } }) - expect(root.toString()).toBe('a{\n\n /* a */\n\n /* b */\n}') + is(root.toString(), 'a{\n\n /* a */\n\n /* b */\n}') }) -it('clones declaration before for comment', () => { +test('clones declaration before for comment', () => { let root = parse('a{\n}') root.first.append({ text: 'a' }) root.first.append({ @@ -111,94 +124,94 @@ it('clones declaration before for comment', () => { value: '1', raws: { before: '\n\n ' } }) - expect(root.toString()).toBe('a{\n\n /* a */\n\n a: 1\n}') + is(root.toString(), 'a{\n\n /* a */\n\n a: 1\n}') }) -it('clones indent by types', () => { +test('clones indent by types', () => { let css = parse('a {\n *color: black\n}\n\nb {\n}') css.append(new Rule({ selector: 'em' })) css.last.append({ prop: 'z-index', value: '1' }) - expect(css.last.first.raw('before')).toBe('\n ') + is(css.last.first.raw('before'), '\n ') }) -it('ignores non-space symbols in indent cloning', () => { +test('ignores non-space symbols in indent cloning', () => { let css = parse('a {\n color: black\n}\n\nb {\n}') css.append(new Rule({ selector: 'em' })) css.last.append({ prop: 'z-index', value: '1' }) - expect(css.last.raw('before')).toBe('\n\n') - expect(css.last.first.raw('before')).toBe('\n ') + is(css.last.raw('before'), '\n\n') + is(css.last.first.raw('before'), '\n ') }) -it('clones indent by before and after', () => { +test('clones indent by before and after', () => { let css = parse('@page{\n\n a{\n color: black}}') css.first.append(new Rule({ selector: 'b' })) css.first.last.append({ prop: 'z-index', value: '1' }) - expect(css.first.last.raw('before')).toBe('\n\n ') - expect(css.first.last.raw('after')).toBe('') + is(css.first.last.raw('before'), '\n\n ') + is(css.first.last.raw('after'), '') }) -it('clones semicolon only from rules with children', () => { +test('clones semicolon only from rules with children', () => { let css = parse('a{}b{one:1;}') - expect(str.raw(css.first, 'semicolon')).toBe(true) + is(str.raw(css.first, 'semicolon'), true) }) -it('clones only spaces in before', () => { +test('clones only spaces in before', () => { let css = parse('a{*one:1}') css.first.append({ prop: 'two', value: '2' }) css.append({ name: 'keyframes', params: 'a' }) css.last.append({ selector: 'from' }) - expect(css.toString()).toBe('a{*one:1;two:2}\n@keyframes a{\nfrom{}}') + is(css.toString(), 'a{*one:1;two:2}\n@keyframes a{\nfrom{}}') }) -it('clones only spaces in between', () => { +test('clones only spaces in between', () => { let css = parse('a{one/**/:1}') css.first.append({ prop: 'two', value: '2' }) - expect(css.toString()).toBe('a{one/**/:1;two:2}') + is(css.toString(), 'a{one/**/:1;two:2}') }) -it('uses optional raws.indent', () => { +test('uses optional raws.indent', () => { let rule = new Rule({ selector: 'a', raws: { indent: ' ' } }) rule.append({ prop: 'color', value: 'black' }) - expect(rule.toString()).toBe('a {\n color: black\n}') + is(rule.toString(), 'a {\n color: black\n}') }) -it('handles nested roots', () => { +test('handles nested roots', () => { let root = new Root() let subRoot = new Root() subRoot.append(new AtRule({ name: 'foo' })) root.append(subRoot) - expect(root.toString()).toBe('@foo') + is(root.toString(), '@foo') }) -it('handles root', () => { +test('handles root', () => { let root = new Root() root.append(new AtRule({ name: 'foo' })) let s = root.toString() - expect(s).toBe('@foo') + is(s, '@foo') }) -it('handles root with after', () => { +test('handles root with after', () => { let root = new Root({ raws: { after: ' ' } }) root.append(new AtRule({ name: 'foo' })) let s = root.toString() - expect(s).toBe('@foo ') + is(s, '@foo ') }) -it('pass nodes to document', () => { +test('pass nodes to document', () => { let root = new Root() let document = new Document({ nodes: [root] }) - expect(document.toString()).toBe('') + is(document.toString(), '') }) -it('handles document with one root', () => { +test('handles document with one root', () => { let root = new Root() root.append(new AtRule({ name: 'foo' })) @@ -207,10 +220,10 @@ it('handles document with one root', () => { let s = document.toString() - expect(s).toBe('@foo') + is(s, '@foo') }) -it('handles document with one root and after raw', () => { +test('handles document with one root and after raw', () => { let document = new Document() let root = new Root({ raws: { after: ' ' } }) root.append(new AtRule({ name: 'foo' })) @@ -218,10 +231,10 @@ it('handles document with one root and after raw', () => { let s = document.toString() - expect(s).toBe('@foo ') + is(s, '@foo ') }) -it('handles document with one root and before and after', () => { +test('handles document with one root and before and after', () => { let document = new Document() let root = new Root({ raws: { after: 'AFTER' } }) root.append(new AtRule({ name: 'foo' })) @@ -229,10 +242,10 @@ it('handles document with one root and before and after', () => { let s = document.toString() - expect(s).toBe('@fooAFTER') + is(s, '@fooAFTER') }) -it('handles document with three roots without raws', () => { +test('handles document with three roots without raws', () => { let root1 = new Root() root1.append(new AtRule({ name: 'foo' })) @@ -249,10 +262,10 @@ it('handles document with three roots without raws', () => { let s = document.toString() - expect(s).toBe('@fooa {}color: black') + is(s, '@fooa {}color: black') }) -it('handles document with three roots, with before and after raws', () => { +test('handles document with three roots, with before and after raws', () => { let root1 = new Root({ raws: { after: 'AFTER_ONE' } }) root1.append(new Rule({ selector: 'a.one' })) @@ -269,5 +282,7 @@ it('handles document with three roots, with before and after raws', () => { let s = document.toString() - expect(s).toBe('a.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE') + is(s, 'a.one {}AFTER_ONEa.two {}AFTER_TWOa.three {}AFTER_THREE') }) + +test.run() diff --git a/test/stringify.test.ts b/test/stringify.test.ts old mode 100644 new mode 100755 index 000e3d104..29b36ce28 --- a/test/stringify.test.ts +++ b/test/stringify.test.ts @@ -1,16 +1,20 @@ import { eachTest } from 'postcss-parser-tests' +import { test } from 'uvu' +import { is } from 'uvu/assert' import { stringify, parse } from '../lib/postcss.js' eachTest((name, css) => { if (name === 'bom.css') return - it(`stringifies ${name}`, () => { + test(`stringifies ${name}`, () => { let root = parse(css) let result = '' stringify(root, i => { result += i }) - expect(result).toEqual(css) + is(result, css) }) }) + +test.run() diff --git a/test/tokenize.test.js b/test/tokenize.test.js old mode 100644 new mode 100755 index 834ef86e1..df1c1e0ab --- a/test/tokenize.test.js +++ b/test/tokenize.test.js @@ -1,5 +1,8 @@ +let { test } = require('uvu') +let { equal, throws, is } = require('uvu/assert') + let tokenizer = require('../lib/tokenize') -let { Input } = require('..') +let { Input } = require('../lib/postcss') function tokenize(css, opts) { let processor = tokenizer(new Input(css), opts) @@ -11,29 +14,29 @@ function tokenize(css, opts) { } function run(css, tokens, opts) { - expect(tokenize(css, opts)).toEqual(tokens) + equal(tokenize(css, opts), tokens) } -it('tokenizes empty file', () => { +test('tokenizes empty file', () => { run('', []) }) -it('tokenizes space', () => { +test('tokenizes space', () => { run('\r\n \f\t', [['space', '\r\n \f\t']]) }) -it('tokenizes word', () => { +test('tokenizes word', () => { run('ab', [['word', 'ab', 0, 1]]) }) -it('splits word by !', () => { +test('splits word by !', () => { run('aa!bb', [ ['word', 'aa', 0, 1], ['word', '!bb', 2, 4] ]) }) -it('changes lines in spaces', () => { +test('changes lines in spaces', () => { run('a \n b', [ ['word', 'a', 0, 0], ['space', ' \n '], @@ -41,7 +44,7 @@ it('changes lines in spaces', () => { ]) }) -it('tokenizes control chars', () => { +test('tokenizes control chars', () => { run('{:;}', [ ['{', '{', 0], [':', ':', 1], @@ -50,7 +53,7 @@ it('tokenizes control chars', () => { ]) }) -it('escapes control symbols', () => { +test('escapes control symbols', () => { run('\\(\\{\\"\\@\\\\""', [ ['word', '\\(', 0, 1], ['word', '\\{', 2, 3], @@ -61,18 +64,18 @@ it('escapes control symbols', () => { ]) }) -it('escapes backslash', () => { +test('escapes backslash', () => { run('\\\\\\\\{', [ ['word', '\\\\\\\\', 0, 3], ['{', '{', 4] ]) }) -it('tokenizes simple brackets', () => { +test('tokenizes simple brackets', () => { run('(ab)', [['brackets', '(ab)', 0, 3]]) }) -it('tokenizes square brackets', () => { +test('tokenizes square brackets', () => { run('a[bc]', [ ['word', 'a', 0, 0], ['[', '[', 1], @@ -81,7 +84,7 @@ it('tokenizes square brackets', () => { ]) }) -it('tokenizes complicated brackets', () => { +test('tokenizes complicated brackets', () => { run('(())("")(/**/)(\\\\)(\n)(', [ ['(', '(', 0], ['brackets', '()', 1, 2], @@ -102,32 +105,32 @@ it('tokenizes complicated brackets', () => { ]) }) -it('tokenizes string', () => { +test('tokenizes string', () => { run('\'"\'"\\""', [ ['string', "'\"'", 0, 2], ['string', '"\\""', 3, 6] ]) }) -it('tokenizes escaped string', () => { +test('tokenizes escaped string', () => { run('"\\\\"', [['string', '"\\\\"', 0, 3]]) }) -it('changes lines in strings', () => { +test('changes lines in strings', () => { run('"\n\n""\n\n"', [ ['string', '"\n\n"', 0, 3], ['string', '"\n\n"', 4, 7] ]) }) -it('tokenizes at-word', () => { +test('tokenizes at-word', () => { run('@word ', [ ['at-word', '@word', 0, 4], ['space', ' '] ]) }) -it('tokenizes at-word end', () => { +test('tokenizes at-word end', () => { run('@one{@two()@three""@four;', [ ['at-word', '@one', 0, 3], ['{', '{', 4], @@ -140,14 +143,14 @@ it('tokenizes at-word end', () => { ]) }) -it('tokenizes urls', () => { +test('tokenizes urls', () => { run('url(/*\\))', [ ['word', 'url', 0, 2], ['brackets', '(/*\\))', 3, 8] ]) }) -it('tokenizes quoted urls', () => { +test('tokenizes quoted urls', () => { run('url(")")', [ ['word', 'url', 0, 2], ['(', '(', 3], @@ -156,15 +159,15 @@ it('tokenizes quoted urls', () => { ]) }) -it('tokenizes at-symbol', () => { +test('tokenizes at-symbol', () => { run('@', [['at-word', '@', 0, 0]]) }) -it('tokenizes comment', () => { +test('tokenizes comment', () => { run('/* a\nb */', [['comment', '/* a\nb */', 0, 8]]) }) -it('changes lines in comments', () => { +test('changes lines in comments', () => { run('a/* \n */b', [ ['word', 'a', 0, 0], ['comment', '/* \n */', 1, 7], @@ -172,7 +175,7 @@ it('changes lines in comments', () => { ]) }) -it('supports line feed', () => { +test('supports line feed', () => { run('a\fb', [ ['word', 'a', 0, 0], ['space', '\f'], @@ -180,7 +183,7 @@ it('supports line feed', () => { ]) }) -it('supports carriage return', () => { +test('supports carriage return', () => { run('a\rb\r\nc', [ ['word', 'a', 0, 0], ['space', '\r'], @@ -190,7 +193,7 @@ it('supports carriage return', () => { ]) }) -it('tokenizes CSS', () => { +test('tokenizes CSS', () => { let css = 'a {\n' + ' content: "a";\n' + @@ -228,25 +231,25 @@ it('tokenizes CSS', () => { ]) }) -it('throws error on unclosed string', () => { - expect(() => { +test('throws error on unclosed string', () => { + throws(() => { tokenize(' "') - }).toThrow(/:1:2: Unclosed string/) + }, /:1:2: Unclosed string/) }) -it('throws error on unclosed comment', () => { - expect(() => { +test('throws error on unclosed comment', () => { + throws(() => { tokenize(' /*') - }).toThrow(/:1:2: Unclosed comment/) + }, /:1:2: Unclosed comment/) }) -it('throws error on unclosed url', () => { - expect(() => { +test('throws error on unclosed url', () => { + throws(() => { tokenize('url(') - }).toThrow(/:1:4: Unclosed bracket/) + }, /:1:4: Unclosed bracket/) }) -it('ignores unclosing string on request', () => { +test('ignores unclosing string on request', () => { run( ' "', [ @@ -257,7 +260,7 @@ it('ignores unclosing string on request', () => { ) }) -it('ignores unclosing comment on request', () => { +test('ignores unclosing comment on request', () => { run( ' /*', [ @@ -268,7 +271,7 @@ it('ignores unclosing comment on request', () => { ) }) -it('ignores unclosing function on request', () => { +test('ignores unclosing function on request', () => { run( 'url(', [ @@ -279,7 +282,7 @@ it('ignores unclosing function on request', () => { ) }) -it('tokenizes hexadecimal escape', () => { +test('tokenizes hexadecimal escape', () => { run('\\0a \\09 \\z ', [ ['word', '\\0a ', 0, 3], ['word', '\\09 ', 4, 7], @@ -288,7 +291,7 @@ it('tokenizes hexadecimal escape', () => { ]) }) -it('ignore unclosed per token request', () => { +test('ignore unclosed per token request', () => { function token(css, opts) { let processor = tokenizer(new Input(css), opts) let tokens = [] @@ -311,19 +314,21 @@ it('ignore unclosed per token request', () => { ['(', '(', 15] ] - expect(tokens).toEqual(expected) + equal(tokens, expected) }) -it('provides correct position', () => { +test('provides correct position', () => { let css = 'Three tokens' let processor = tokenizer(new Input(css)) - expect(processor.position()).toBe(0) + is(processor.position(), 0) processor.nextToken() - expect(processor.position()).toBe(5) + is(processor.position(), 5) processor.nextToken() - expect(processor.position()).toBe(6) + is(processor.position(), 6) processor.nextToken() - expect(processor.position()).toBe(12) + is(processor.position(), 12) processor.nextToken() - expect(processor.position()).toBe(12) + is(processor.position(), 12) }) + +test.run() diff --git a/test/visitor.test.ts b/test/visitor.test.ts old mode 100644 new mode 100755 index 6db5034c6..d00549a08 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -1,5 +1,7 @@ import { resolve, basename } from 'path' import { delay } from 'nanodelay' +import { test } from 'uvu' +import { is, type, equal, throws } from 'uvu/assert' import postcss, { Container, @@ -250,40 +252,39 @@ let postcssAlias = createPlugin(() => { } }) -it('works classic plugin replace-color', async () => { +test('works classic plugin replace-color', async () => { let { css } = await postcss([replaceColorGreenClassic]).process( '.a{ color: red; } ' + '.b{ will-change: transform; }', { from: 'a.css' } ) - expect(css).toEqual('.a{ color: green; } ' + '.b{ will-change: transform; }') + is(css, '.a{ color: green; } ' + '.b{ will-change: transform; }') }) -it('works visitor plugin will-change', async () => { +test('works visitor plugin will-change', async () => { let { css } = postcss([willChangeVisitor]).process( '.foo { will-change: transform; }', { from: 'a.css' } ) - expect(css).toBe( - '.foo { backface-visibility: hidden; will-change: transform; }' - ) + is(css, '.foo { backface-visibility: hidden; will-change: transform; }') }) -it('works visitor plugin add-prop', async () => { +test('works visitor plugin add-prop', async () => { let { css } = await postcss([addPropsVisitor]).process( '.a{ color: red; } .b{ will-change: transform; }', { from: 'a.css' } ) - expect(css).toEqual( + is( + css, '.a{ will-change: transform; color: red; } ' + '.b{ will-change: transform; }' ) }) -it('works visitor plugin add-prop in document with single root', async () => { +test('works visitor plugin add-prop in document with single root', async () => { let document = postcss.document({ nodes: [postcss.parse('.a{ color: red; } .b{ will-change: transform; }')] }) @@ -291,13 +292,14 @@ it('works visitor plugin add-prop in document with single root', async () => { let { css } = await postcss([addPropsVisitor]).process(document, { from: 'a.css' }) - expect(css).toEqual( + is( + css, '.a{ will-change: transform; color: red; } ' + '.b{ will-change: transform; }' ) }) -it('works visitor plugin add-prop in document with two roots', async () => { +test('works visitor plugin add-prop in document with two roots', async () => { let document = postcss.document({ nodes: [ postcss.parse('.a{ color: red; }'), @@ -308,18 +310,18 @@ it('works visitor plugin add-prop in document with two roots', async () => { let { css } = await postcss([addPropsVisitor]).process(document, { from: 'a.css' }) - expect(css).toEqual('.a{ color: red; }' + '.b{ will-change: transform; }') + is(css, '.a{ color: red; }' + '.b{ will-change: transform; }') }) -it('works with at-rule params', () => { +test('works with at-rule params', () => { let { css } = postcss([replacePrintToMobile, replaceScreenToPrint]).process( '@media (screen) {}', { from: 'a.css' } ) - expect(css).toBe('@media (mobile) {}') + is(css, '@media (mobile) {}') }) -it('wraps node to proxies', () => { +test('wraps node to proxies', () => { let proxy: any let root: Root | undefined postcss({ @@ -333,16 +335,22 @@ it('wraps node to proxies', () => { }).process('a{color:black}', { from: 'a.css' }).css if (!root) throw new Error('Nodes were not catched') let rule = root.first as Rule - expect(proxy.proxyOf).toBe(rule) - expect(proxy.root().proxyOf).toBe(rule.root()) - expect(proxy.nodes[0].proxyOf).toBe(rule.first) - expect(proxy.first.proxyOf).toBe(rule.first) - expect(proxy.unknown).toBeUndefined() - expect(proxy.some((decl: Declaration) => decl.prop === 'color')).toBe(true) - expect(proxy.every((decl: Declaration) => decl.prop === 'color')).toBe(true) + equal(proxy.proxyOf, rule) + equal(proxy.root().proxyOf, rule.root()) + equal(proxy.nodes[0].proxyOf, rule.first) + equal(proxy.first.proxyOf, rule.first) + type(proxy.unknown, 'undefined') + is( + proxy.some((decl: Declaration) => decl.prop === 'color'), + true + ) + is( + proxy.every((decl: Declaration) => decl.prop === 'color'), + true + ) let props: string[] = [] proxy.walkDecls((decl: Declaration) => props.push(decl.prop)) - expect(props).toEqual(['color']) + equal(props, ['color']) }) const cssThree = '.a{ color: red; } .b{ will-change: transform; }' @@ -355,22 +363,22 @@ const expectedThree = '} ' + '.b{ backface-visibility: hidden; will-change: transform; }' -it('work of three plug-ins; sequence 1', async () => { +test('work of three plug-ins; sequence 1', async () => { let { css } = await postcss([ replaceColorGreenClassic, willChangeVisitor, addPropsVisitor ]).process(cssThree, { from: 'a.css' }) - expect(css).toEqual(expectedThree) + is(css, expectedThree) }) -it('work of three plug-ins; sequence 2', async () => { +test('work of three plug-ins; sequence 2', async () => { let { css } = await postcss([ addPropsVisitor, replaceColorGreenClassic, willChangeVisitor ]).process(cssThree, { from: 'a.css' }) - expect(css).toEqual(expectedThree) + is(css, expectedThree) }) const cssThreeDocument = postcss.document({ @@ -384,53 +392,53 @@ const expectedThreeDocument = '.a{ color: green; }' + '.b{ backface-visibility: hidden; will-change: transform; }' -it('work of three plug-ins in a document; sequence 1', async () => { +test('work of three plug-ins in a document; sequence 1', async () => { let { css } = await postcss([ replaceColorGreenClassic, willChangeVisitor, addPropsVisitor ]).process(cssThreeDocument, { from: 'a.css' }) - expect(css).toEqual(expectedThreeDocument) + is(css, expectedThreeDocument) }) -it('work of three plug-ins in a document; sequence 2', async () => { +test('work of three plug-ins in a document; sequence 2', async () => { let { css } = await postcss([ addPropsVisitor, replaceColorGreenClassic, willChangeVisitor ]).process(cssThreeDocument, { from: 'a.css' }) - expect(css).toEqual(expectedThreeDocument) + is(css, expectedThreeDocument) }) const cssThroughProps = '.a{color: yellow;}' const expectedThroughProps = '.a{color: red;}' -it('change in node values through props; sequence 1', async () => { +test('change in node values through props; sequence 1', async () => { let { css } = await postcss([ replaceGreenToRed, replaceAllButRedToGreen ]).process(cssThroughProps, { from: 'a.css' }) - expect(css).toEqual(expectedThroughProps) + is(css, expectedThroughProps) }) -it('change in node values through props; sequence 2', async () => { +test('change in node values through props; sequence 2', async () => { let { css } = await postcss([ replaceAllButRedToGreen, replaceGreenToRed ]).process(cssThroughProps, { from: 'a.css' }) - expect(css).toEqual(expectedThroughProps) + is(css, expectedThroughProps) }) -it('works visitor plugin postcss-focus', async () => { +test('works visitor plugin postcss-focus', async () => { let input = '*:focus { outline: 0; }.button:hover { background: red; }' let expected = '*:focus { outline: 0; }' + '.button:hover, .button:focus { background: red; }' let { css } = await postcss([postcssFocus]).process(input, { from: 'a.css' }) - expect(css).toEqual(expected) + is(css, expected) }) -it('works visitor plugin hidden', async () => { +test('works visitor plugin hidden', async () => { let input = 'h2{' + 'display: hidden;' + '}' let expected = @@ -452,7 +460,7 @@ it('works visitor plugin hidden', async () => { '}' let { css } = await postcss([hidden]).process(input, { from: 'a.css' }) - expect(css).toEqual(expected) + is(css, expected) }) let cssFocusHidden = @@ -484,30 +492,30 @@ let expectedFocusHidden = 'clear: both;' + '}' -it('works visitor plugins postcss-focus and hidden; sequence 1', async () => { +test('works visitor plugins postcss-focus and hidden; sequence 1', async () => { let { css } = await postcss([hidden, postcssFocus]).process(cssFocusHidden, { from: 'a.css' }) - expect(css).toEqual(expectedFocusHidden) + is(css, expectedFocusHidden) }) -it('works visitor plugins postcss-focus and hidden; sequence 2', async () => { +test('works visitor plugins postcss-focus and hidden; sequence 2', async () => { let { css } = await postcss([postcssFocus, hidden]).process(cssFocusHidden, { from: 'a.css' }) - expect(css).toEqual(expectedFocusHidden) + is(css, expectedFocusHidden) }) -it('works visitor plugin postcss-alias', async () => { +test('works visitor plugin postcss-alias', async () => { let input = '@alias { fs: font-size; bg: background; }' + '.aliased { fs: 16px; bg: white; }' let expected = '.aliased { font-size: 16px; background: white; }' let { css } = postcss([postcssAlias]).process(input, { from: 'a.css' }) - expect(css).toEqual(expected) + is(css, expected) }) -it('adds plugin to error', async () => { +test('adds plugin to error', async () => { let broken: Plugin = { postcssPlugin: 'broken', Rule(rule) { @@ -520,12 +528,12 @@ it('adds plugin to error', async () => { } catch (e) { error = e } - expect(error.message).toEqual(`broken: ${resolve('broken.css')}:1:1: test`) - expect(error.postcssNode.toString()).toBe('a{}') - expect(error.stack).toContain('broken.css:1:1') + is(error.message, `broken: ${resolve('broken.css')}:1:1: test`) + is(error.postcssNode.toString(), 'a{}') + is(error.stack.includes('broken.css:1:1'), true) }) -it('adds plugin to async error', async () => { +test('adds plugin to async error', async () => { let broken: Plugin = { postcssPlugin: 'broken', async Rule(rule) { @@ -539,12 +547,12 @@ it('adds plugin to async error', async () => { } catch (e) { error = e } - expect(error.message).toEqual(`broken: ${resolve('broken.css')}:1:1: test`) - expect(error.postcssNode.toString()).toBe('a{}') - expect(error.stack).toContain('broken.css:1:1') + is(error.message, `broken: ${resolve('broken.css')}:1:1: test`) + is(error.postcssNode.toString(), 'a{}') + is(error.stack.includes('broken.css:1:1'), true) }) -it('adds sync plugin to async error', async () => { +test('adds sync plugin to async error', async () => { let broken: Plugin = { postcssPlugin: 'broken', Rule(rule) { @@ -557,12 +565,12 @@ it('adds sync plugin to async error', async () => { } catch (e) { error = e } - expect(error.message).toEqual(`broken: ${resolve('broken.css')}:1:1: test`) - expect(error.postcssNode.toString()).toBe('a{}') - expect(error.stack).toContain('broken.css:1:1') + is(error.message, `broken: ${resolve('broken.css')}:1:1: test`) + is(error.postcssNode.toString(), 'a{}') + is(error.stack.includes('broken.css:1:1'), true) }) -it('adds node to error', async () => { +test('adds node to error', async () => { let broken: Plugin = { postcssPlugin: 'broken', Rule() { @@ -575,12 +583,12 @@ it('adds node to error', async () => { } catch (e) { error = e } - expect(error.message).toBe('test') - expect(error.postcssNode.toString()).toBe('a{}') - expect(error.stack).toContain('broken.css:1:1') + is(error.message, 'test') + is(error.postcssNode.toString(), 'a{}') + is(error.stack.includes('broken.css:1:1'), true) }) -it('adds node to async error', async () => { +test('adds node to async error', async () => { let broken: Plugin = { postcssPlugin: 'broken', async Rule() { @@ -594,12 +602,12 @@ it('adds node to async error', async () => { } catch (e) { error = e } - expect(error.message).toBe('test') - expect(error.postcssNode.toString()).toBe('a{}') - expect(error.stack).toContain('broken.css:1:1') + is(error.message, 'test') + is(error.postcssNode.toString(), 'a{}') + is(error.stack.includes('broken.css:1:1'), true) }) -it('shows error on sync call async plugins', () => { +test('shows error on sync call async plugins', () => { let asyncPlugin: Plugin = { postcssPlugin: 'asyncPlugin', async Rule() {} @@ -610,16 +618,16 @@ it('shows error on sync call async plugins', () => { } catch (e) { error = e } - expect(error.message).toContain('work with async plugins') + is(error.message.includes('work with async plugins'), true) }) -it('passes helpers', async () => { +test('passes helpers', async () => { function check(node: AnyNode, helpers: Helpers): void { - expect(helpers.result.messages).toEqual([]) - expect(typeof helpers.postcss).toBe('function') - expect(helpers.comment().type).toBe('comment') - expect(new helpers.Comment().type).toBe('comment') - expect(helpers.list).toBe(postcss.list) + equal(helpers.result.messages, []) + is(typeof helpers.postcss, 'function') + is(helpers.comment().type, 'comment') + is(new helpers.Comment().type, 'comment') + equal(helpers.list, postcss.list) } let syncPlugin: Plugin = { @@ -650,13 +658,13 @@ it('passes helpers', async () => { await postcss([asyncPlugin]).process('a{}', { from: 'a.css' }) }) -it('passes helpers in a document', async () => { +test('passes helpers in a document', async () => { function check(node: AnyNode, helpers: Helpers): void { - expect(helpers.result.messages).toEqual([]) - expect(typeof helpers.postcss).toBe('function') - expect(helpers.comment().type).toBe('comment') - expect(new helpers.Comment().type).toBe('comment') - expect(helpers.list).toBe(postcss.list) + equal(helpers.result.messages, []) + type(helpers.postcss, 'function') + is(helpers.comment().type, 'comment') + is(new helpers.Comment().type, 'comment') + equal(helpers.list, postcss.list) } let syncPlugin: Plugin = { @@ -693,21 +701,22 @@ it('passes helpers in a document', async () => { ) }) -it('detects non-changed values', () => { +test('detects non-changed values', () => { let plugin: Plugin = { postcssPlugin: 'test', Declaration(decl) { decl.value = 'red' } } - expect( + is( postcss([plugin]).process('a{ color: black; background: white; }', { from: 'a.css' - }).css - ).toBe('a{ color: red; background: red; }') + }).css, + 'a{ color: red; background: red; }' + ) }) -it('allows runtime listeners', () => { +test('allows runtime listeners', () => { let root = false let plugin: Plugin = { postcssPlugin: 'test', @@ -725,13 +734,14 @@ it('allows runtime listeners', () => { decl.value = 'red' } } - expect( - postcss([plugin]).process('a{ color: black }', { from: 'a.css' }).css - ).toBe('a.css{ color: red }') - expect(root).toBe(true) + is( + postcss([plugin]).process('a{ color: black }', { from: 'a.css' }).css, + 'a.css{ color: red }' + ) + is(root, true) }) -it('works correctly with nodes changes', () => { +test('works correctly with nodes changes', () => { let plugin: Plugin = { postcssPlugin: 'test', Rule(rule) { @@ -740,22 +750,23 @@ it('works correctly with nodes changes', () => { } } } - expect( - postcss([plugin]).process('a{ color: black }', { from: 'a.css' }).css - ).toBe('a{ z-index: 1; color: black }') + is( + postcss([plugin]).process('a{ color: black }', { from: 'a.css' }).css, + 'a{ z-index: 1; color: black }' + ) }) -it('throws error on unknown plugin property', () => { +test('throws error on unknown plugin property', () => { let plugin: any = { postcssPlugin: 'test', NO: true } - expect(() => { + throws(() => { postcss([plugin]).process('').css - }).toThrow(/Unknown event NO in test\. Try to update PostCSS \(\d/) + }, /Unknown event NO in test\. Try to update PostCSS \(\d/) }) -it('unwraps nodes on inserting', () => { +test('unwraps nodes on inserting', () => { let moveNode: Plugin = { postcssPlugin: 'moveNode', Declaration: { @@ -768,7 +779,7 @@ it('unwraps nodes on inserting', () => { } let root = postcss([moveNode]).process('a{color:red}').root - expect((root.last as any).proxyOf).toBe(root.last) + equal((root.last as any).proxyOf, root.last) }) let redToGreen: Plugin = { @@ -828,8 +839,8 @@ let insertFirst: Plugin = { } } -for (let type of ['sync', 'async']) { - it(`walks ${type} through tree`, async () => { +for (let funcType of ['sync', 'async']) { + test(`walks ${funcType} through tree`, async () => { let [visits, visitor] = buildVisitor() let processor = postcss([visitor]).process( `@media screen { @@ -844,12 +855,13 @@ for (let type of ['sync', 'async']) { }`, { from: 'a.css' } ) - if (type === 'sync') { + if (funcType === 'sync') { processor.css } else { await processor } - expect(addIndex(visits)).toEqual( + equal( + addIndex(visits), addIndex([ ['Once', '1'], ['Root', '1'], @@ -873,7 +885,7 @@ for (let type of ['sync', 'async']) { ) }) - it(`walks ${type} through tree in a document`, async () => { + test(`walks ${funcType} through tree in a document`, async () => { let document = postcss.document({ nodes: [ postcss.parse(`@media screen { @@ -891,13 +903,14 @@ for (let type of ['sync', 'async']) { let [visits, visitor] = buildVisitor() let processor = postcss([visitor]).process(document, { from: 'a.css' }) - if (type === 'sync') { + if (funcType === 'sync') { processor.css } else { await processor } - expect(addIndex(visits)).toEqual( + equal( + addIndex(visits), addIndex([ ['Once', '1'], ['Document', '1'], @@ -923,7 +936,7 @@ for (let type of ['sync', 'async']) { ) }) - it(`walks ${type} during transformations`, async () => { + test(`walks ${funcType} during transformations`, async () => { let [visits, visitor] = buildVisitor() let result = postcss([ visitor, @@ -954,12 +967,13 @@ for (let type of ['sync', 'async']) { { from: 'a.css' } ) let output - if (type === 'sync') { + if (funcType === 'sync') { output = result.css } else { output = (await result).css } - expect(output).toEqual( + is( + output, `a { color: blue; } @@ -974,7 +988,8 @@ for (let type of ['sync', 'async']) { color: blue; }` ) - expect(addIndex(visits)).toEqual( + equal( + addIndex(visits), addIndex([ ['Once', '6'], ['Root', '6'], @@ -1039,7 +1054,7 @@ for (let type of ['sync', 'async']) { ) }) - it(`walks ${type} during transformations in a document`, async () => { + test(`walks ${funcType} during transformations in a document`, async () => { let document = postcss.document({ nodes: [ postcss.parse( @@ -1075,13 +1090,14 @@ for (let type of ['sync', 'async']) { insertFirst ]).process(document, { from: 'a.css' }) let output - if (type === 'sync') { + if (funcType === 'sync') { output = result.css } else { output = (await result).css } - expect(output).toEqual( + is( + output, `a { color: blue; } @@ -1096,7 +1112,8 @@ for (let type of ['sync', 'async']) { color: blue; }` ) - expect(addIndex(visits)).toEqual( + equal( + addIndex(visits), addIndex([ ['Once', '6'], ['Document', '1'], @@ -1169,7 +1186,7 @@ for (let type of ['sync', 'async']) { ) }) - it(`has ${type} property and at-rule name filters`, async () => { + test(`has ${funcType} property and at-rule name filters`, async () => { let filteredDecls: string[] = [] let allDecls: string[] = [] let filteredAtRules: string[] = [] @@ -1209,21 +1226,21 @@ for (let type of ['sync', 'async']) { `@charset "UTF-8"; @media (screen) { COLOR: black; z-index: 1 }`, { from: 'a.css' } ) - if (type === 'sync') { + if (funcType === 'sync') { result.css } else { await result } - expect(filteredDecls).toEqual(['COLOR']) - expect(allDecls).toEqual(['COLOR', 'z-index']) - expect(filteredExits).toEqual(['COLOR']) - expect(allExits).toEqual(['COLOR', 'z-index']) - expect(filteredAtRules).toEqual(['media']) - expect(allAtRules).toEqual(['charset', 'media']) + equal(filteredDecls, ['COLOR']) + equal(allDecls, ['COLOR', 'z-index']) + equal(filteredExits, ['COLOR']) + equal(allExits, ['COLOR', 'z-index']) + equal(filteredAtRules, ['media']) + equal(allAtRules, ['charset', 'media']) }) - it(`has ${type} property and at-rule name filters in a document`, async () => { + test(`has ${funcType} property and at-rule name filters in a document`, async () => { let filteredDecls: string[] = [] let allDecls: string[] = [] let filteredAtRules: string[] = [] @@ -1268,21 +1285,21 @@ for (let type of ['sync', 'async']) { }) let result = postcss([scanner]).process(document, { from: 'a.css' }) - if (type === 'sync') { + if (funcType === 'sync') { result.css } else { await result } - expect(filteredDecls).toEqual(['COLOR']) - expect(allDecls).toEqual(['COLOR', 'z-index']) - expect(filteredExits).toEqual(['COLOR']) - expect(allExits).toEqual(['COLOR', 'z-index']) - expect(filteredAtRules).toEqual(['media']) - expect(allAtRules).toEqual(['charset', 'media']) + equal(filteredDecls, ['COLOR']) + equal(allDecls, ['COLOR', 'z-index']) + equal(filteredExits, ['COLOR']) + equal(allExits, ['COLOR', 'z-index']) + equal(filteredAtRules, ['media']) + equal(allAtRules, ['charset', 'media']) }) - it(`has ${type} OnceExit listener`, async () => { + test(`has ${funcType} OnceExit listener`, async () => { let rootExit = 0 let OnceExit = 0 @@ -1301,17 +1318,17 @@ for (let type of ['sync', 'async']) { let result = postcss([plugin]).process('a{}', { from: 'a.css' }) - if (type === 'sync') { + if (funcType === 'sync') { result.css } else { await result } - expect(rootExit).toBe(2) - expect(OnceExit).toBe(1) + is(rootExit, 2) + is(OnceExit, 1) }) - it(`has ${type} OnceExit listener in a document with one root`, async () => { + test(`has ${funcType} OnceExit listener in a document with one root`, async () => { let RootExit = 0 let OnceExit = 0 let DocumentExit = 0 @@ -1338,18 +1355,18 @@ for (let type of ['sync', 'async']) { let result = postcss([plugin]).process(document, { from: 'a.css' }) - if (type === 'sync') { + if (funcType === 'sync') { result.css } else { await result } - expect(RootExit).toBe(2) - expect(DocumentExit).toBe(2) - expect(OnceExit).toBe(1) + is(RootExit, 2) + is(DocumentExit, 2) + is(OnceExit, 1) }) - it(`has ${type} OnceExit listener in a document with two roots`, async () => { + test(`has ${funcType} OnceExit listener in a document with two roots`, async () => { let RootExit = 0 let OnceExit = 0 let DocumentExit = 0 @@ -1376,19 +1393,19 @@ for (let type of ['sync', 'async']) { let result = postcss([plugin]).process(document, { from: 'a.css' }) - if (type === 'sync') { + if (funcType === 'sync') { result.css } else { await result } - expect(RootExit).toBe(4) - expect(DocumentExit).toBe(2) - expect(OnceExit).toBe(2) // 2 roots === 2 OnceExit + is(RootExit, 4) + is(DocumentExit, 2) + is(OnceExit, 2) // 2 roots === 2 OnceExit }) } -it('throws error from async OnceExit', async () => { +test('throws error from async OnceExit', async () => { let plugin: Plugin = { postcssPlugin: 'test', OnceExit() { @@ -1407,17 +1424,17 @@ it('throws error from async OnceExit', async () => { error = e } - expect(error.message).toBe('test Exit error') + is(error.message, 'test Exit error') }) -it('rescan Root in another processor', () => { +test('rescan Root in another processor', () => { let [visits, visitor] = buildVisitor() let root = postcss([visitor]).process('a{z-index:1}', { from: 'a.css' }).root visits.splice(0, visits.length) postcss([visitor]).process(root, { from: 'a.css' }).root - expect(visits).toEqual([ + equal(visits, [ ['Once', '1'], ['Root', '1'], ['Rule', 'a'], @@ -1429,7 +1446,7 @@ it('rescan Root in another processor', () => { ]) }) -it('rescan Root in another processor in a document', () => { +test('rescan Root in another processor in a document', () => { let [visits, visitor] = buildVisitor() let root = postcss([visitor]).process('a{z-index:1}', { from: 'a.css' }).root let document = postcss.document({ nodes: [root] }) @@ -1437,7 +1454,7 @@ it('rescan Root in another processor in a document', () => { visits.splice(0, visits.length) postcss([visitor]).process(document, { from: 'a.css' }).root - expect(visits).toEqual([ + equal(visits, [ ['Once', '1'], ['Document', '1'], ['Root', '1'], @@ -1451,7 +1468,7 @@ it('rescan Root in another processor in a document', () => { ]) }) -it('marks cleaned nodes as dirty on moving', () => { +test('marks cleaned nodes as dirty on moving', () => { let mover: Plugin = { postcssPlugin: 'mover', Rule(rule) { @@ -1467,7 +1484,7 @@ it('marks cleaned nodes as dirty on moving', () => { from: 'a.css' }).root - expect(visits).toEqual([ + equal(visits, [ ['Once', '2'], ['Root', '2'], ['Rule', 'a'], @@ -1489,7 +1506,7 @@ it('marks cleaned nodes as dirty on moving', () => { ]) }) -it('marks cleaned nodes as dirty on moving in a document', () => { +test('marks cleaned nodes as dirty on moving in a document', () => { let mover: Plugin = { postcssPlugin: 'mover', Rule(rule) { @@ -1509,7 +1526,7 @@ it('marks cleaned nodes as dirty on moving in a document', () => { from: 'a.css' }).root - expect(visits).toEqual([ + equal(visits, [ ['Once', '2'], ['Document', '1'], ['Root', '2'], @@ -1534,3 +1551,5 @@ it('marks cleaned nodes as dirty on moving in a document', () => { ['OnceExit', '1'] ]) }) + +test.run() diff --git a/test/warning.test.ts b/test/warning.test.ts old mode 100644 new mode 100755 index 9e7ba4200..b988b09b9 --- a/test/warning.test.ts +++ b/test/warning.test.ts @@ -1,34 +1,36 @@ import { resolve } from 'path' +import { test } from 'uvu' +import { is, type } from 'uvu/assert' import { Warning, parse, decl } from '../lib/postcss.js' -it('outputs simple warning', () => { +test('outputs simple warning', () => { let warning = new Warning('text') - expect(warning.toString()).toBe('text') + is(warning.toString(), 'text') }) -it('outputs warning with plugin', () => { +test('outputs warning with plugin', () => { let warning = new Warning('text', { plugin: 'plugin' }) - expect(warning.toString()).toBe('plugin: text') + is(warning.toString(), 'plugin: text') }) -it('outputs warning with position', () => { +test('outputs warning with position', () => { let root = parse('a{}') let warning = new Warning('text', { node: root.first }) - expect(warning.toString()).toBe(':1:1: text') + is(warning.toString(), ':1:1: text') }) -it('outputs warning with plugin and node', () => { +test('outputs warning with plugin and node', () => { let file = resolve('a.css') let root = parse('a{}', { from: file }) let warning = new Warning('text', { plugin: 'plugin', node: root.first }) - expect(warning.toString()).toEqual(`plugin: ${file}:1:1: text`) + is(warning.toString(), `plugin: ${file}:1:1: text`) }) -it('outputs warning with index', () => { +test('outputs warning with index', () => { let file = resolve('a.css') let root = parse('@rule param {}', { from: file }) let warning = new Warning('text', { @@ -36,10 +38,10 @@ it('outputs warning with index', () => { node: root.first, index: 7 }) - expect(warning.toString()).toEqual(`plugin: ${file}:1:8: text`) + is(warning.toString(), `plugin: ${file}:1:8: text`) }) -it('outputs warning with word', () => { +test('outputs warning with word', () => { let file = resolve('a.css') let root = parse('@rule param {}', { from: file }) let warning = new Warning('text', { @@ -47,38 +49,40 @@ it('outputs warning with word', () => { node: root.first, word: 'am' }) - expect(warning.toString()).toEqual(`plugin: ${file}:1:10: text`) + is(warning.toString(), `plugin: ${file}:1:10: text`) }) -it('generates warning without source', () => { +test('generates warning without source', () => { let node = decl({ prop: 'color', value: 'black' }) let warning = new Warning('text', { node }) - expect(warning.toString()).toBe(': text') + is(warning.toString(), ': text') }) -it('has line and column is undefined by default', () => { +test('has line and column is undefined by default', () => { let warning = new Warning('text') - expect(warning.line).toBeUndefined() - expect(warning.column).toBeUndefined() + type(warning.line, 'undefined') + type(warning.column, 'undefined') }) -it('gets position from node', () => { +test('gets position from node', () => { let root = parse('a{}') let warning = new Warning('text', { node: root.first }) - expect(warning.line).toBe(1) - expect(warning.column).toBe(1) + is(warning.line, 1) + is(warning.column, 1) }) -it('gets position from word', () => { +test('gets position from word', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, word: 'b' }) - expect(warning.line).toBe(1) - expect(warning.column).toBe(3) + is(warning.line, 1) + is(warning.column, 3) }) -it('gets position from index', () => { +test('gets position from index', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, index: 2 }) - expect(warning.line).toBe(1) - expect(warning.column).toBe(3) + is(warning.line, 1) + is(warning.column, 3) }) + +test.run() diff --git a/yarn.lock b/yarn.lock old mode 100644 new mode 100755 index f9b11ac69..4587b4c8f --- a/yarn.lock +++ b/yarn.lock @@ -2,301 +2,6 @@ # yarn lockfile v1 -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/compat-data@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" - integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" - integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helpers" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" - integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== - dependencies: - "@babel/types" "^7.16.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" - integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" - -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-member-expression-to-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" - integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-transforms@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" - integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-replace-supers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" - integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helpers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.0.tgz#875519c979c232f41adfbd43a3b0398c2e388183" - integrity sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.7.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" - integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" - integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" - integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -336,191 +41,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - "@istanbuljs/schema@^0.1.2": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.3.1.tgz#e8ea3a475d3f8162f23d69efbfaa9cbe486bee93" - integrity sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw== - dependencies: - "@jest/types" "^27.2.5" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.3.1" - jest-util "^27.3.1" - slash "^3.0.0" - -"@jest/core@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.3.1.tgz#04992ef1b58b17c459afb87ab56d81e63d386925" - integrity sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg== - dependencies: - "@jest/console" "^27.3.1" - "@jest/reporters" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.3.0" - jest-config "^27.3.1" - jest-haste-map "^27.3.1" - jest-message-util "^27.3.1" - jest-regex-util "^27.0.6" - jest-resolve "^27.3.1" - jest-resolve-dependencies "^27.3.1" - jest-runner "^27.3.1" - jest-runtime "^27.3.1" - jest-snapshot "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" - jest-watcher "^27.3.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.3.1.tgz#2182defbce8d385fd51c5e7c7050f510bd4c86b1" - integrity sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw== - dependencies: - "@jest/fake-timers" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - jest-mock "^27.3.0" - -"@jest/fake-timers@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" - integrity sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA== - dependencies: - "@jest/types" "^27.2.5" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.3.1" - jest-mock "^27.3.0" - jest-util "^27.3.1" - -"@jest/globals@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.3.1.tgz#ce1dfb03d379237a9da6c1b99ecfaca1922a5f9e" - integrity sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg== - dependencies: - "@jest/environment" "^27.3.1" - "@jest/types" "^27.2.5" - expect "^27.3.1" - -"@jest/reporters@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.3.1.tgz#28b5c1f5789481e23788048fa822ed15486430b9" - integrity sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.3.1" - jest-resolve "^27.3.1" - jest-util "^27.3.1" - jest-worker "^27.3.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/source-map@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" - integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.3.1.tgz#89adee8b771877c69b3b8d59f52f29dccc300194" - integrity sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg== - dependencies: - "@jest/console" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz#4b3bde2dbb05ee74afdae608cf0768e3354683b1" - integrity sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA== - dependencies: - "@jest/test-result" "^27.3.1" - graceful-fs "^4.2.4" - jest-haste-map "^27.3.1" - jest-runtime "^27.3.1" - -"@jest/transform@^27.3.1": - version "27.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.3.1.tgz#ff80eafbeabe811e9025e4b6f452126718455220" - integrity sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.2.5" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.3.1" - jest-regex-util "^27.0.6" - jest-util "^27.3.1" - micromatch "^4.0.4" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.2.5": - version "27.2.5" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" - integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@logux/eslint-config@^46.1.0": version "46.1.0" resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-46.1.0.tgz#26921037e20ace9e8811bfe8672cede991ecb11c" @@ -547,20 +72,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@size-limit/file@6.0.4": version "6.0.4" resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-6.0.4.tgz#64681f0e0ec93d69b1d99f0a40bbbcdd2fb7def6" @@ -725,11 +236,6 @@ "@statoscope/types" "5.14.1" highcharts "^9.2.2" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -740,39 +246,6 @@ resolved "https://registry.yarnpkg.com/@types/archy/-/archy-0.0.32.tgz#8b572741dad9172dfbf289397af1bb41296d3e40" integrity sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.16" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" - integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - "@types/eslint-scope@^3.7.0": version "3.7.1" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" @@ -801,40 +274,11 @@ dependencies: "@types/node" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.2.tgz#ac383c4d4aaddd29bbf2b916d8d105c304a5fcd7" - integrity sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA== - dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" - "@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" @@ -862,21 +306,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" integrity sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA== -"@types/prettier@^2.1.5": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" - integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== - "@types/semver@^7.3.6": version "7.3.9" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -891,18 +325,6 @@ tapable "^2.2.0" webpack "^5" -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - "@typescript-eslint/eslint-plugin@^5.3.1": version "5.3.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3" @@ -1104,19 +526,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - acorn-import-assertions@^1.7.6: version "1.8.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" @@ -1127,28 +536,11 @@ acorn-jsx@^5.3.1: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0: +acorn@^8.4.1, acorn@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -1184,13 +576,6 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" @@ -1215,12 +600,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -1233,13 +613,6 @@ archy@~1.0.0: resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1270,72 +643,6 @@ array.prototype.flat@^1.2.5: define-properties "^1.1.3" es-abstract "^1.19.0" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -babel-jest@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.3.1.tgz#0636a3404c68e07001e434ac4956d82da8a80022" - integrity sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ== - dependencies: - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.2.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz#79f37d43f7e5c4fdc4b2ca3e10cc6cf545626277" - integrity sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz#556bbbf340608fed5670ab0ea0c8ef2449fba885" - integrity sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg== - dependencies: - babel-plugin-jest-hoist "^27.2.0" - babel-preset-current-node-syntax "^1.0.0" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1366,11 +673,6 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: version "4.17.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.6.tgz#c76be33e7786b497f66cad25a73756c8b938985d" @@ -1382,20 +684,6 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4 node-releases "^2.0.1" picocolors "^1.0.0" -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -1406,6 +694,24 @@ bytes-iec@^3.1.1: resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" integrity sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA== +c8@^7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.10.0.tgz#c539ebb15d246b03b0c887165982c49293958a73" + integrity sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.2" + find-up "^5.0.0" + foreground-child "^2.0.0" + istanbul-lib-coverage "^3.0.1" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.0.2" + rimraf "^3.0.0" + test-exclude "^6.0.0" + v8-to-istanbul "^8.0.0" + yargs "^16.2.0" + yargs-parser "^20.2.7" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1419,16 +725,6 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -1444,7 +740,7 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001274: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff" integrity sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg== -chalk@^2.0.0, chalk@^2.4.2: +chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1461,11 +757,6 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - charenc@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -1501,21 +792,11 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== - ci-job-number@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - clean-publish@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.3.tgz#1b12ac1d26549098bf49d0c17fdc9e86824d66be" @@ -1543,16 +824,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1582,13 +853,6 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1611,14 +875,14 @@ concat-with-sourcemaps@^1.1.0: dependencies: source-map "^0.6.1" -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.6.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1756,39 +1020,6 @@ csso@^4.2.0: dependencies: css-tree "^1.1.2" -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1803,26 +1034,18 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +debug@^4.1.1, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -1835,20 +1058,15 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +dequal@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" + integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== -diff-sequences@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" - integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== +diff@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== dir-glob@^3.0.1: version "3.0.1" @@ -1885,13 +1103,6 @@ domelementtype@^2.0.1, domelementtype@^2.2.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - domhandler@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" @@ -1918,11 +1129,6 @@ electron-to-chromium@^1.3.886: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.891.tgz#51d7224e64157656276f152a0b3361708fde1bf9" integrity sha512-3cpwR82QkIS01CN/dup/4Yr3BiOiRLlZlcAFn/5FbNCunMO9ojqDgEP9JEo1QNLflu3pEnPWve50gHOEKc7r6w== -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -1988,6 +1194,114 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild-android-arm64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a" + integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ== + +esbuild-darwin-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf" + integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA== + +esbuild-darwin-arm64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471" + integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g== + +esbuild-freebsd-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151" + integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A== + +esbuild-freebsd-arm64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62" + integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw== + +esbuild-linux-32@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc" + integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w== + +esbuild-linux-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22" + integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw== + +esbuild-linux-arm64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978" + integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng== + +esbuild-linux-arm@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f" + integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ== + +esbuild-linux-mips64le@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f" + integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w== + +esbuild-linux-ppc64le@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02" + integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ== + +esbuild-netbsd-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3" + integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ== + +esbuild-openbsd-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107" + integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w== + +esbuild-sunos-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e" + integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ== + +esbuild-windows-32@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6" + integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw== + +esbuild-windows-64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c" + integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA== + +esbuild-windows-arm64@0.13.13: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c" + integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A== + +esbuild@^0.13.4: + version "0.13.13" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.13.tgz#0b5399c20f219f663c8c1048436fb0f59ab17a41" + integrity sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q== + optionalDependencies: + esbuild-android-arm64 "0.13.13" + esbuild-darwin-64 "0.13.13" + esbuild-darwin-arm64 "0.13.13" + esbuild-freebsd-64 "0.13.13" + esbuild-freebsd-arm64 "0.13.13" + esbuild-linux-32 "0.13.13" + esbuild-linux-64 "0.13.13" + esbuild-linux-arm "0.13.13" + esbuild-linux-arm64 "0.13.13" + esbuild-linux-mips64le "0.13.13" + esbuild-linux-ppc64le "0.13.13" + esbuild-netbsd-64 "0.13.13" + esbuild-openbsd-64 "0.13.13" + esbuild-sunos-64 "0.13.13" + esbuild-windows-32 "0.13.13" + esbuild-windows-64 "0.13.13" + esbuild-windows-arm64 "0.13.13" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -1998,28 +1312,11 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-config-standard@^16.0.3: version "16.0.3" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" @@ -2191,11 +1488,6 @@ espree@^9.0.0: acorn-jsx "^5.3.1" eslint-visitor-keys "^3.0.0" -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" @@ -2230,38 +1522,6 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expect@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.3.1.tgz#d0f170b1f5c8a2009bab0beffd4bb94f043e38e7" - integrity sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg== - dependencies: - "@jest/types" "^27.2.5" - ansi-styles "^5.0.0" - jest-get-type "^27.3.1" - jest-matcher-utils "^27.3.1" - jest-message-util "^27.3.1" - jest-regex-util "^27.0.6" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2278,12 +1538,12 @@ fast-glob@^3.1.1, fast-glob@^3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -2295,13 +1555,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -2323,12 +1576,12 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^5.0.0" + locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: @@ -2344,14 +1597,13 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" + cross-spawn "^7.0.0" + signal-exit "^3.0.2" fs-extra@^10.0.0: version "10.0.0" @@ -2367,7 +1619,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -2382,11 +1634,6 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2401,16 +1648,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -2438,7 +1675,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -2450,11 +1687,6 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^13.6.0, globals@^13.9.0: version "13.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" @@ -2532,47 +1764,11 @@ hosted-git-info@^4.0.2: dependencies: lru-cache "^6.0.0" -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -2596,14 +1792,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2702,11 +1890,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -2731,11 +1914,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -2754,11 +1932,6 @@ is-shared-array-buffer@^1.0.1: resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -2773,11 +1946,6 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - is-weakref@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" @@ -2797,32 +1965,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.1: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -2832,15 +1979,6 @@ istanbul-lib-report@^3.0.0: make-dir "^3.0.0" supports-color "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - istanbul-reports@^3.0.2: version "3.0.5" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.5.tgz#a2580107e71279ea6d661ddede929ffc6d693384" @@ -2849,399 +1987,7 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^27.3.0: - version "27.3.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.3.0.tgz#22a02cc2b34583fc66e443171dc271c0529d263c" - integrity sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg== - dependencies: - "@jest/types" "^27.2.5" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.3.1.tgz#1679e74387cbbf0c6a8b42de963250a6469e0797" - integrity sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw== - dependencies: - "@jest/environment" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.3.1" - is-generator-fn "^2.0.0" - jest-each "^27.3.1" - jest-matcher-utils "^27.3.1" - jest-message-util "^27.3.1" - jest-runtime "^27.3.1" - jest-snapshot "^27.3.1" - jest-util "^27.3.1" - pretty-format "^27.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.3.1.tgz#b576f9d146ba6643ce0a162d782b40152b6b1d16" - integrity sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q== - dependencies: - "@jest/core" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/types" "^27.2.5" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.3.1.tgz#cb3b7f6aaa8c0a7daad4f2b9573899ca7e09bbad" - integrity sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.3.1" - "@jest/types" "^27.2.5" - babel-jest "^27.3.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.3.1" - jest-environment-jsdom "^27.3.1" - jest-environment-node "^27.3.1" - jest-get-type "^27.3.1" - jest-jasmine2 "^27.3.1" - jest-regex-util "^27.0.6" - jest-resolve "^27.3.1" - jest-runner "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" - micromatch "^4.0.4" - pretty-format "^27.3.1" - -jest-diff@^27.0.0, jest-diff@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.3.1.tgz#d2775fea15411f5f5aeda2a5e02c2f36440f6d55" - integrity sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.0.6" - jest-get-type "^27.3.1" - pretty-format "^27.3.1" - -jest-docblock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" - integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.3.1.tgz#14c56bb4f18dd18dc6bdd853919b5f16a17761ff" - integrity sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ== - dependencies: - "@jest/types" "^27.2.5" - chalk "^4.0.0" - jest-get-type "^27.3.1" - jest-util "^27.3.1" - pretty-format "^27.3.1" - -jest-environment-jsdom@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz#63ac36d68f7a9303494df783494856222b57f73e" - integrity sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg== - dependencies: - "@jest/environment" "^27.3.1" - "@jest/fake-timers" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - jest-mock "^27.3.0" - jest-util "^27.3.1" - jsdom "^16.6.0" - -jest-environment-node@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.3.1.tgz#af7d0eed04edafb740311b303f3fe7c8c27014bb" - integrity sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw== - dependencies: - "@jest/environment" "^27.3.1" - "@jest/fake-timers" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - jest-mock "^27.3.0" - jest-util "^27.3.1" - -jest-get-type@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" - integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== - -jest-haste-map@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.3.1.tgz#7656fbd64bf48bda904e759fc9d93e2c807353ee" - integrity sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg== - dependencies: - "@jest/types" "^27.2.5" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.0.6" - jest-serializer "^27.0.6" - jest-util "^27.3.1" - jest-worker "^27.3.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz#df6d3d07c7dafc344feb43a0072a6f09458d32b0" - integrity sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.3.1" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.3.1" - is-generator-fn "^2.0.0" - jest-each "^27.3.1" - jest-matcher-utils "^27.3.1" - jest-message-util "^27.3.1" - jest-runtime "^27.3.1" - jest-snapshot "^27.3.1" - jest-util "^27.3.1" - pretty-format "^27.3.1" - throat "^6.0.1" - -jest-leak-detector@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz#7fb632c2992ef707a1e73286e1e704f9cc1772b2" - integrity sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg== - dependencies: - jest-get-type "^27.3.1" - pretty-format "^27.3.1" - -jest-matcher-utils@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz#257ad61e54a6d4044e080d85dbdc4a08811e9c1c" - integrity sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w== - dependencies: - chalk "^4.0.0" - jest-diff "^27.3.1" - jest-get-type "^27.3.1" - pretty-format "^27.3.1" - -jest-message-util@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" - integrity sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.2.5" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.3.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.3.0: - version "27.3.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.3.0.tgz#ddf0ec3cc3e68c8ccd489bef4d1f525571a1b867" - integrity sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw== - dependencies: - "@jest/types" "^27.2.5" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" - integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== - -jest-resolve-dependencies@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz#85b99bdbdfa46e2c81c6228fc4c91076f624f6e2" - integrity sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A== - dependencies: - "@jest/types" "^27.2.5" - jest-regex-util "^27.0.6" - jest-snapshot "^27.3.1" - -jest-resolve@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.3.1.tgz#0e5542172a1aa0270be6f66a65888647bdd74a3e" - integrity sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw== - dependencies: - "@jest/types" "^27.2.5" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.3.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.3.1" - jest-validate "^27.3.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.3.1.tgz#1d594dcbf3bd8600a7e839e790384559eaf96e3e" - integrity sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww== - dependencies: - "@jest/console" "^27.3.1" - "@jest/environment" "^27.3.1" - "@jest/test-result" "^27.3.1" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.0.6" - jest-environment-jsdom "^27.3.1" - jest-environment-node "^27.3.1" - jest-haste-map "^27.3.1" - jest-leak-detector "^27.3.1" - jest-message-util "^27.3.1" - jest-resolve "^27.3.1" - jest-runtime "^27.3.1" - jest-util "^27.3.1" - jest-worker "^27.3.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.3.1.tgz#80fa32eb85fe5af575865ddf379874777ee993d7" - integrity sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg== - dependencies: - "@jest/console" "^27.3.1" - "@jest/environment" "^27.3.1" - "@jest/globals" "^27.3.1" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.3.1" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.3.1" - jest-message-util "^27.3.1" - jest-mock "^27.3.0" - jest-regex-util "^27.0.6" - jest-resolve "^27.3.1" - jest-snapshot "^27.3.1" - jest-util "^27.3.1" - jest-validate "^27.3.1" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^16.2.0" - -jest-serializer@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" - integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.3.1.tgz#1da5c0712a252d70917d46c037054f5918c49ee4" - integrity sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.3.1" - graceful-fs "^4.2.4" - jest-diff "^27.3.1" - jest-get-type "^27.3.1" - jest-haste-map "^27.3.1" - jest-matcher-utils "^27.3.1" - jest-message-util "^27.3.1" - jest-resolve "^27.3.1" - jest-util "^27.3.1" - natural-compare "^1.4.0" - pretty-format "^27.3.1" - semver "^7.3.2" - -jest-util@^27.0.0, jest-util@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.3.1.tgz#a58cdc7b6c8a560caac9ed6bdfc4e4ff23f80429" - integrity sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw== - dependencies: - "@jest/types" "^27.2.5" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.4" - picomatch "^2.2.3" - -jest-validate@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.3.1.tgz#3a395d61a19cd13ae9054af8cdaf299116ef8a24" - integrity sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q== - dependencies: - "@jest/types" "^27.2.5" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.3.1" - leven "^3.1.0" - pretty-format "^27.3.1" - -jest-watcher@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.3.1.tgz#ba5e0bc6aa843612b54ddb7f009d1cbff7e05f3e" - integrity sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA== - dependencies: - "@jest/test-result" "^27.3.1" - "@jest/types" "^27.2.5" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.3.1" - string-length "^4.0.1" - -jest-worker@^27.0.2, jest-worker@^27.0.6, jest-worker@^27.3.1: +jest-worker@^27.0.2, jest-worker@^27.0.6: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== @@ -3250,33 +1996,11 @@ jest-worker@^27.0.2, jest-worker@^27.0.6, jest-worker@^27.3.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.3.1.tgz#b5bab64e8f56b6f7e275ba1836898b0d9f1e5c8a" - integrity sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng== - dependencies: - "@jest/core" "^27.3.1" - import-local "^3.0.2" - jest-cli "^27.3.1" - jora@^1.0.0-beta.5: version "1.0.0-beta.5" resolved "https://registry.yarnpkg.com/jora/-/jora-1.0.0-beta.5.tgz#55b2c4d86078af1bc74da401e88b67be42b0bddd" integrity sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg== -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -3284,44 +2008,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3342,13 +2028,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.x, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -3365,15 +2044,10 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +kleur@^4.0.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== levn@^0.4.1: version "0.4.1" @@ -3383,14 +2057,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - lilconfig@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" @@ -3409,14 +2075,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^4.1.0" + p-locate "^5.0.0" -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -3431,11 +2097,6 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3450,18 +2111,6 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -make-error@1.x: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - md5@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" @@ -3499,7 +2148,7 @@ mime-db@1.50.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-types@^2.1.12, mime-types@^2.1.27: +mime-types@^2.1.27: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== @@ -3518,7 +2167,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -3528,6 +2177,11 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -3570,16 +2224,6 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" @@ -3595,13 +2239,6 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - nth-check@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" @@ -3609,11 +2246,6 @@ nth-check@^2.0.0: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" @@ -3650,7 +2282,7 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -3666,18 +2298,6 @@ open@^8.2.1: is-docker "^2.1.1" is-wsl "^2.2.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -3697,12 +2317,12 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" @@ -3711,23 +2331,18 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - p-limit "^2.2.0" + p-limit "^3.0.2" p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3735,11 +2350,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -3755,7 +2365,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -3780,13 +2390,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -3794,13 +2397,6 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - postcss-calc@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" @@ -4072,40 +2668,12 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -pretty-format@^27.0.0, pretty-format@^27.3.1: - version "27.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" - integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== - dependencies: - "@jest/types" "^27.2.5" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -4122,11 +2690,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -4154,28 +2717,11 @@ requireindex@~1.2.0: resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - resolve@^1.10.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -4211,6 +2757,13 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +sade@^1.7.3: + version "1.7.4" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.4.tgz#ea681e0c65d248d2095c90578c03ca0bb1b54691" + integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA== + dependencies: + mri "^1.1.0" + safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4221,18 +2774,6 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" @@ -4242,14 +2783,14 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: +semver@7.3.5, semver@^7.2.1, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -4282,7 +2823,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2: version "3.0.5" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== @@ -4292,11 +2833,6 @@ simple-git-hooks@^2.7.0: resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" integrity sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - size-limit@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-6.0.4.tgz#f3345206d8c25485d0d31ea41622761a3a1aad93" @@ -4325,7 +2861,7 @@ source-map-js@^1.0.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== -source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@~0.5.20: version "0.5.20" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== @@ -4333,12 +2869,7 @@ source-map-support@^0.5.6, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -4357,31 +2888,11 @@ spinnies@^0.5.1: cli-cursor "^3.0.0" strip-ansi "^5.2.0" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -4426,16 +2937,6 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -4461,7 +2962,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -4475,14 +2976,6 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - svgo@^2.7.0: version "2.8.0" resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" @@ -4496,24 +2989,11 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - terser-webpack-plugin@^5.1.3: version "5.2.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" @@ -4548,26 +3028,11 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -4575,35 +3040,10 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -ts-jest@^27.0.7: - version "27.0.7" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.7.tgz#fb7c8c8cb5526ab371bc1b23d06e745652cca2d0" - integrity sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" +totalist@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-2.0.0.tgz#db6f1e19c0fa63e71339bbb8fba89653c18c7eec" + integrity sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ== tsconfig-paths@^3.11.0: version "3.11.0" @@ -4620,6 +3060,13 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tsm@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/tsm/-/tsm-2.1.4.tgz#a93d012c4d96b03bbd9b6a974a9f94c581fab460" + integrity sha512-gz1zckplzOzHdiY1HVVUoH8bl2eWxbU6uJraB31w1NQ+/kQkjix3ldYHBnWaoNnOL9q8ruS+E2Wckdcw56DzrA== + dependencies: + esbuild "^0.13.4" + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -4634,35 +3081,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typescript@^4.4.4: version "4.4.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" @@ -4690,11 +3113,6 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -4712,12 +3130,23 @@ util-deprecate@^1.0.2: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +uvu@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.2.tgz#c145e7f4b5becf80099cf22fd8a4a05f0112b2c0" + integrity sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + totalist "^2.0.0" + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^8.1.0: +v8-to-istanbul@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== @@ -4757,27 +3186,6 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - watchpack@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" @@ -4786,16 +3194,6 @@ watchpack@^2.2.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - webpack-sources@^3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" @@ -4831,27 +3229,6 @@ webpack@^5, webpack@^5.61.0: watchpack "^2.2.0" webpack-sources "^3.2.0" -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -4870,7 +3247,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -4889,31 +3266,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" - integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -4929,7 +3281,7 @@ yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.x, yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.7: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -4946,3 +3298,8 @@ yargs@^16.2.0: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From c48fc122b7eb35d0c4e514b37df9b8a33f2ab540 Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Mon, 15 Nov 2021 14:15:02 +0300 Subject: [PATCH 2396/3047] remove browser.test.ts --- test/browser.test.ts | 76 -------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100755 test/browser.test.ts diff --git a/test/browser.test.ts b/test/browser.test.ts deleted file mode 100755 index a50bb34b0..000000000 --- a/test/browser.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -import pico from 'picocolors' -import { test } from 'uvu' -import { is } from 'uvu/assert' - -import CssSyntaxError from '../lib/css-syntax-error.js' - -function isSyntaxError(e: unknown): e is CssSyntaxError { - return e instanceof Error && e.name === 'CssSyntaxError' -} - -let { bold, red, gray, yellow } = pico.createColors(true) - -test('shows code with colors', () => { - let postcss = require('../lib/postcss.js') - - let error: CssSyntaxError | undefined - try { - postcss.parse('a{') - } catch (e) { - if (isSyntaxError(e)) { - error = e - } else { - throw e - } - } - is( - error?.showSourceCode(true), - bold(red('>')) + - gray(' 1 | ') + - 'a' + - yellow('{') + - '\n ' + - gray(' | ') + - bold(red('^')) - ) -}) - -test('shows code without colors', () => { - let postcss = require('../lib/postcss.js') - - let error: CssSyntaxError | undefined - try { - postcss.parse('a{') - } catch (e) { - if (isSyntaxError(e)) { - error = e - } else { - throw e - } - } - is(error?.showSourceCode(false), '> 1 | a{\n' + ' | ^') -}) - -test('generates source map without fs', () => { - let postcss = require('../lib/postcss.js') - - is( - postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css, - 'a{}\n/*# sourceMappingURL=data:application/json;base64,' + - 'eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImEuY3NzIl0sIm5hbWVzIjpbXSw' + - 'ibWFwcGluZ3MiOiJBQUFBLEVBQUUiLCJmaWxlIjoiYS5jc3MiLCJzb3VyY2' + - 'VzQ29udGVudCI6WyJhe30iXX0= */' - ) -}) - -// it(`doesn't throw error without path`, () => { -// jest.doMock('path', () => ({})) -// let postcss = require('../lib/postcss.js') - -// expect( -// postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css -// ).toBe('a{}') -// }) - -test.run() From b015d325011b12dfeb91471712d82bbdfd363c8b Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Mon, 15 Nov 2021 14:16:36 +0300 Subject: [PATCH 2397/3047] add c8 config --- package.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package.json b/package.json index 496888f42..cca56bc68 100755 --- a/package.json +++ b/package.json @@ -99,6 +99,13 @@ "typescript": "^4.4.4", "uvu": "^0.5.2" }, + "c8": { + "exclude": [ + "**/*.test.*" + ], + "lines": 100, + "check-coverage": true + }, "simple-git-hooks": { "pre-commit": "./test/version.js" }, From 185b39d82a3634ccc12e0cc74a29b4bbb8832bf1 Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Mon, 15 Nov 2021 14:16:46 +0300 Subject: [PATCH 2398/3047] fix CI --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1c03e5b86..36045f972 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,7 +41,7 @@ jobs: - name: Install dependencies run: yarn --frozen-lockfile --ignore-engines - name: Run unit tests - run: npx jest + run: yarn unit env: FORCE_COLOR: 2 windows: @@ -60,6 +60,6 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests - run: npx jest + run: yarn unit env: FORCE_COLOR: 2 From 424f8cf3fc966d1d6f51a6f0fdd019d3d75c7201 Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Mon, 15 Nov 2021 23:10:13 +0300 Subject: [PATCH 2399/3047] Convert istanbul ignores to c8 --- lib/container.js | 5 +++-- lib/input.js | 2 +- lib/lazy-result.js | 4 ++-- lib/map-generator.js | 6 +++--- lib/node.js | 5 +++-- lib/postcss.js | 2 +- lib/previous-map.js | 2 +- lib/stringifier.js | 3 ++- 8 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lib/container.js b/lib/container.js index 8b1d0f864..a511a829d 100644 --- a/lib/container.js +++ b/lib/container.js @@ -316,7 +316,7 @@ class Container extends Node { } let processed = nodes.map(i => { - // istanbul ignore next + /* c8 ignore next */ if (!i[my]) Container.rebuild(i) i = i.proxyOf if (i.parent) i.parent.removeChild(i) @@ -410,7 +410,7 @@ Container.registerAtRule = dependant => { module.exports = Container Container.default = Container -// istanbul ignore next +/* c8 ignore start */ Container.rebuild = node => { if (node.type === 'atrule') { Object.setPrototypeOf(node, AtRule.prototype) @@ -430,3 +430,4 @@ Container.rebuild = node => { }) } } +/* c8 ignore stop */ diff --git a/lib/input.js b/lib/input.js index 2a1d26b46..7954ecced 100644 --- a/lib/input.js +++ b/lib/input.js @@ -169,7 +169,7 @@ class Input { if (fileURLToPath) { result.file = fileURLToPath(fromUrl) } else { - // istanbul ignore next + /* c8 ignore next 2 */ throw new Error(`file: protocol is not available in this PostCSS build`) } } diff --git a/lib/lazy-result.js b/lib/lazy-result.js index 642bba30c..584a95dc1 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -137,7 +137,7 @@ class LazyResult { } if (root && !root[my]) { - // istanbul ignore next + /* c8 ignore next 2 */ Container.rebuild(root) } } @@ -379,7 +379,7 @@ class LazyResult { } } } catch (err) { - // istanbul ignore next + /* c8 ignore next 3 */ // eslint-disable-next-line no-console if (console && console.error) console.error(err) } diff --git a/lib/map-generator.js b/lib/map-generator.js index a86cc67a0..6e8a9507a 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -129,7 +129,7 @@ class MapGenerator { if (Buffer) { return Buffer.from(str).toString('base64') } else { - // istanbul ignore next + /* c8 ignore next 2 */ return window.btoa(unescape(encodeURIComponent(str))) } } @@ -193,7 +193,7 @@ class MapGenerator { toUrl(path) { if (sep === '\\') { - // istanbul ignore next + /* c8 ignore next 2 */ path = path.replace(/\\/g, '/') } return encodeURI(path).replace(/[#?]/g, encodeURIComponent) @@ -206,7 +206,7 @@ class MapGenerator { if (pathToFileURL) { return pathToFileURL(node.source.input.from).toString() } else { - // istanbul ignore next + /* c8 ignore next 4 */ throw new Error( '`map.absolute` option is not available in this PostCSS build' ) diff --git a/lib/node.js b/lib/node.js index d26ef1fdd..7fc3b3934 100644 --- a/lib/node.js +++ b/lib/node.js @@ -10,7 +10,7 @@ function cloneNode(obj, parent) { for (let i in obj) { if (!Object.prototype.hasOwnProperty.call(obj, i)) { - // istanbul ignore next + /* c8 ignore next 2 */ continue } if (i === 'proxyCache') continue @@ -184,7 +184,7 @@ class Node { for (let name in this) { if (!Object.prototype.hasOwnProperty.call(this, name)) { - // istanbul ignore next + /* c8 ignore next 2 */ continue } if (name === 'parent' || name === 'proxyCache') continue @@ -263,6 +263,7 @@ class Node { prop === 'name' || prop === 'params' || prop === 'important' || + /* c8 ignore next */ prop === 'text' ) { node.markDirty() diff --git a/lib/postcss.js b/lib/postcss.js index 0c8f0883c..c3883b9f6 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -36,7 +36,7 @@ postcss.plugin = function plugin(name, initializer) { 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' ) if (process.env.LANG && process.env.LANG.startsWith('cn')) { - // istanbul ignore next + /* c8 ignore next 7 */ // eslint-disable-next-line no-console console.warn( name + diff --git a/lib/previous-map.js b/lib/previous-map.js index bcc378d5b..d13a93a31 100644 --- a/lib/previous-map.js +++ b/lib/previous-map.js @@ -8,7 +8,7 @@ function fromBase64(str) { if (Buffer) { return Buffer.from(str, 'base64').toString() } else { - // istanbul ignore next + /* c8 ignore next 2 */ return window.atob(str) } } diff --git a/lib/stringifier.js b/lib/stringifier.js index 81e125182..cdaa9eb80 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -25,7 +25,7 @@ class Stringifier { } stringify(node, semicolon) { - /* istanbul ignore if */ + /* c8 ignore start */ if (!this[node.type]) { throw new Error( 'Unknown AST node type ' + @@ -34,6 +34,7 @@ class Stringifier { 'Maybe you need to change PostCSS stringifier.' ) } + /* c8 ignore stop */ this[node.type](node, semicolon) } From 78879efda95c9bca2aa25610cff97cd1cbfaca51 Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Mon, 15 Nov 2021 23:10:51 +0300 Subject: [PATCH 2400/3047] Add unit:win script for test on windows --- .github/workflows/test.yml | 2 +- package.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 36045f972..38c885904 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,6 +60,6 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests - run: yarn unit + run: yarn unit:win env: FORCE_COLOR: 2 diff --git a/package.json b/package.json index cca56bc68..3bbad8bef 100755 --- a/package.json +++ b/package.json @@ -54,7 +54,8 @@ ], "scripts": { "test": "c8 yarn unit && eslint . && ./test/version.js && check-dts && ./test/integration.js && size-limit", - "unit": "uvu -r tsm test '\\.test\\.(ts|js)$'" + "unit": "uvu -r tsm test '\\.test\\.(ts|js)$'", + "unit:win": "uvu -r tsm test ^.*test.([tj]s)" }, "funding": { "type": "opencollective", From b2c2ace89dcd79cf48c5722bdff7d812c039cc76 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Tue, 16 Nov 2021 15:39:01 +0300 Subject: [PATCH 2401/3047] Remove todo comment --- lib/no-work-result.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/no-work-result.js b/lib/no-work-result.js index cd7e9f4ce..b5f0d3467 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -10,7 +10,6 @@ const Result = require('./result') // eslint-disable-next-line let postcss = {} -// @TODO: Add more tests (we need 100% coverage for this class) class NoWorkResult { constructor(processor, css, opts) { this.stringified = false From 6d7f56ed1e4b9126392361083f9ebae3d6888541 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Tue, 16 Nov 2021 15:47:13 +0300 Subject: [PATCH 2402/3047] Remove postcss variable from no-work-result.js --- lib/no-work-result.js | 8 -------- lib/postcss.js | 2 -- 2 files changed, 10 deletions(-) diff --git a/lib/no-work-result.js b/lib/no-work-result.js index b5f0d3467..25f00396a 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -6,10 +6,6 @@ let warnOnce = require('./warn-once') let parse = require('./parse') const Result = require('./result') -// @FIXME: Not sure why eslint is complaining about this. Temporary disable. -// eslint-disable-next-line -let postcss = {} - class NoWorkResult { constructor(processor, css, opts) { this.stringified = false @@ -133,9 +129,5 @@ class NoWorkResult { } } -NoWorkResult.registerPostcss = dependant => { - postcss = dependant -} - module.exports = NoWorkResult NoWorkResult.default = NoWorkResult diff --git a/lib/postcss.js b/lib/postcss.js index 1d0d0b9a0..0c8f0883c 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -3,7 +3,6 @@ let CssSyntaxError = require('./css-syntax-error') let Declaration = require('./declaration') let LazyResult = require('./lazy-result') -let NoWorkResult = require('./no-work-result') let Container = require('./container') let Processor = require('./processor') let stringify = require('./stringify') @@ -94,7 +93,6 @@ postcss.Root = Root postcss.Node = Node LazyResult.registerPostcss(postcss) -NoWorkResult.registerPostcss(postcss) module.exports = postcss postcss.default = postcss From fe21b30e4bf770f8c0b65684d58b37b2c55f4203 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Tue, 16 Nov 2021 16:22:55 +0300 Subject: [PATCH 2403/3047] add single mapping instead of mapping for every line --- lib/map-generator.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 9bf88be76..ae5ca52b4 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -69,7 +69,6 @@ class MapGenerator { if (this.mapOpts.annotation === false) return if (!this.root && typeof this.css === 'string') { - // @NOTE: not sure about this regex. Is it safe to use? this.css = this.css.replace(/\/\*#[\S\s]*?\*\/$/gm, '') } else { let node @@ -193,12 +192,10 @@ class MapGenerator { source = '' } - this.css.split(/\n/).forEach((_, index) => { - this.map.addMapping({ - source, - generated: { line: index + 1, column: 0 }, - original: { line: index + 1, column: 0 } - }) + this.map.addMapping({ + source, + generated: { line: 1, column: 0 }, + original: { line: 1, column: 0 } }) if (this.isAnnotation()) this.addAnnotation() From ddee05d0c1cf812b45c8877c4479d949ee40fff1 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Tue, 16 Nov 2021 16:30:43 +0300 Subject: [PATCH 2404/3047] Rework test to call root twice and expect no errors --- test/no-work-result.test.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index 3cede60de..a91f5254d 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -31,16 +31,13 @@ it('throws error on sync()', () => { expect(() => noWorkResult.sync()).toThrow(CssSyntaxError) }) -it('returns cached root on second access', () => { +it('returns cached root on second access', async () => { let result = new NoWorkResult(processor, 'a {}', {}) - // @ts-ignore - expect(result._root).toBeUndefined() - expect(result.root.nodes).toHaveLength(1) + result.root - // @ts-ignore - expect(result._root).toBeDefined() expect(result.root.nodes).toHaveLength(1) + expect(() => result.sync()).not.toThrow() }) it('contains css syntax errors', () => { From cf5703536f3d6024674a79507170965a6dd565d4 Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Tue, 16 Nov 2021 17:43:38 +0300 Subject: [PATCH 2405/3047] remove note --- lib/no-work-result.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/no-work-result.js b/lib/no-work-result.js index 25f00396a..3d02eda06 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -20,8 +20,6 @@ class NoWorkResult { this.result = new Result(this._processor, root, this._opts) this.result.css = css - // @NOTE: this one is tricky. We set Result#root getter to return - // the NoWorkResult#root instead, to preserve laziness on Result#root access let self = this Object.defineProperty(this.result, 'root', { get() { From 6318030a62ceb1667cdd3fb9e49e8e12a910c003 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 16 Nov 2021 16:43:49 +0100 Subject: [PATCH 2406/3047] Export Processor type --- lib/postcss.d.ts | 53 ++++++++++++++++++++++++------------------------ lib/postcss.js | 1 + lib/postcss.mjs | 1 + 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index 445880663..35a759f7d 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -10,52 +10,53 @@ import Node, { AnyNode } from './node.js' import Declaration, { DeclarationProps } from './declaration.js' -import Root, { RootProps } from './root.js' +import Container, { ContainerProps } from './container.js' import Document, { DocumentProps } from './document.js' +import Warning, { WarningOptions } from './warning.js' import Comment, { CommentProps } from './comment.js' import AtRule, { AtRuleProps } from './at-rule.js' +import Input, { FilePosition } from './input.js' import Result, { Message } from './result.js' -import LazyResult from './lazy-result.js' +import Root, { RootProps } from './root.js' import Rule, { RuleProps } from './rule.js' -import Container, { ContainerProps } from './container.js' -import Warning, { WarningOptions } from './warning.js' -import Input, { FilePosition } from './input.js' import CssSyntaxError from './css-syntax-error.js' import list, { List } from './list.js' +import LazyResult from './lazy-result.js' import Processor from './processor.js' export { - WarningOptions, - FilePosition, - Position, - Source, - ChildNode, - AnyNode, - Message, NodeErrorOptions, - NodeProps, DeclarationProps, + CssSyntaxError, ContainerProps, + WarningOptions, + DocumentProps, + FilePosition, CommentProps, - RuleProps, - ChildProps, AtRuleProps, + Declaration, + ChildProps, + LazyResult, + ChildNode, + NodeProps, + Processor, + RuleProps, RootProps, - DocumentProps, - Warning, - CssSyntaxError, - Node, Container, - list, - Declaration, + Position, + Document, + AnyNode, + Warning, + Message, Comment, + Source, AtRule, - Rule, - Root, - Document, Result, - LazyResult, - Input + Input, + Node, + list, + Rule, + Root } export type SourceMap = SourceMapGenerator & { diff --git a/lib/postcss.js b/lib/postcss.js index 0c8f0883c..9179d48ae 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -82,6 +82,7 @@ postcss.document = defaults => new Document(defaults) postcss.CssSyntaxError = CssSyntaxError postcss.Declaration = Declaration postcss.Container = Container +postcss.Processor = Processor postcss.Document = Document postcss.Comment = Comment postcss.Warning = Warning diff --git a/lib/postcss.mjs b/lib/postcss.mjs index 6ba7d1124..35075988c 100644 --- a/lib/postcss.mjs +++ b/lib/postcss.mjs @@ -18,6 +18,7 @@ export const root = postcss.root export const CssSyntaxError = postcss.CssSyntaxError export const Declaration = postcss.Declaration export const Container = postcss.Container +export const Processor = postcss.Processor export const Document = postcss.Document export const Comment = postcss.Comment export const Warning = postcss.Warning From 85e0a4a7ac3dc345be71f3d73763cb82fb8c7708 Mon Sep 17 00:00:00 2001 From: 43081j <43081j@users.noreply.github.com> Date: Tue, 16 Nov 2021 21:34:14 +0000 Subject: [PATCH 2407/3047] fix: add `Document` to result sets and default parser type Fixes #1667 A `Result` can now contain a root which is ` Document`. For example, a custom syntax may produce a `Document` containing several nested `Root` stylesheets. Similarly, the default type parameter of `Parser` has been updated to include `Document` since custom syntaxes must account for this anyway. --- lib/postcss.d.ts | 8 ++++---- lib/result.d.ts | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index 35a759f7d..30a0d0883 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -222,7 +222,7 @@ export type AcceptedPlugin = } | Processor -export interface Parser { +export interface Parser { ( css: string | { toString(): string }, opts?: Pick @@ -246,7 +246,7 @@ export interface Syntax { /** * Function to generate AST by string. */ - parse?: Parser + parse?: Parser /** * Class to generate string by AST. @@ -379,7 +379,7 @@ export interface Postcss { * root1.append(root2).toResult().css * ``` */ - parse: Parser + parse: Parser /** * Rehydrate a JSON AST (from `Node#toJSON`) back into the AST classes. @@ -459,7 +459,7 @@ export interface Postcss { } export const stringify: Stringifier -export const parse: Parser +export const parse: Parser export const fromJSON: JSONHydrator export const comment: Postcss['comment'] diff --git a/lib/result.d.ts b/lib/result.d.ts index 11e7bf435..8a582b69e 100644 --- a/lib/result.d.ts +++ b/lib/result.d.ts @@ -4,6 +4,7 @@ import { SourceMap, TransformCallback, Root, + Document, Node, Warning, WarningOptions @@ -94,7 +95,7 @@ export default class Result { * root.toResult().root === root * ``` */ - root: Root + root: Root | Document /** * Options from the `Processor#process` or `Root#toResult` call @@ -141,7 +142,7 @@ export default class Result { * @param root Root node after all transformations. * @param opts Options from the `Processor#process` or `Root#toResult`. */ - constructor(processor: Processor, root: Root, opts: ResultOptions) + constructor(processor: Processor, root: Root | Document, opts: ResultOptions) /** * An alias for the `Result#css` property. From b1583d922bc5d081da3a92b6e895e05bfb88f2f9 Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Tue, 16 Nov 2021 17:15:01 -0800 Subject: [PATCH 2408/3047] feat: Support ranges for errors and warnings Allows for better diagnostics in linters, language servers, and plugins. --- lib/css-syntax-error.d.ts | 63 ++++++++++++++++++++++++++++++----- lib/css-syntax-error.js | 11 ++++-- lib/input.d.ts | 32 ++++++++++++++---- lib/input.js | 52 +++++++++++++++++++++++------ lib/node.d.ts | 34 +++++++++++++++++++ lib/node.js | 36 ++++++++++++++++++-- lib/parser.js | 30 ++++++++++++++--- lib/warning.d.ts | 29 ++++++++++++++-- lib/warning.js | 24 +++++++++++-- test/css-syntax-error.test.ts | 22 ++++++++++++ test/node.test.ts | 34 +++++++++++++++++++ test/previous-map.test.ts | 19 +++++++---- test/warning.test.ts | 13 +++++++- 13 files changed, 352 insertions(+), 47 deletions(-) diff --git a/lib/css-syntax-error.d.ts b/lib/css-syntax-error.d.ts index 76d099a95..3fd055528 100644 --- a/lib/css-syntax-error.d.ts +++ b/lib/css-syntax-error.d.ts @@ -1,5 +1,20 @@ import { FilePosition } from './input.js' +/** + * A position that is part of a range. + */ +export interface RangePosition { + /** + * The line number in the input. + */ + line: number + + /** + * The column number in the input. + */ + column: number +} + /** * The CSS parser throws this error for broken CSS. * @@ -31,17 +46,21 @@ import { FilePosition } from './input.js' */ export default class CssSyntaxError { /** - * @param message Error message. - * @param line Source line of the error. - * @param column Source column of the error. - * @param source Source code of the broken file. - * @param file Absolute path to the broken file. - * @param plugin PostCSS plugin name, if error came from plugin. + * Instantiates a CSS syntax error. Can be instantiated for a single position + * or for a range. + * @param message Error message. + * @param lineOrStartPos If for a single position, the line number, or if for + * a range, the inclusive start position of the error. + * @param columnOrEndPos If for a single position, the column number, or if for + * a range, the exclusive end position of the error. + * @param source Source code of the broken file. + * @param file Absolute path to the broken file. + * @param plugin PostCSS plugin name, if error came from plugin. */ constructor( message: string, - line?: number, - column?: number, + lineOrStartPos?: number | RangePosition, + columnOrEndPos?: number | RangePosition, source?: string, file?: string, plugin?: string @@ -121,6 +140,34 @@ export default class CssSyntaxError { */ column?: number + /** + * Source line of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endLine //=> 3 + * error.input.endLine //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endLine`. + */ + endLine?: number + + /** + * Source column of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endColumn //=> 1 + * error.input.endColumn //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endColumn`. + */ + endColumn?: number + /** * Source code of the broken file. * diff --git a/lib/css-syntax-error.js b/lib/css-syntax-error.js index 3161f21fb..d6b369b8f 100644 --- a/lib/css-syntax-error.js +++ b/lib/css-syntax-error.js @@ -20,8 +20,15 @@ class CssSyntaxError extends Error { this.plugin = plugin } if (typeof line !== 'undefined' && typeof column !== 'undefined') { - this.line = line - this.column = column + if (typeof line === 'number') { + this.line = line + this.column = column + } else { + this.line = line.line + this.column = line.column + this.endLine = column.line + this.endColumn = column.column + } } this.setMessage() diff --git a/lib/input.d.ts b/lib/input.d.ts index 399f43473..357910bd0 100644 --- a/lib/input.d.ts +++ b/lib/input.d.ts @@ -13,15 +13,25 @@ export interface FilePosition { file?: string /** - * Line in source file. + * Line of inclusive start position in source file. */ line: number /** - * Column in source file. + * Column of inclusive start position in source file. */ column: number + /** + * Line of exclusive end position in source file. + */ + endLine?: number + + /** + * Column of exclusive end position in source file. + */ + endColumn?: number + /** * Source code. */ @@ -108,18 +118,28 @@ export default class Input { /** * Reads the input source map and returns a symbol position * in the input source (e.g., in a Sass file that was compiled - * to CSS before being passed to PostCSS). + * to CSS before being passed to PostCSS). Optionally takes an + * end position, exclusive. * * ```js * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 } + * root.source.input.origin(1, 1, 1, 4) + * //=> { file: 'a.css', line: 3, column: 1, endLine: 3, endColumn: 4 } * ``` * - * @param line Line in input CSS. - * @param column Column in input CSS. + * @param line Line for inclusive start position in input CSS. + * @param column Column for inclusive start position in input CSS. + * @param endLine Line for exclusive end position in input CSS. + * @param endColumn Column for exclusive end position in input CSS. * * @return Position in input source. */ - origin(line: number, column: number): FilePosition | false + origin( + line: number, + column: number, + endLine?: number, + endColumn?: number + ): FilePosition | false /** * Converts source offset to line and column. diff --git a/lib/input.js b/lib/input.js index 2a1d26b46..4f245dfa7 100644 --- a/lib/input.js +++ b/lib/input.js @@ -103,18 +103,43 @@ class Input { } error(message, line, column, opts = {}) { - let result - if (!column) { + let result, endLine, endColumn + + if (line && typeof line === 'object') { + let start = line + let end = column + if (typeof line.offset === 'number') { + let pos = this.fromOffset(start.offset) + line = pos.line + column = pos.col + } else { + line = start.line + column = start.column + } + if (typeof end.offset === 'number') { + let pos = this.fromOffset(end.offset) + endLine = pos.line + endColumn = pos.col + } else { + endLine = end.line + endColumn = end.column + } + } else if (!column) { let pos = this.fromOffset(line) line = pos.line column = pos.col } - let origin = this.origin(line, column) + + let origin = this.origin(line, column, endLine, endColumn) if (origin) { result = new CssSyntaxError( message, - origin.line, - origin.column, + origin.endLine === undefined + ? origin.line + : { line: origin.line, column: origin.column }, + origin.endLine === undefined + ? origin.column + : { line: origin.endLine, column: origin.endColumn }, origin.source, origin.file, opts.plugin @@ -122,15 +147,15 @@ class Input { } else { result = new CssSyntaxError( message, - line, - column, + endLine === undefined ? line : { line, column }, + endLine === undefined ? column : { line: endLine, column: endColumn }, this.css, this.file, opts.plugin ) } - result.input = { line, column, source: this.css } + result.input = { line, column, endLine, endColumn, source: this.css } if (this.file) { if (pathToFileURL) { result.input.url = pathToFileURL(this.file).toString() @@ -141,13 +166,18 @@ class Input { return result } - origin(line, column) { + origin(line, column, endLine, endColumn) { if (!this.map) return false let consumer = this.map.consumer() let from = consumer.originalPositionFor({ line, column }) if (!from.source) return false + let to + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ line: endLine, column: endColumn }) + } + let fromUrl if (isAbsolute(from.source)) { @@ -162,7 +192,9 @@ class Input { let result = { url: fromUrl.toString(), line: from.line, - column: from.column + column: from.column, + endLine: to && to.line, + endColumn: to && to.column } if (fromUrl.protocol === 'file:') { diff --git a/lib/node.d.ts b/lib/node.d.ts index 9e46e8764..c14d61b45 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -38,6 +38,18 @@ export interface Position { line: number } +export interface Range { + /** + * Start position, inclusive. + */ + start: Position + + /** + * End position, exclusive. + */ + end: Position +} + export interface Source { /** * The file source of the node. @@ -72,6 +84,11 @@ interface NodeErrorOptions { * of error. */ index?: number + /** + * An ending index inside a node's string that should be highlighted as + * source of error. + */ + endIndex?: number } /** @@ -441,4 +458,21 @@ export default abstract class Node { * @return Symbol position in file. */ positionInside(index: number): Position + + /** + * Get the position for a word or an index inside the node. + * + * @param opts Options. + * @return Position. + */ + positionBy(opts?: Pick): Position + + /** + * Get the range for a word or start and end index inside the node. + * The start index is inclusive; the end index is exclusive. + * + * @param opts Options. + * @return Range. + */ + rangeBy(opts?: Pick): Range } diff --git a/lib/node.js b/lib/node.js index d26ef1fdd..c6a5f2323 100644 --- a/lib/node.js +++ b/lib/node.js @@ -56,8 +56,18 @@ class Node { error(message, opts = {}) { if (this.source) { - let pos = this.positionBy(opts) - return this.source.input.error(message, pos.line, pos.column, opts) + if (opts.word || opts.endIndex) { + let { start, end } = this.rangeBy(opts) + return this.source.input.error( + message, + { line: start.line, column: start.column }, + { line: end.line, column: end.column }, + opts + ) + } + + let start = this.positionBy(opts) + return this.source.input.error(message, start.line, start.column, opts) } return new CssSyntaxError(message) } @@ -252,6 +262,28 @@ class Node { return pos } + rangeBy(opts) { + if (opts.word) { + let index = this.toString().indexOf(opts.word) + if (index !== -1) { + return { + start: this.positionInside(index), + end: this.positionInside(index + opts.word.length) + } + } + } + + let { start } = this.source + let end = start + if (opts.index) { + start = this.positionInside(opts.index) + } + if (opts.endIndex) { + end = this.positionInside(opts.endIndex) + } + return { start, end } + } + getProxyProcessor() { return { set(node, prop, value) { diff --git a/lib/parser.js b/lib/parser.js index 4144cc92d..eb8fc41c6 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -511,15 +511,27 @@ class Parser { // Errors unclosedBracket(bracket) { - throw this.input.error('Unclosed bracket', bracket[2]) + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) } unknownWord(tokens) { - throw this.input.error('Unknown word', tokens[0][2]) + throw this.input.error( + 'Unknown word', + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) } unexpectedClose(token) { - throw this.input.error('Unexpected }', token[2]) + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) } unclosedBlock() { @@ -528,11 +540,19 @@ class Parser { } doubleColon(token) { - throw this.input.error('Double colon', token[2]) + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) } unnamedAtrule(node, token) { - throw this.input.error('At-rule without name', token[2]) + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) } precheckMissedSemicolon(/* tokens */) { diff --git a/lib/warning.d.ts b/lib/warning.d.ts index a285367fe..0e7768227 100644 --- a/lib/warning.d.ts +++ b/lib/warning.d.ts @@ -12,10 +12,15 @@ export interface WarningOptions { word?: string /** - * Index in CSS node string that caused the warning. + * Start index, inclusive, in CSS node string that caused the warning. */ index?: number + /** + * End index, exclusive, in CSS node string that caused the warning. + */ + endIndex?: number + /** * Name of the plugin that created this warning. `Result#warn` fills * this property automatically. @@ -68,7 +73,7 @@ export default class Warning { node: Node /** - * Line in the input file with this warning’s source. + * Line for inclusive start position in the input file with this warning’s source. * * ```js * warning.line //=> 5 @@ -77,7 +82,7 @@ export default class Warning { line: number /** - * Column in the input file with this warning’s source. + * Column for inclusive start position in the input file with this warning’s source. * * ```js * warning.column //=> 6 @@ -85,6 +90,24 @@ export default class Warning { */ column: number + /** + * Line for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endLine //=> 6 + * ``` + */ + endLine?: number + + /** + * Column for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endColumn //=> 4 + * ``` + */ + endColumn?: number + /** * @param text Warning message. * @param opts Warning options. diff --git a/lib/warning.js b/lib/warning.js index cdb0281db..23b7633f1 100644 --- a/lib/warning.js +++ b/lib/warning.js @@ -6,9 +6,27 @@ class Warning { this.text = text if (opts.node && opts.node.source) { - let pos = opts.node.positionBy(opts) - this.line = pos.line - this.column = pos.column + if ( + opts.word || + typeof opts.endLine === 'number' || + typeof opts.endIndex === 'number' + ) { + let range = opts.node.rangeBy(opts) + this.line = range.start.line + this.column = range.start.column + + if ( + range.start.line !== range.end.line || + range.start.column !== range.end.column + ) { + this.endLine = range.end.line + this.endColumn = range.end.column + } + } else { + let pos = opts.node.positionBy(opts) + this.line = pos.line + this.column = pos.column + } } for (let opt in opts) this[opt] = opts[opt] diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 71784abee..9e46bbbb1 100644 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -62,6 +62,28 @@ it('saves source', () => { }) }) +it('saves source with ranges', () => { + let error = parseError('badword') + + expect(error instanceof CssSyntaxError).toBe(true) + expect(error.name).toBe('CssSyntaxError') + expect(error.message).toBe(':1:1: Unknown word') + expect(error.reason).toBe('Unknown word') + expect(error.line).toBe(1) + expect(error.column).toBe(1) + expect(error.endLine).toBe(1) + expect(error.endColumn).toBe(8) + expect(error.source).toBe('badword') + + expect(error.input).toEqual({ + line: error.line, + column: error.column, + endLine: error.endLine, + endColumn: error.endColumn, + source: error.source + }) +}) + it('has stack trace', () => { expect(parseError('a {\n content: "\n}').stack).toMatch( /css-syntax-error\.test\.ts/ diff --git a/test/node.test.ts b/test/node.test.ts index ff347e400..c257e0b35 100644 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -409,3 +409,37 @@ it('positionInside() returns position when node contains newlines', () => { let one = a.first as Declaration expect(one.positionInside(10)).toEqual({ line: 3, column: 4 }) }) + +it('positionBy() returns position for word', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + expect(one.positionBy({ word: 'one' })).toEqual({ line: 1, column: 6 }) +}) + +it('positionBy() returns position for index', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + expect(one.positionBy({ index: 1 })).toEqual({ line: 1, column: 7 }) +}) + +it('rangeBy() returns range for word', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + expect(one.rangeBy({ word: 'one' })).toEqual({ + start: { line: 1, column: 6 }, + end: { line: 1, column: 9 } + }) +}) + +it('rangeBy() returns range for index and endIndex', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + expect(one.rangeBy({ index: 1, endIndex: 3 })).toEqual({ + start: { line: 1, column: 7 }, + end: { line: 1, column: 9 } + }) +}) diff --git a/test/previous-map.test.ts b/test/previous-map.test.ts index 939257db4..b5f27e44d 100644 --- a/test/previous-map.test.ts +++ b/test/previous-map.test.ts @@ -247,18 +247,23 @@ it('uses source map path as a root', () => { join(dir, 'maps', 'a.map'), JSON.stringify({ version: 3, - mappings: 'AAAA,CAAC;EAAC,CAAC,EAAC,CAAC', + file: 'test.css', sources: ['../../test.scss'], - names: [], - file: 'test.css' + mappings: 'AACA,CAAC,CACG,GAAG,CAAC;EACF,KAAK,EAAE,GAAI;CACZ', + names: [] }) ) - let root = parse('a{}\n/*# sourceMappingURL=maps/a.map */', { from }) - expect(root.source?.input.origin(1, 1)).toEqual({ + let root = parse( + '* div {\n color: red;\n }\n/*# sourceMappingURL=maps/a.map */', + { from } + ) + expect(root.source?.input.origin(1, 3, 1, 5)).toEqual({ url: pathToFileURL(join(dir, '..', 'test.scss')).href, file: join(dir, '..', 'test.scss'), - line: 1, - column: 1 + line: 3, + column: 4, + endLine: 3, + endColumn: 7 }) }) diff --git a/test/warning.test.ts b/test/warning.test.ts index 9e7ba4200..9a614479c 100644 --- a/test/warning.test.ts +++ b/test/warning.test.ts @@ -69,11 +69,13 @@ it('gets position from node', () => { expect(warning.column).toBe(1) }) -it('gets position from word', () => { +it('gets range from word', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, word: 'b' }) expect(warning.line).toBe(1) expect(warning.column).toBe(3) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(4) }) it('gets position from index', () => { @@ -82,3 +84,12 @@ it('gets position from index', () => { expect(warning.line).toBe(1) expect(warning.column).toBe(3) }) + +it('gets range from index and endIndex', () => { + let root = parse('a b{}') + let warning = new Warning('text', { node: root.first, index: 2, endIndex: 3 }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(3) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(4) +}) From ff452b9bf221d1436ed3802c19c2e96fc3b0940b Mon Sep 17 00:00:00 2001 From: Bogdan Dolin Date: Wed, 17 Nov 2021 07:10:11 +0300 Subject: [PATCH 2409/3047] Rework GenerateSimpleMap clean annotation regex --- lib/map-generator.js | 2 +- test/map.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index ae5ca52b4..3a67f31fe 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -69,7 +69,7 @@ class MapGenerator { if (this.mapOpts.annotation === false) return if (!this.root && typeof this.css === 'string') { - this.css = this.css.replace(/\/\*#[\S\s]*?\*\/$/gm, '') + this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') } else { let node for (let i = this.root.nodes.length - 1; i >= 0; i--) { diff --git a/test/map.test.ts b/test/map.test.ts index 3a8396fc7..66933922c 100644 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -642,14 +642,14 @@ it('generates correct inline map with empty processor', () => { }) it('generates correct inline map with empty processor and multiple comments', () => { - let css = 'a {}\n/*# sourceMappingURL=a.css.map */\nb {}\n/*# sourceMappingURL=b.css.map */' + let css = 'a {}/*# sourceMappingURL=a.css.map */\n/*# sourceMappingURL=b.css.map */\nb {}\n/*# sourceMappingURL=c.css.map */' let processor = new Processor() let result = postcss(processor).process(css, { map: true }) expect(result.css).toMatch( - /a {}\s\nb {}\s\n\/\*# sourceMappingURL=/ + /a {}\nb {}\n\/\*# sourceMappingURL=/ ) }) From 4764e3fd3cf953b965e1ebfcfedffe0cb75f9a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bogn=C3=A1r=20L=C3=A1szl=C3=B3?= Date: Wed, 17 Nov 2021 10:07:28 +0100 Subject: [PATCH 2410/3047] Adding postcss-resolve-urls plugin --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index cedb2b262..3f7912859 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -291,6 +291,7 @@ for targeting all button elements. * [`postcss-placehold`] makes it easy to drop in placeholder images. * [`postcss-resemble-image`] provides a gradient fallback for an image that loosely resembles the original. +* [`postcss-resolve-urls`] resolves relative urls referenced in `url()`s * [`postcss-responsive-images`] adds stylesheets for making your images responsive. * [`postcss-sprites`] generates CSS sprites from stylesheets. @@ -876,3 +877,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-variable-compress`]: https://github.com/navanshu/postcss-variable-compress [`postcss-unit-processor`]: https://github.com/hex-ci/postcss-unit-processor [`postcss-prefix-hover`]: https://github.com/larsmunkholm/postcss-prefix-hover +[`postcss-resolve-urls`]: https://github.com/bognarlaszlo/postcss-resolve-urls From ad0c0af740284a9c81ae6b0fd68a6f6e13196726 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 17 Nov 2021 11:21:03 +0100 Subject: [PATCH 2411/3047] Update size limit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 98e6bd481..8f3871f3b 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "size-limit": [ { "path": "lib/postcss.js", - "limit": "15 KB" + "limit": "16 KB" } ], "jest": { From e7a22218d741ae7bca1f54fbbb5d53afe16cf66e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 17 Nov 2021 11:21:48 +0100 Subject: [PATCH 2412/3047] Update dependencies --- package.json | 8 +- yarn.lock | 341 ++++++++++++++++++++++++--------------------------- 2 files changed, 165 insertions(+), 184 deletions(-) diff --git a/package.json b/package.json index 8f3871f3b..0558feaeb 100644 --- a/package.json +++ b/package.json @@ -77,15 +77,15 @@ "@size-limit/preset-small-lib": "^6.0.4", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", - "@types/node": "^16.11.6", - "@typescript-eslint/eslint-plugin": "^5.3.1", - "@typescript-eslint/parser": "^5.3.1", + "@types/node": "^16.11.7", + "@typescript-eslint/eslint-plugin": "^5.4.0", + "@typescript-eslint/parser": "^5.4.0", "check-dts": "^0.6.3", "clean-publish": "^3.4.3", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.2.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.2", + "eslint-plugin-import": "^2.25.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^5.1.1", diff --git a/yarn.lock b/yarn.lock index f9b11ac69..35df1bda5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,9 +10,9 @@ "@babel/highlight" "^7.16.0" "@babel/compat-data@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" - integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5": version "7.16.0" @@ -45,13 +45,13 @@ source-map "^0.5.0" "@babel/helper-compilation-targets@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" - integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" + integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== dependencies: "@babel/compat-data" "^7.16.0" "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" + browserslist "^4.17.5" semver "^6.3.0" "@babel/helper-function-name@^7.16.0": @@ -152,12 +152,12 @@ integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== "@babel/helpers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.0.tgz#875519c979c232f41adfbd43a3b0398c2e388183" - integrity sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" + integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== dependencies: "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" + "@babel/traverse" "^7.16.3" "@babel/types" "^7.16.0" "@babel/highlight@^7.16.0": @@ -169,10 +169,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.7.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" - integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -274,17 +274,17 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" - integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== dependencies: "@babel/code-frame" "^7.16.0" "@babel/generator" "^7.16.0" "@babel/helper-function-name" "^7.16.0" "@babel/helper-hoist-variables" "^7.16.0" "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.0" + "@babel/parser" "^7.16.3" "@babel/types" "^7.16.0" debug "^4.1.0" globals "^11.1.0" @@ -782,9 +782,9 @@ "@types/estree" "*" "@types/eslint@*": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.2.tgz#0ff2947cdd305897c52d5372294e8c76f351db68" - integrity sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA== + version "7.29.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" + integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -852,20 +852,20 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^16.11.6": - version "16.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" - integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== +"@types/node@*", "@types/node@^16.11.7": + version "16.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" + integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== "@types/node@^12.20.15": - version "12.20.36" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" - integrity sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA== + version "12.20.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.37.tgz#abb38afa9d6e8a2f627a8cb52290b3c80fbe61ed" + integrity sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA== "@types/prettier@^2.1.5": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" - integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" + integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== "@types/semver@^7.3.6": version "7.3.9" @@ -903,13 +903,13 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3" - integrity sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw== +"@typescript-eslint/eslint-plugin@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.4.0.tgz#05e711a2e7b68342661fde61bccbd1531c19521a" + integrity sha512-9/yPSBlwzsetCsGEn9j24D8vGQgJkOTr4oMLas/w886ZtzKIs1iyoqFrwsX2fqYEeUwsdBpC21gcjRGo57u0eg== dependencies: - "@typescript-eslint/experimental-utils" "5.3.1" - "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/experimental-utils" "5.4.0" + "@typescript-eslint/scope-manager" "5.4.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -917,60 +917,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz#bbd8f9b67b4d5fdcb9d2f90297d8fcda22561e05" - integrity sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w== +"@typescript-eslint/experimental-utils@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.4.0.tgz#238a7418d2da3b24874ba35385eb21cc61d2a65e" + integrity sha512-Nz2JDIQUdmIGd6p33A+naQmwfkU5KVTLb/5lTk+tLVTDacZKoGQisj8UCxk7onJcrgjIvr8xWqkYI+DbI3TfXg== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.3.1" - "@typescript-eslint/types" "5.3.1" - "@typescript-eslint/typescript-estree" "5.3.1" + "@typescript-eslint/scope-manager" "5.4.0" + "@typescript-eslint/types" "5.4.0" + "@typescript-eslint/typescript-estree" "5.4.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.1.tgz#8ff1977c3d3200c217b3e4628d43ef92f89e5261" - integrity sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw== +"@typescript-eslint/parser@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.4.0.tgz#3aa83ce349d66e39b84151f6d5464928044ca9e3" + integrity sha512-JoB41EmxiYpaEsRwpZEYAJ9XQURPFer8hpkIW9GiaspVLX8oqbqNM8P4EP8HOZg96yaALiLEVWllA2E8vwsIKw== dependencies: - "@typescript-eslint/scope-manager" "5.3.1" - "@typescript-eslint/types" "5.3.1" - "@typescript-eslint/typescript-estree" "5.3.1" + "@typescript-eslint/scope-manager" "5.4.0" + "@typescript-eslint/types" "5.4.0" + "@typescript-eslint/typescript-estree" "5.4.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz#3cfbfbcf5488fb2a9a6fbbe97963ee1e8d419269" - integrity sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg== +"@typescript-eslint/scope-manager@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.4.0.tgz#aaab08415f4a9cf32b870c7750ae8ba4607126a1" + integrity sha512-pRxFjYwoi8R+n+sibjgF9iUiAELU9ihPBtHzocyW8v8D8G8KeQvXTsW7+CBYIyTYsmhtNk50QPGLE3vrvhM5KA== dependencies: - "@typescript-eslint/types" "5.3.1" - "@typescript-eslint/visitor-keys" "5.3.1" + "@typescript-eslint/types" "5.4.0" + "@typescript-eslint/visitor-keys" "5.4.0" -"@typescript-eslint/types@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.1.tgz#afaa715b69ebfcfde3af8b0403bf27527912f9b7" - integrity sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ== +"@typescript-eslint/types@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.4.0.tgz#b1c130f4b381b77bec19696c6e3366f9781ce8f2" + integrity sha512-GjXNpmn+n1LvnttarX+sPD6+S7giO+9LxDIGlRl4wK3a7qMWALOHYuVSZpPTfEIklYjaWuMtfKdeByx0AcaThA== -"@typescript-eslint/typescript-estree@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz#50cc4bfb93dc31bc75e08ae52e29fcb786d606ec" - integrity sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ== +"@typescript-eslint/typescript-estree@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.4.0.tgz#fe524fb308973c68ebeb7428f3b64499a6ba5fc0" + integrity sha512-nhlNoBdhKuwiLMx6GrybPT3SFILm5Gij2YBdPEPFlYNFAXUJWX6QRgvi/lwVoadaQEFsizohs6aFRMqsXI2ewA== dependencies: - "@typescript-eslint/types" "5.3.1" - "@typescript-eslint/visitor-keys" "5.3.1" + "@typescript-eslint/types" "5.4.0" + "@typescript-eslint/visitor-keys" "5.4.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz#c2860ff22939352db4f3806f34b21d8ad00588ba" - integrity sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ== +"@typescript-eslint/visitor-keys@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.4.0.tgz#09bc28efd3621f292fe88c86eef3bf4893364c8c" + integrity sha512-PVbax7MeE7tdLfW5SA0fs8NGVVr+buMPrcj+CWYWPXsZCH8qZ1THufDzbXm1xrZ2b2PA1iENJ0sRq5fuUtvsJg== dependencies: - "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/types" "5.4.0" eslint-visitor-keys "^3.0.0" "@webassemblyjs/ast@1.11.1": @@ -1165,9 +1165,9 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.6.3: - version "8.6.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + version "8.8.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.1.tgz#e73dd88eeb4b10bbcd82bee136e6fbe801664d18" + integrity sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1371,13 +1371,13 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.17.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.6.tgz#c76be33e7786b497f66cad25a73756c8b938985d" - integrity sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw== +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.5: + version "4.18.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" + integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== dependencies: - caniuse-lite "^1.0.30001274" - electron-to-chromium "^1.3.886" + caniuse-lite "^1.0.30001280" + electron-to-chromium "^1.3.896" escalade "^3.1.1" node-releases "^2.0.1" picocolors "^1.0.0" @@ -1425,9 +1425,9 @@ camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + version "6.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" + integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== caniuse-api@^3.0.0: version "3.0.0" @@ -1439,10 +1439,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001274: - version "1.0.30001278" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff" - integrity sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001280: + version "1.0.30001282" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" + integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -1632,11 +1632,6 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -css-color-names@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" - integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== - css-declaration-sorter@^6.0.3: version "6.1.3" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" @@ -1659,9 +1654,9 @@ css-loader@^6.5.0: semver "^7.3.5" css-minimizer-webpack-plugin@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.2.tgz#ca16768c03fd929dee50d751c4ae4ef67cfa067c" - integrity sha512-pJ0DMd590fjvQ4+MrGcrUN+cqT9BAqml0/t3I4HxYLC2K3TfihWf5ZNGHQ411pJv+H5agbnZhtOlrV4hJfk/QQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.3.tgz#3cfa1c8603f98f0b5e70697b61cbc4857fe1987b" + integrity sha512-x+6kzXprepysouo513zKibWCbWTGIvH9OrEsMRRV8EcJ7vYY/zRg0lR8tCzMHMap+lhNPOrYCdDagjRmfnGGxw== dependencies: cssnano "^5.0.6" jest-worker "^27.0.2" @@ -1699,10 +1694,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.6.tgz#1bdb83be6a6b1fee6dc5e9ec2e61286bcadcc7a6" - integrity sha512-X2nDeNGBXc0486oHjT2vSj+TdeyVsxRvJUxaOH50hOM6vSDLkKd0+59YXpSZRInJ4sNtBOykS4KsPfhdrU/35w== +cssnano-preset-default@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz#68c3ad1ec6a810482ec7d06b2d70fc34b6b0d70c" + integrity sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -1713,11 +1708,11 @@ cssnano-preset-default@^5.1.6: postcss-discard-duplicates "^5.0.1" postcss-discard-empty "^5.0.1" postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.3" - postcss-merge-rules "^5.0.2" + postcss-merge-longhand "^5.0.4" + postcss-merge-rules "^5.0.3" postcss-minify-font-values "^5.0.1" postcss-minify-gradients "^5.0.3" - postcss-minify-params "^5.0.1" + postcss-minify-params "^5.0.2" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" postcss-normalize-display-values "^5.0.1" @@ -1726,13 +1721,13 @@ cssnano-preset-default@^5.1.6: postcss-normalize-string "^5.0.1" postcss-normalize-timing-functions "^5.0.1" postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.2" + postcss-normalize-url "^5.0.3" postcss-normalize-whitespace "^5.0.1" postcss-ordered-values "^5.0.2" postcss-reduce-initial "^5.0.1" postcss-reduce-transforms "^5.0.1" postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.1" + postcss-unique-selectors "^5.0.2" cssnano-utils@^2.0.1: version "2.0.1" @@ -1740,11 +1735,11 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.6: - version "5.0.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.10.tgz#92207eb7c9c6dc08d318050726f9fad0adf7220b" - integrity sha512-YfNhVJJ04imffOpbPbXP2zjIoByf0m8E2c/s/HnvSvjXgzXMfgopVjAEGvxYOjkOpWuRQDg/OZFjO7WW94Ri8w== + version "5.0.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.11.tgz#743397a05e04cb87e9df44b7659850adfafc3646" + integrity sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg== dependencies: - cssnano-preset-default "^5.1.6" + cssnano-preset-default "^5.1.7" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -1913,10 +1908,10 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -electron-to-chromium@^1.3.886: - version "1.3.891" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.891.tgz#51d7224e64157656276f152a0b3361708fde1bf9" - integrity sha512-3cpwR82QkIS01CN/dup/4Yr3BiOiRLlZlcAFn/5FbNCunMO9ojqDgEP9JEo1QNLflu3pEnPWve50gHOEKc7r6w== +electron-to-chromium@^1.3.896: + version "1.3.900" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5" + integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ== emittery@^0.8.1: version "0.8.1" @@ -2033,7 +2028,7 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-module-utils@^2.7.0: +eslint-module-utils@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== @@ -2050,19 +2045,19 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.25.2: - version "2.25.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz#b3b9160efddb702fc1636659e71ba1d10adbe9e9" - integrity sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g== +eslint-plugin-import@^2.25.3: + version "2.25.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" + integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.0" + eslint-module-utils "^2.7.1" has "^1.0.3" - is-core-module "^2.7.0" + is-core-module "^2.8.0" is-glob "^4.0.3" minimatch "^3.0.4" object.values "^1.1.5" @@ -2340,9 +2335,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + version "3.2.4" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" + integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== form-data@^3.0.0: version "3.0.1" @@ -2673,7 +2668,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0, is-core-module@^2.7.0: +is-core-module@^2.2.0, is-core-module@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== @@ -3494,17 +3489,17 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.50.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== mime-types@^2.1.12, mime-types@^2.1.27: - version "2.1.33" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== dependencies: - mime-db "1.50.0" + mime-db "1.51.0" mimic-fn@^2.1.0: version "2.1.0" @@ -3846,25 +3841,23 @@ postcss-discard-overridden@^5.0.1: resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== -postcss-merge-longhand@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.3.tgz#42194a5ffbaa5513edbf606ef79c44958564658b" - integrity sha512-kmB+1TjMTj/bPw6MCDUiqSA5e/x4fvLffiAdthra3a0m2/IjTrWsTmD3FdSskzUjEwkj5ZHBDEbv5dOcqD7CMQ== +postcss-merge-longhand@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" + integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== dependencies: - css-color-names "^1.0.1" postcss-value-parser "^4.1.0" stylehacks "^5.0.1" -postcss-merge-rules@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" - integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== +postcss-merge-rules@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" + integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" cssnano-utils "^2.0.1" postcss-selector-parser "^6.0.5" - vendors "^1.0.3" postcss-minify-font-values@^5.0.1: version "5.0.1" @@ -3882,16 +3875,15 @@ postcss-minify-gradients@^5.0.3: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-minify-params@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" - integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== +postcss-minify-params@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" + integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== dependencies: alphanum-sort "^1.0.2" - browserslist "^4.16.0" + browserslist "^4.16.6" cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" - uniqs "^2.0.0" postcss-minify-selectors@^5.1.0: version "5.1.0" @@ -3980,10 +3972,10 @@ postcss-normalize-unicode@^5.0.1: browserslist "^4.16.0" postcss-value-parser "^4.1.0" -postcss-normalize-url@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763" - integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== +postcss-normalize-url@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" + integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== dependencies: is-absolute-url "^3.0.3" normalize-url "^6.0.1" @@ -4044,14 +4036,13 @@ postcss-svgo@^5.0.3: postcss-value-parser "^4.1.0" svgo "^2.7.0" -postcss-unique-selectors@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" - integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== +postcss-unique-selectors@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" + integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== dependencies: alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" - uniqs "^2.0.0" postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" @@ -4526,9 +4517,9 @@ terser-webpack-plugin@^5.1.3: terser "^5.7.2" terser@^5.7.2: - version "5.9.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" - integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -4678,11 +4669,6 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unist-util-stringify-position@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" @@ -4726,11 +4712,6 @@ v8-to-istanbul@^8.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" -vendors@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - vfile-location@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95" @@ -4796,15 +4777,15 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-sources@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" - integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== +webpack-sources@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" + integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== webpack@^5, webpack@^5.61.0: - version "5.62.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.62.1.tgz#06f09b56a7b1bb13ed5137ad4b118358a90c9505" - integrity sha512-jNLtnWChS2CMZ7vqWtztv0G6fYB5hz11Zsadp5tE7e4/66zVDj7/KUeQZOsOl8Hz5KrLJH1h2eIDl6AnlyE12Q== + version "5.64.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.64.1.tgz#fd59840c16f04fe315f2b2598a85026f12dfa1bb" + integrity sha512-b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -4829,7 +4810,7 @@ webpack@^5, webpack@^5.61.0: tapable "^2.1.1" terser-webpack-plugin "^5.1.3" watchpack "^2.2.0" - webpack-sources "^3.2.0" + webpack-sources "^3.2.2" whatwg-encoding@^1.0.5: version "1.0.5" From 3d0966da1b32ae2bda6506c7d521a70454cb3a2d Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Wed, 17 Nov 2021 23:55:50 +0300 Subject: [PATCH 2413/3047] fix CI test run for windows --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 38c885904..27fe48eea 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,6 +60,6 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests - run: yarn unit:win + run: yarn uvu -r tsm test ^.*test.([tj]s) env: FORCE_COLOR: 2 From 8aa80d32a249190040630920a6995ef6220d1c17 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 18 Nov 2021 00:09:22 +0100 Subject: [PATCH 2414/3047] Reduce node_modules by updating Size Limit --- package.json | 8 +- yarn.lock | 1308 ++++++-------------------------------------------- 2 files changed, 157 insertions(+), 1159 deletions(-) diff --git a/package.json b/package.json index 0558feaeb..374b9af47 100644 --- a/package.json +++ b/package.json @@ -74,13 +74,13 @@ }, "devDependencies": { "@logux/eslint-config": "^46.1.0", - "@size-limit/preset-small-lib": "^6.0.4", + "@size-limit/preset-small-lib": "^7.0.0", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.2", "@types/node": "^16.11.7", "@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/parser": "^5.4.0", - "check-dts": "^0.6.3", + "check-dts": "^0.6.4", "clean-publish": "^3.4.3", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.2.0", @@ -94,10 +94,10 @@ "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", - "size-limit": "^6.0.4", + "size-limit": "^7.0.0", "strip-ansi": "^6.0.0", "ts-jest": "^27.0.7", - "typescript": "^4.4.4" + "typescript": "^4.5.2" }, "simple-git-hooks": { "pre-commit": "./test/version.js" diff --git a/yarn.lock b/yarn.lock index 35df1bda5..392aa525b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -302,11 +302,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@discoveryjs/json-ext@^0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3" - integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA== - "@eslint/eslintrc@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" @@ -561,185 +556,34 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@size-limit/file@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-6.0.4.tgz#64681f0e0ec93d69b1d99f0a40bbbcdd2fb7def6" - integrity sha512-SoGUUNEHsZJTDlw6znuMbR0z6apr/NmeEXSFT6iB6gUPyOHIdFtFJpvWeS1vijC7OFQhWHskedB6nBJ6L+bd+A== +"@size-limit/esbuild@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@size-limit/esbuild/-/esbuild-7.0.0.tgz#dfc015b9c9d311d11cf7ae83c9244559950d9d98" + integrity sha512-9cXzdElr7oDEGeBxrxNP54lNXFjAQ+JjFpWjK5wgSdEjX24xheJ8Ehf4Dep8nXk7vhhKPVBBAOzgW33dTwPocw== dependencies: - semver "7.3.5" + esbuild "^0.13.14" + nanoid "^3.1.30" -"@size-limit/preset-small-lib@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-6.0.4.tgz#707863bee82c7412b2e7201c301db1de793e7158" - integrity sha512-eMay+Hv/ufJyCUX/pFXa30AiYsjrT/Tjw1G7h7CCNKulbEjAY2rAiEsCQkm+rCNnYoPUgOsWhMYy908J23Qb6Q== +"@size-limit/file@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-7.0.0.tgz#0bfbdfad784788abf51eab2b0ad697eaf1e43af2" + integrity sha512-0vYgjlKMiF3OoKJG+JoVgCoe2O6Zr3Jv/ZAiJoi4k5Kn7+5ZRL6V/8scUzJ4ZqFeYJ3TC5iO0dx4Zi/F/29NWw== dependencies: - "@size-limit/file" "6.0.4" - "@size-limit/webpack" "6.0.4" + semver "7.3.5" -"@size-limit/webpack@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-6.0.4.tgz#2e23b6a3efb11cb081fb65394d05f218c7051270" - integrity sha512-51rvLztZcvT+Qc5g8FusyC8ZDcpVg7+O1a4hfO2K2XMZV8CFguRN//xMwQXv5q6I1ImUQeyURyiCXIQD24qJYQ== +"@size-limit/preset-small-lib@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-7.0.0.tgz#5e9b5404060d9e8818a4ead00ba1bed6c0524df4" + integrity sha512-rdw4ljDMEUVTY7saheOBkvpWiYKzTeZgkjOcJMxvMctjFQjxuhRTXHkpEq/1/l1CSzoX6QXKW4RQgw1X4HQUEg== dependencies: - "@statoscope/webpack-plugin" "^5.17.0" - css-loader "^6.5.0" - css-minimizer-webpack-plugin "^3.0.2" - escape-string-regexp "^4.0.0" - mkdirp "^1.0.4" - nanoid "^3.1.30" - style-loader "^3.3.1" - webpack "^5.61.0" - -"@statoscope/extensions@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/extensions/-/extensions-5.14.1.tgz#b7c32b39de447da76b9fa2daada61b2f699754e6" - integrity sha512-5O31566+bOkkdYFH81mGGBTh0YcU0zoYurTrsK5uZfpNY87ZCPpptrszX8npTRHNsxbjBBNt7vAwImJyYdhzLw== - -"@statoscope/helpers@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/helpers/-/helpers-5.14.1.tgz#80e733d82585f6fc4636b26a9b4a952272ba71c8" - integrity sha512-Gl7NB06cOxxh86tFk75yQmcOCQ3b8i4euYlyxvdz4tWkzeZw8g5VLPH9g3X4uQbPM4rqkae/KmgtRo5Ey1km8w== - dependencies: - "@types/archy" "^0.0.32" - "@types/semver" "^7.3.6" - archy "~1.0.0" - jora "^1.0.0-beta.5" - semver "^7.3.5" - -"@statoscope/report-writer@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/report-writer/-/report-writer-5.14.1.tgz#ae5f7151ef6348338707b28abf6d2137c368ed40" - integrity sha512-N7pjpiKspDQ6K0B9HNBs8u3bhueiYmJEqAazSw/U3v8hThcP31i/FLCH90bu/8Sj436xAE1KATtGzJnsN5mbQA== - dependencies: - "@discoveryjs/json-ext" "^0.5.5" - -"@statoscope/stats-extension-compressed@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-compressed/-/stats-extension-compressed-5.14.1.tgz#456927e0e2942b99fe498466c6db32050af41005" - integrity sha512-FnfmL18OAHWg1l95tBKeMGHmeNbEOdnHlOE1c9KT3TWc5kt4q8ntpChL4AAZJSgn7uBy5WKMgjZSr5aUGebHGQ== - dependencies: - "@statoscope/helpers" "5.14.1" - gzip-size "^6.0.0" - -"@statoscope/stats-extension-custom-reports@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-custom-reports/-/stats-extension-custom-reports-5.14.1.tgz#fd11a9c20589e492f3b8804fc1cece39cf73b8a8" - integrity sha512-+t7gq2zZu8frwJF651+fq1BOZPMdngEwtNhvdRCSWyBE2uYvotVnngQE+di1/Idaosshnf4GdwX82bSMIlF1mQ== - dependencies: - "@statoscope/extensions" "5.14.1" - "@statoscope/helpers" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/types" "5.14.1" - -"@statoscope/stats-extension-package-info@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-package-info/-/stats-extension-package-info-5.14.1.tgz#92078819a6c3c3250647d477d1f8b1d7ec153b79" - integrity sha512-TPKq6qJ7hxyQdPPpcbPsagf9MjbmPRLLo0F2ceafJ11ubP0t8LQZ+m0Orqp5ay3wuzvBy406w/njPwHQuEBHZw== - dependencies: - "@statoscope/helpers" "5.14.1" - -"@statoscope/stats-extension-stats-validation-result@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-stats-validation-result/-/stats-extension-stats-validation-result-5.14.1.tgz#d1dd76f0e735bb66d9f63a99b9be3a51dbb0e3fb" - integrity sha512-/TiohT+iO5Idipdd3JmzZ/Utaq3nXeKfZKnvXahkls5x6rpRQgbXs2IrDRtf7rJg4B/g2GuZUMsu4m76rHdkwA== - dependencies: - "@statoscope/extensions" "5.14.1" - "@statoscope/helpers" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/types" "5.14.1" - -"@statoscope/stats@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats/-/stats-5.14.1.tgz#728656629bc06aa4bf5634398662ac05287793d5" - integrity sha512-Kz7kCKuT6DXaqAPfyTwp27xHMDUna9o6UlRSQXXBZ8Yyk7eYYvTNw+5ffRyqivL9IOzD7FQYDQ6VUBHh0UfyDw== - -"@statoscope/types@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/types/-/types-5.14.1.tgz#4cc3da44f6a63d4318c50a75efe89f97d512ac8b" - integrity sha512-vIo7aq2E71AC3y3mdnZqA5aupYUaEIHuPD2gUG0bAA8zTXH7YICk7nRkuxx7xnCBhTZTXAgvtF8hgQ35K4N8oQ== - dependencies: - "@statoscope/stats" "5.14.1" - -"@statoscope/webpack-model@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-model/-/webpack-model-5.18.0.tgz#02b13e8d2929875752887417dd9c4f406e797568" - integrity sha512-pvS/BiKUpzSGfpEGIzwORYyo/YDsYWZYLmKPGi/qlHnBQBQ3Diqa4N+6/dPGBFmuBj49Z2GK/3X1etniANhI0w== - dependencies: - "@statoscope/extensions" "5.14.1" - "@statoscope/helpers" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/stats-extension-custom-reports" "5.14.1" - "@statoscope/stats-extension-package-info" "5.14.1" - "@statoscope/stats-extension-stats-validation-result" "5.14.1" - "@statoscope/types" "5.14.1" - "@types/md5" "^2.3.0" - "@types/webpack" "^5.0.0" - ajv "^8.6.3" - md5 "^2.3.0" - -"@statoscope/webpack-plugin@^5.17.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-plugin/-/webpack-plugin-5.18.0.tgz#d268d967354d6fabacb746d53ddeca8e78cde8f1" - integrity sha512-WB7E6EwCCibhG5VUPuSlXxJ2oArzIM2SdpkF2NWeahFuPEJEXZtCuW9NFUdQuwLp486COy09oN9Dlw/Fe288Tw== - dependencies: - "@discoveryjs/json-ext" "^0.5.5" - "@statoscope/report-writer" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/stats-extension-custom-reports" "5.14.1" - "@statoscope/types" "5.14.1" - "@statoscope/webpack-model" "5.18.0" - "@statoscope/webpack-stats-extension-compressed" "5.18.0" - "@statoscope/webpack-stats-extension-package-info" "5.18.0" - "@statoscope/webpack-ui" "5.18.0" - "@types/node" "^12.20.15" - "@types/webpack" "^5.0.0" - open "^8.2.1" - -"@statoscope/webpack-stats-extension-compressed@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.18.0.tgz#9173802f492cfeb53c406bd098135521618a9b91" - integrity sha512-3pD0XqOr6McVHAt6EEtymygTEUhEIHGy/kC06iTO6/r2nKCp4AFto7SKlorMuc2nZICpgiz7Dy/THNzVwrdKOA== - dependencies: - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/webpack-model" "5.18.0" - "@types/webpack" "^5.0.0" - -"@statoscope/webpack-stats-extension-package-info@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.18.0.tgz#0c418bdd19ef3ec1f46b2d19a98c86f6a17cf993" - integrity sha512-9u6NFdFZ5EkiLoOihAITS2/qNuL9e50vIfqQey9osxMevsA4fHk/xDxK66a3PTT45JXPdGnZlGZ77+KyghJrxw== - dependencies: - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-package-info" "5.14.1" - "@statoscope/webpack-model" "5.18.0" - "@types/webpack" "^5.0.0" - -"@statoscope/webpack-ui@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-ui/-/webpack-ui-5.18.0.tgz#0afb5f074d2bdaffff78a80381765b6167e22ba9" - integrity sha512-9UrAyJtcUSIfW2awDDxQr4Z06ktmBBtXkCHyecE6HQt+O5OJe6hr0pQAlNFw/rDqDhpAexpJGpnsWJZQSLeIqQ== - dependencies: - "@statoscope/types" "5.14.1" - highcharts "^9.2.2" + "@size-limit/esbuild" "7.0.0" + "@size-limit/file" "7.0.0" "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/archy@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/archy/-/archy-0.0.32.tgz#8b572741dad9172dfbf289397af1bb41296d3e40" - integrity sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg== - "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.16" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" @@ -773,27 +617,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/eslint-scope@^3.7.0": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" - integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" - integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^0.0.50": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== - "@types/fs-extra@^9.0.13": version "9.0.13" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" @@ -835,7 +658,7 @@ jest-diff "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -845,33 +668,16 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/md5@^2.3.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.3.1.tgz#010bcf3bb50a2cff3a574cb1c0b4051a9c67d6bc" - integrity sha512-OK3oe+ALIoPSo262lnhAYwpqFNXbiwH2a+0+Z5YBnkQEwWD8fk5+PIeRhYA48PzvX9I4SGNpWy+9bLj8qz92RQ== - dependencies: - "@types/node" "*" - "@types/node@*", "@types/node@^16.11.7": version "16.11.7" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== -"@types/node@^12.20.15": - version "12.20.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.37.tgz#abb38afa9d6e8a2f627a8cb52290b3c80fbe61ed" - integrity sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA== - "@types/prettier@^2.1.5": version "2.4.2" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== -"@types/semver@^7.3.6": - version "7.3.9" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" - integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -882,15 +688,6 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@types/webpack@^5.0.0": - version "5.28.0" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" - integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== - dependencies: - "@types/node" "*" - tapable "^2.2.0" - webpack "^5" - "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -973,137 +770,6 @@ "@typescript-eslint/types" "5.4.0" eslint-visitor-keys "^3.0.0" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" @@ -1117,11 +783,6 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1137,7 +798,7 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0: +acorn@^8.2.4, acorn@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== @@ -1149,12 +810,7 @@ agent-base@6: dependencies: debug "4" -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1164,21 +820,6 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.6.3: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.1.tgz#e73dd88eeb4b10bbcd82bee136e6fbe801664d18" - integrity sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -1228,11 +869,6 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -archy@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1346,11 +982,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1371,7 +1002,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.5: +browserslist@^4.17.5: version "4.18.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== @@ -1429,17 +1060,7 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001280: +caniuse-lite@^1.0.30001280: version "1.0.30001282" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== @@ -1466,15 +1087,10 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -check-dts@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.3.tgz#c06f625c97131ce37c875998b2514ef888b265ea" - integrity sha512-whRqACQPsdv+DP7shkdK3u6boMzDagz+VqdIwAcfYQFd8NDQfMhPnsLMK/sAWm2QK0S1FKJQZZHN5zH/CRW/FA== +check-dts@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.4.tgz#51cdbdc1abdbddf77f4e0f2ad9ccbe3c50984700" + integrity sha512-bxF8yPtThneecmBr+f4Q1EcDGFhiD2GjOnHscmDDH1vBDaGRTLKmHHjNiM6/9wbknRxiNoEPjr/mvaMtOPCz2g== dependencies: fast-glob "^3.2.7" nanospinner "^0.4.0" @@ -1496,11 +1112,6 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - ci-info@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" @@ -1577,11 +1188,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.9.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" - integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1589,16 +1195,6 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1627,130 +1223,6 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -css-declaration-sorter@^6.0.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" - integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== - dependencies: - timsort "^0.3.0" - -css-loader@^6.5.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" - integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ== - dependencies: - icss-utils "^5.1.0" - postcss "^8.2.15" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - semver "^7.3.5" - -css-minimizer-webpack-plugin@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.3.tgz#3cfa1c8603f98f0b5e70697b61cbc4857fe1987b" - integrity sha512-x+6kzXprepysouo513zKibWCbWTGIvH9OrEsMRRV8EcJ7vYY/zRg0lR8tCzMHMap+lhNPOrYCdDagjRmfnGGxw== - dependencies: - cssnano "^5.0.6" - jest-worker "^27.0.2" - postcss "^8.3.5" - schema-utils "^3.1.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz#68c3ad1ec6a810482ec7d06b2d70fc34b6b0d70c" - integrity sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^2.0.1" - postcss-calc "^8.0.0" - postcss-colormin "^5.2.1" - postcss-convert-values "^5.0.2" - postcss-discard-comments "^5.0.1" - postcss-discard-duplicates "^5.0.1" - postcss-discard-empty "^5.0.1" - postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.4" - postcss-merge-rules "^5.0.3" - postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.3" - postcss-minify-params "^5.0.2" - postcss-minify-selectors "^5.1.0" - postcss-normalize-charset "^5.0.1" - postcss-normalize-display-values "^5.0.1" - postcss-normalize-positions "^5.0.1" - postcss-normalize-repeat-style "^5.0.1" - postcss-normalize-string "^5.0.1" - postcss-normalize-timing-functions "^5.0.1" - postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.3" - postcss-normalize-whitespace "^5.0.1" - postcss-ordered-values "^5.0.2" - postcss-reduce-initial "^5.0.1" - postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.2" - -cssnano-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" - integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== - -cssnano@^5.0.6: - version "5.0.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.11.tgz#743397a05e04cb87e9df44b7659850adfafc3646" - integrity sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg== - dependencies: - cssnano-preset-default "^5.1.7" - is-resolvable "^1.1.0" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -1818,11 +1290,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1866,20 +1333,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -1887,31 +1340,10 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.6.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - electron-to-chromium@^1.3.896: - version "1.3.900" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5" - integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ== + version "1.3.901" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.901.tgz#ce2c3157d61bce9f42f1e83225c17358ae9f4918" + integrity sha512-ToJdV2vzwT2jeAsw8zIggTFllJ4Kxvwghk39AhJEHHlIxor10wsFI3wo69p8nFc0s/ATWBqugPv/k3nW4Y9Mww== emittery@^0.8.1: version "0.8.1" @@ -1923,14 +1355,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -1938,11 +1362,6 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" @@ -1969,11 +1388,6 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -1983,6 +1397,114 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild-android-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.14.tgz#c85083ece26be3d67e6c720e088968a98409e023" + integrity sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA== + +esbuild-darwin-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.14.tgz#8e4e237ad847cc54a1d3a5caee26a746b9f0b81f" + integrity sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ== + +esbuild-darwin-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.14.tgz#b3b5ebd40b2cb06ee0f6fb342dd4bdcca54ad273" + integrity sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg== + +esbuild-freebsd-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.14.tgz#175ecb2fa8141428cf70ea2d5f4c27534bad53e0" + integrity sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw== + +esbuild-freebsd-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.14.tgz#a7d64e41d1fa581f8db7775e5200f18e67d70c4d" + integrity sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q== + +esbuild-linux-32@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.14.tgz#14bdd4f6b6cfd35c65c835894651ba335c2117da" + integrity sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA== + +esbuild-linux-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.14.tgz#7fd56851b2982fdd0cd8447ee9858c2c5711708a" + integrity sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ== + +esbuild-linux-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.14.tgz#a55634d70679ba509adeafd68eebb9fd1ec5af6c" + integrity sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ== + +esbuild-linux-arm@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.14.tgz#bb96a99677e608b31ff61f37564326d38e846ca2" + integrity sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg== + +esbuild-linux-mips64le@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.14.tgz#6a55362a8fd1e593dea2ecc41877beed8b8184b9" + integrity sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ== + +esbuild-linux-ppc64le@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.14.tgz#9e0048587ece0a7f184ab147f20d077098045e7f" + integrity sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw== + +esbuild-netbsd-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.14.tgz#dcab16a4bbcfa16e2e8535dadc5f64fdc891c63b" + integrity sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q== + +esbuild-openbsd-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.14.tgz#3c7453b155ebb68dc34d5aec3bd6505337bdda08" + integrity sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA== + +esbuild-sunos-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.14.tgz#85addf5fef6b5db154a955d4f2e88953359d75ce" + integrity sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w== + +esbuild-windows-32@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.14.tgz#f77f98f30a5c636c44db2428ecdf9bcbbaedb1a7" + integrity sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg== + +esbuild-windows-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.14.tgz#bc778674c40d65150d12385e0f23eb3a0badbd0d" + integrity sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw== + +esbuild-windows-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.14.tgz#91a8dad35ab2c4dd27cd83860742955b25a354d7" + integrity sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A== + +esbuild@^0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.14.tgz#98a3f7f42809abdc2b57c84565d0f713382dc1a5" + integrity sha512-xu4D+1ji9x53ocuomcY+KOrwAnWzhBu/wTEjpdgZ8I1c8i5vboYIeigMdzgY1UowYBKa2vZgVgUB32bu7gkxeg== + optionalDependencies: + esbuild-android-arm64 "0.13.14" + esbuild-darwin-64 "0.13.14" + esbuild-darwin-arm64 "0.13.14" + esbuild-freebsd-64 "0.13.14" + esbuild-freebsd-arm64 "0.13.14" + esbuild-linux-32 "0.13.14" + esbuild-linux-64 "0.13.14" + esbuild-linux-arm "0.13.14" + esbuild-linux-arm64 "0.13.14" + esbuild-linux-mips64le "0.13.14" + esbuild-linux-ppc64le "0.13.14" + esbuild-netbsd-64 "0.13.14" + esbuild-openbsd-64 "0.13.14" + esbuild-sunos-64 "0.13.14" + esbuild-windows-32 "0.13.14" + esbuild-windows-64 "0.13.14" + esbuild-windows-arm64 "0.13.14" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -2088,7 +1610,7 @@ eslint-plugin-promise@^5.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz#9674d11c056d1bafac38e4a3a9060be740988d90" integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA== -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2220,11 +1742,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -2428,11 +1945,6 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -2469,18 +1981,11 @@ globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -2515,11 +2020,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -highcharts@^9.2.2: - version "9.3.1" - resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.3.1.tgz#dbeb39c2e5b298b02ccc459103f5f1c8daea1264" - integrity sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw== - hosted-git-info@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" @@ -2568,11 +2068,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -2626,11 +2121,6 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -2658,11 +2148,6 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" @@ -2682,11 +2167,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -2739,11 +2219,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-shared-array-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" @@ -2780,13 +2255,6 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.0" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3236,7 +2704,7 @@ jest-watcher@^27.3.1: jest-util "^27.3.1" string-length "^4.0.1" -jest-worker@^27.0.2, jest-worker@^27.0.6, jest-worker@^27.3.1: +jest-worker@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== @@ -3254,11 +2722,6 @@ jest@^27.3.1: import-local "^3.0.2" jest-cli "^27.3.1" -jora@^1.0.0-beta.5: - version "1.0.0-beta.5" - resolved "https://registry.yarnpkg.com/jora/-/jora-1.0.0-beta.5.tgz#55b2c4d86078af1bc74da401e88b67be42b0bddd" - integrity sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3317,21 +2780,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -3391,11 +2844,6 @@ lilconfig@^2.0.3: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== -loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3411,7 +2859,7 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -3421,11 +2869,6 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -3457,20 +2900,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3494,7 +2923,7 @@ mime-db@1.51.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== -mime-types@^2.1.12, mime-types@^2.1.27: +mime-types@^2.1.12: version "2.1.34" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== @@ -3560,11 +2989,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -3585,11 +3009,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -3597,13 +3016,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nth-check@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -3652,15 +3064,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^8.2.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -3796,206 +3199,6 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -postcss-calc@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" - integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== - dependencies: - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" - integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.1.0" - -postcss-convert-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" - integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-discard-comments@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" - integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== - -postcss-discard-duplicates@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" - integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== - -postcss-discard-empty@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" - integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== - -postcss-discard-overridden@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" - integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== - -postcss-merge-longhand@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" - integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== - dependencies: - postcss-value-parser "^4.1.0" - stylehacks "^5.0.1" - -postcss-merge-rules@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" - integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^2.0.1" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" - integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-minify-gradients@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" - integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== - dependencies: - colord "^2.9.1" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-minify-params@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" - integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== - dependencies: - alphanum-sort "^1.0.2" - browserslist "^4.16.6" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-minify-selectors@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" - integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== - dependencies: - alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-normalize-charset@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" - integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== - -postcss-normalize-display-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" - integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-positions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" - integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-repeat-style@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" - integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-string@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" - integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-timing-functions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" - integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-unicode@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" - integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== - dependencies: - browserslist "^4.16.0" - postcss-value-parser "^4.1.0" - -postcss-normalize-url@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" - integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== - dependencies: - is-absolute-url "^3.0.3" - normalize-url "^6.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-whitespace@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" - integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-ordered-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" - integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - postcss-parser-tests@^8.3.7: version "8.3.7" resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.7.tgz#d74151da5a89308ad4e77eb21acff2166df5c6e5" @@ -4004,60 +3207,6 @@ postcss-parser-tests@^8.3.7: picocolors "^1.0.0" spinnies "^0.5.1" -postcss-reduce-initial@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" - integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== - dependencies: - browserslist "^4.16.0" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" - integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" - integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== - dependencies: - postcss-value-parser "^4.1.0" - svgo "^2.7.0" - -postcss-unique-selectors@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" - integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== - dependencies: - alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^8.2.15, postcss@^8.3.5: - version "8.3.11" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" - integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== - dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^0.6.2" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4106,13 +3255,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" @@ -4135,11 +3277,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - requireindex@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -4202,11 +3339,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -4224,15 +3356,6 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - semver@7.3.5, semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" @@ -4245,13 +3368,6 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -4288,16 +3404,17 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -size-limit@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-6.0.4.tgz#f3345206d8c25485d0d31ea41622761a3a1aad93" - integrity sha512-zo/9FrXzetvZGFJnd1LC4mR9GvirElALlerMY3EOwEGdW7Lwgl2WT0hTRC2559ZR2PGfRpnXEgAFkayGAJOebg== +size-limit@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-7.0.0.tgz#813e26e3496d3403f12f25fdf1233421c038a3e5" + integrity sha512-tyeM1x2AYOyPxrg8NXG6zJokFY8lOlxQLi3GQpIpSqV3kHG3xlzutsPc1xZLMTvnaZeEvnD0ZgoNRfBz0T7How== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" globby "^11.0.4" lilconfig "^2.0.3" + mkdirp "^1.0.4" nanospinner "^0.4.0" picocolors "^1.0.0" @@ -4306,17 +3423,12 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - source-map-js@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== -source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.6: version "0.5.20" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== @@ -4334,7 +3446,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: +source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -4353,11 +3465,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" @@ -4432,19 +3539,6 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" - integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== - -stylehacks@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" - integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== - dependencies: - browserslist "^4.16.0" - postcss-selector-parser "^6.0.4" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4474,29 +3568,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -4505,26 +3581,6 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.1.3: - version "5.2.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" - integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== - dependencies: - jest-worker "^27.0.6" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.2" - -terser@^5.7.2: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.20" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -4544,11 +3600,6 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -4654,10 +3705,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +typescript@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" + integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== unbox-primitive@^1.0.1: version "1.0.1" @@ -4693,11 +3744,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -4759,14 +3805,6 @@ walker@^1.0.7: dependencies: makeerror "1.0.12" -watchpack@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" - integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -4777,41 +3815,6 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-sources@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" - integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== - -webpack@^5, webpack@^5.61.0: - version "5.64.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.64.1.tgz#fd59840c16f04fe315f2b2598a85026f12dfa1bb" - integrity sha512-b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw== - dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.50" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.3" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.2.0" - webpack-sources "^3.2.2" - whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -4905,11 +3908,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - yargs-parser@20.x, yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" From 311565430bffb99c601bfa2d5621bd63d094c671 Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Wed, 17 Nov 2021 16:37:23 -0800 Subject: [PATCH 2415/3047] fix: use correct positions for ranges --- lib/node.js | 5 ++--- lib/warning.d.ts | 8 ++++++++ lib/warning.js | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/node.js b/lib/node.js index c6a5f2323..7df5a384f 100644 --- a/lib/node.js +++ b/lib/node.js @@ -56,7 +56,7 @@ class Node { error(message, opts = {}) { if (this.source) { - if (opts.word || opts.endIndex) { + if (opts.word || opts.endIndex || opts.inferRange) { let { start, end } = this.rangeBy(opts) return this.source.input.error( message, @@ -273,8 +273,7 @@ class Node { } } - let { start } = this.source - let end = start + let { start, end } = this.source if (opts.index) { start = this.positionInside(opts.index) } diff --git a/lib/warning.d.ts b/lib/warning.d.ts index 0e7768227..5c2b62491 100644 --- a/lib/warning.d.ts +++ b/lib/warning.d.ts @@ -21,6 +21,14 @@ export interface WarningOptions { */ endIndex?: number + /** + * If true, will try to infer a range for the warning using the node's + * start and end positions. If false or undefined, the warning will + * only use a range if either `word` or both `index` and `endIndex` + * are provided. Otherwise, a single position will be used. + */ + inferRange?: boolean + /** * Name of the plugin that created this warning. `Result#warn` fills * this property automatically. diff --git a/lib/warning.js b/lib/warning.js index 23b7633f1..43d2430a1 100644 --- a/lib/warning.js +++ b/lib/warning.js @@ -9,7 +9,8 @@ class Warning { if ( opts.word || typeof opts.endLine === 'number' || - typeof opts.endIndex === 'number' + typeof opts.endIndex === 'number' || + opts.inferRange ) { let range = opts.node.rangeBy(opts) this.line = range.start.line From b8bf61a62780b9d0f88744d0f4ad456cd70dc074 Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Thu, 18 Nov 2021 16:56:31 -0800 Subject: [PATCH 2416/3047] refactor: make suggested changes --- lib/node.d.ts | 4 +-- lib/node.js | 64 +++++++++++++++++++++++++++++--------------- lib/warning.d.ts | 13 +++++---- lib/warning.js | 27 ++++--------------- test/warning.test.ts | 63 +++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 119 insertions(+), 52 deletions(-) diff --git a/lib/node.d.ts b/lib/node.d.ts index c14d61b45..ded2dc0c8 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -56,11 +56,11 @@ export interface Source { */ input: Input /** - * The starting position of the node’s source. + * The inclusive starting position of the node’s source. */ start?: Position /** - * The ending position of the node's source. + * The inclusive ending position of the node's source. */ end?: Position } diff --git a/lib/node.js b/lib/node.js index 7df5a384f..1e00afc01 100644 --- a/lib/node.js +++ b/lib/node.js @@ -56,18 +56,13 @@ class Node { error(message, opts = {}) { if (this.source) { - if (opts.word || opts.endIndex || opts.inferRange) { - let { start, end } = this.rangeBy(opts) - return this.source.input.error( - message, - { line: start.line, column: start.column }, - { line: end.line, column: end.column }, - opts - ) - } - - let start = this.positionBy(opts) - return this.source.input.error(message, start.line, start.column, opts) + let { start, end } = this.rangeBy(opts) + return this.source.input.error( + message, + { line: start.line, column: start.column }, + { line: end.line, column: end.column }, + opts + ) } return new CssSyntaxError(message) } @@ -263,23 +258,50 @@ class Node { } rangeBy(opts) { + let start = { + line: this.source.start.line, + column: this.source.start.column + } + let end = { + line: this.source.end.line, + column: this.source.end.column + 1 + } + if (opts.word) { let index = this.toString().indexOf(opts.word) if (index !== -1) { - return { - start: this.positionInside(index), - end: this.positionInside(index + opts.word.length) + start = this.positionInside(index) + end = this.positionInside(index + opts.word.length) + } + } else { + if (opts.start) { + start = { + line: opts.start.line, + column: opts.start.column } + } else if (opts.index) { + start = this.positionInside(opts.index) } - } - let { start, end } = this.source - if (opts.index) { - start = this.positionInside(opts.index) + if (opts.end) { + end = { + line: opts.end.line, + column: opts.end.column + } + } else if (opts.endIndex) { + end = this.positionInside(opts.endIndex) + } else if (opts.index) { + end = this.positionInside(opts.index + 1) + } } - if (opts.endIndex) { - end = this.positionInside(opts.endIndex) + + if ( + end.line < start.line || + (end.line === start.line && end.column <= start.column) + ) { + end = { line: start.line, column: start.column + 1 } } + return { start, end } } diff --git a/lib/warning.d.ts b/lib/warning.d.ts index 5c2b62491..838bef185 100644 --- a/lib/warning.d.ts +++ b/lib/warning.d.ts @@ -1,3 +1,4 @@ +import { RangePosition } from './css-syntax-error.js' import Node from './node.js' export interface WarningOptions { @@ -22,12 +23,14 @@ export interface WarningOptions { endIndex?: number /** - * If true, will try to infer a range for the warning using the node's - * start and end positions. If false or undefined, the warning will - * only use a range if either `word` or both `index` and `endIndex` - * are provided. Otherwise, a single position will be used. + * Start position, inclusive, in CSS node string that caused the warning. */ - inferRange?: boolean + start?: RangePosition + + /** + * End position, exclusive, in CSS node string that caused the warning. + */ + end?: RangePosition /** * Name of the plugin that created this warning. `Result#warn` fills diff --git a/lib/warning.js b/lib/warning.js index 43d2430a1..65aa5252f 100644 --- a/lib/warning.js +++ b/lib/warning.js @@ -6,28 +6,11 @@ class Warning { this.text = text if (opts.node && opts.node.source) { - if ( - opts.word || - typeof opts.endLine === 'number' || - typeof opts.endIndex === 'number' || - opts.inferRange - ) { - let range = opts.node.rangeBy(opts) - this.line = range.start.line - this.column = range.start.column - - if ( - range.start.line !== range.end.line || - range.start.column !== range.end.column - ) { - this.endLine = range.end.line - this.endColumn = range.end.column - } - } else { - let pos = opts.node.positionBy(opts) - this.line = pos.line - this.column = pos.column - } + let range = opts.node.rangeBy(opts) + this.line = range.start.line + this.column = range.start.column + this.endLine = range.end.line + this.endColumn = range.end.column } for (let opt in opts) this[opt] = opts[opt] diff --git a/test/warning.test.ts b/test/warning.test.ts index 9a614479c..82180350f 100644 --- a/test/warning.test.ts +++ b/test/warning.test.ts @@ -62,11 +62,13 @@ it('has line and column is undefined by default', () => { expect(warning.column).toBeUndefined() }) -it('gets position from node', () => { +it('gets range from node', () => { let root = parse('a{}') let warning = new Warning('text', { node: root.first }) expect(warning.line).toBe(1) expect(warning.column).toBe(1) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(4) }) it('gets range from word', () => { @@ -78,11 +80,13 @@ it('gets range from word', () => { expect(warning.endColumn).toBe(4) }) -it('gets position from index', () => { +it('gets range from index', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, index: 2 }) expect(warning.line).toBe(1) expect(warning.column).toBe(3) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(4) }) it('gets range from index and endIndex', () => { @@ -93,3 +97,58 @@ it('gets range from index and endIndex', () => { expect(warning.endLine).toBe(1) expect(warning.endColumn).toBe(4) }) + +it('gets range from start', () => { + let root = parse('a b{}') + let warning = new Warning('text', { + node: root.first, + start: { line: 1, column: 3 } + }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(3) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(6) +}) + +it('gets range from end', () => { + let root = parse('a b{}') + let warning = new Warning('text', { + node: root.first, + end: { line: 1, column: 3 } + }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(1) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(3) +}) + +it('gets range from start and end', () => { + let root = parse('a b{}') + let warning = new Warning('text', { + node: root.first, + start: { line: 1, column: 3 }, + end: { line: 1, column: 4 } + }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(3) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(4) +}) + +it('always returns exclusive ends', () => { + let root = parse('a b{}') + let warning = new Warning('text', { node: root.first, index: 1, endIndex: 1 }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(2) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(3) +}) + +it('always returns valid ranges', () => { + let root = parse('a b{}') + let warning = new Warning('text', { node: root.first, index: 2, endIndex: 1 }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(3) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(4) +}) From cdce960090a4f164ef69c05d8ce89886e76a3f3c Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Thu, 18 Nov 2021 17:05:04 -0800 Subject: [PATCH 2417/3047] fix: make test script work on windows --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 374b9af47..56d8aca04 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "transpiler" ], "scripts": { - "test": "jest --coverage && eslint . && ./test/version.js && check-dts && ./test/integration.js && size-limit" + "test": "jest --coverage && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit" }, "funding": { "type": "opencollective", From c382f3959f2805bd850cf20e32e635eb06524bd8 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Fri, 19 Nov 2021 09:26:14 +0000 Subject: [PATCH 2418/3047] fix: add stringifier type definitions --- lib/stringifier.d.ts | 57 ++++++++++++++++++++++++++++++++++++++++++++ lib/stringifier.js | 1 + 2 files changed, 58 insertions(+) create mode 100644 lib/stringifier.d.ts diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts new file mode 100644 index 000000000..7f5d8281c --- /dev/null +++ b/lib/stringifier.d.ts @@ -0,0 +1,57 @@ +import { + Document, + Root, + Comment, + Declaration, + Builder, + AnyNode, + Rule, + AtRule, + Container +} from './postcss.js'; + +export class Stringifier { + public constructor(builder: Builder); + + public stringify(node: AnyNode, semicolon?: boolean): void; + + public document(node: Document): void; + + public root(node: Root): void; + + public comment(node: Comment): void; + + public decl(node: Declaration, semicolon?: boolean): void; + + public rule(node: Rule): void; + + public atrule(node: AtRule, semicolon?: boolean): void; + + public body(node: Container): void; + + public block(node: AnyNode, start: string): void; + + public raw(node: AnyNode, own: string|null, detect?: string): string; + + public rawSemicolon(root: Root): boolean|undefined; + + public rawEmptyBody(root: Root): string|undefined; + + public rawIndent(root: Root): string|undefined; + + public rawBeforeComment(root: Root, node: Comment): string|undefined; + + public rawBeforeDecl(root: Root, node: Declaration): string|undefined; + + public rawBeforeRule(root: Root): string|undefined; + + public rawBeforeClose(root: Root): string|undefined; + + public rawBeforeOpen(root: Root): string|undefined; + + public rawColon(root: Root): string|undefined; + + public beforeAfter(node: AnyNode, detect: 'before'|'after'): string; + + public rawValue(node: AnyNode, prop: string): string; +} diff --git a/lib/stringifier.js b/lib/stringifier.js index 81e125182..5de656d58 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -349,3 +349,4 @@ class Stringifier { } module.exports = Stringifier +Stringifier.default = Stringifier; From 6a65fcdb1743d706a783ba1a64029ded3658b405 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Fri, 19 Nov 2021 16:28:11 +0100 Subject: [PATCH 2419/3047] Fix typo in `walkRules` types --- lib/container.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/container.d.ts b/lib/container.d.ts index 3005a1614..2b75e372f 100644 --- a/lib/container.d.ts +++ b/lib/container.d.ts @@ -181,10 +181,10 @@ export default abstract class Container< */ walkRules( selectorFilter: string | RegExp, - callback: (atRule: Rule, index: number) => false | void + callback: (rule: Rule, index: number) => false | void ): false | undefined walkRules( - callback: (atRule: Rule, index: number) => false | void + callback: (rule: Rule, index: number) => false | void ): false | undefined /** From 395cc4bf9603e6a487ae646534e9ee03cd890429 Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Fri, 19 Nov 2021 12:10:34 -0800 Subject: [PATCH 2420/3047] fix: handle case when node end is undefined --- lib/node.js | 13 +++++++++---- test/warning.test.ts | 12 ++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/node.js b/lib/node.js index 1e00afc01..d477cf982 100644 --- a/lib/node.js +++ b/lib/node.js @@ -262,10 +262,15 @@ class Node { line: this.source.start.line, column: this.source.start.column } - let end = { - line: this.source.end.line, - column: this.source.end.column + 1 - } + let end = this.source.end + ? { + line: this.source.end.line, + column: this.source.end.column + 1 + } + : { + line: start.line, + column: start.column + 1 + } if (opts.word) { let index = this.toString().indexOf(opts.word) diff --git a/test/warning.test.ts b/test/warning.test.ts index 82180350f..4b7b9f70b 100644 --- a/test/warning.test.ts +++ b/test/warning.test.ts @@ -60,6 +60,8 @@ it('has line and column is undefined by default', () => { let warning = new Warning('text') expect(warning.line).toBeUndefined() expect(warning.column).toBeUndefined() + expect(warning.endLine).toBeUndefined() + expect(warning.endColumn).toBeUndefined() }) it('gets range from node', () => { @@ -71,6 +73,16 @@ it('gets range from node', () => { expect(warning.endColumn).toBe(4) }) +it('gets range from node without end', () => { + let root = parse('a{}') + root.first!.source!.end = undefined + let warning = new Warning('text', { node: root.first }) + expect(warning.line).toBe(1) + expect(warning.column).toBe(1) + expect(warning.endLine).toBe(1) + expect(warning.endColumn).toBe(2) +}) + it('gets range from word', () => { let root = parse('a b{}') let warning = new Warning('text', { node: root.first, word: 'b' }) From f69b1986fa778f16935f49ac279d971486b71bc4 Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Fri, 19 Nov 2021 23:51:47 +0300 Subject: [PATCH 2421/3047] replace tm with ts-node for node v10 --- .github/workflows/test.yml | 2 +- package.json | 15 +- yarn.lock | 1549 +++++------------------------------- 3 files changed, 229 insertions(+), 1337 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 27fe48eea..e9a2ff59c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,6 +60,6 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests - run: yarn uvu -r tsm test ^.*test.([tj]s) + run: yarn ts-node node_modules/uvu/bin.js -r esm test "^.*test.([tj]s)" env: FORCE_COLOR: 2 diff --git a/package.json b/package.json index b2a6c8f52..58c5fb595 100755 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "transpiler" ], "scripts": { - "test": "c8 yarn unit && eslint . && ./test/version.js && check-dts && ./test/integration.js && size-limit", - "unit": "uvu -r tsm test '\\.test\\.(ts|js)$'" + "test": "c8 yarn unit && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit", + "unit": "ts-node -T node_modules/uvu/bin.js -r esm test '\\.test\\.(ts|js)$'" }, "funding": { "type": "opencollective", @@ -75,13 +75,13 @@ }, "devDependencies": { "@logux/eslint-config": "^46.1.0", - "@size-limit/preset-small-lib": "^6.0.4", + "@size-limit/preset-small-lib": "^7.0.0", "@types/fs-extra": "^9.0.13", "@types/node": "^16.11.7", "@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/parser": "^5.4.0", "c8": "^7.10.0", - "check-dts": "^0.6.3", + "check-dts": "^0.6.4", "clean-publish": "^3.4.3", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.2.0", @@ -90,14 +90,15 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^5.1.1", + "esm": "^3.2.25", "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", - "size-limit": "^6.0.4", + "size-limit": "^7.0.0", "strip-ansi": "^6.0.0", - "tsm": "^2.1.4", - "typescript": "^4.4.4", + "ts-node": "^10.4.0", + "typescript": "^4.5.2", "uvu": "^0.5.2" }, "c8": { diff --git a/yarn.lock b/yarn.lock index e6b94795b..dd562d3fa 100755 --- a/yarn.lock +++ b/yarn.lock @@ -7,10 +7,17 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@discoveryjs/json-ext@^0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3" - integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA== +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== + dependencies: + "@cspotcode/source-map-consumer" "0.8.0" "@eslint/eslintrc@^1.0.4": version "1.0.4" @@ -72,200 +79,48 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@size-limit/file@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-6.0.4.tgz#64681f0e0ec93d69b1d99f0a40bbbcdd2fb7def6" - integrity sha512-SoGUUNEHsZJTDlw6znuMbR0z6apr/NmeEXSFT6iB6gUPyOHIdFtFJpvWeS1vijC7OFQhWHskedB6nBJ6L+bd+A== +"@size-limit/esbuild@7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/esbuild/-/esbuild-7.0.3.tgz#5ceb2d18348ceda82365f6a800c67bb293bd0825" + integrity sha512-pqtB5wQkbFHxHo43Xjyj3XVqnl56LHKpycWKmNWhDShkF94ucCdfZJwHDMIzL6f0OUjRxd9QkA8Jv11pFzUD/Q== dependencies: - semver "7.3.5" + esbuild "^0.13.14" + nanoid "^3.1.30" -"@size-limit/preset-small-lib@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-6.0.4.tgz#707863bee82c7412b2e7201c301db1de793e7158" - integrity sha512-eMay+Hv/ufJyCUX/pFXa30AiYsjrT/Tjw1G7h7CCNKulbEjAY2rAiEsCQkm+rCNnYoPUgOsWhMYy908J23Qb6Q== +"@size-limit/file@7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-7.0.3.tgz#a9ba258b8d386f557384a025c4f06f404a3035ba" + integrity sha512-jizDZduAQ71KoraRWkj6ZSHPPo8SQ/KO4z1hZBl1ZujxwF7R6NLWKghNUtIQHsXpqyZWbK3VV39lOLx7qHuLjg== dependencies: - "@size-limit/file" "6.0.4" - "@size-limit/webpack" "6.0.4" + semver "7.3.5" -"@size-limit/webpack@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-6.0.4.tgz#2e23b6a3efb11cb081fb65394d05f218c7051270" - integrity sha512-51rvLztZcvT+Qc5g8FusyC8ZDcpVg7+O1a4hfO2K2XMZV8CFguRN//xMwQXv5q6I1ImUQeyURyiCXIQD24qJYQ== +"@size-limit/preset-small-lib@^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-7.0.3.tgz#2f9409e69d0d89f059b0b841e34bad972be47ddc" + integrity sha512-UuA8ICz3BYWxbhJah8U5KxOUhA97AJbsNITp+Scy9aUXzbu2SqrsDTRmPU9ULCo3j4VgF53TBHXY4sdKC2adpw== dependencies: - "@statoscope/webpack-plugin" "^5.17.0" - css-loader "^6.5.0" - css-minimizer-webpack-plugin "^3.0.2" - escape-string-regexp "^4.0.0" - mkdirp "^1.0.4" - nanoid "^3.1.30" - style-loader "^3.3.1" - webpack "^5.61.0" - -"@statoscope/extensions@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/extensions/-/extensions-5.14.1.tgz#b7c32b39de447da76b9fa2daada61b2f699754e6" - integrity sha512-5O31566+bOkkdYFH81mGGBTh0YcU0zoYurTrsK5uZfpNY87ZCPpptrszX8npTRHNsxbjBBNt7vAwImJyYdhzLw== - -"@statoscope/helpers@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/helpers/-/helpers-5.14.1.tgz#80e733d82585f6fc4636b26a9b4a952272ba71c8" - integrity sha512-Gl7NB06cOxxh86tFk75yQmcOCQ3b8i4euYlyxvdz4tWkzeZw8g5VLPH9g3X4uQbPM4rqkae/KmgtRo5Ey1km8w== - dependencies: - "@types/archy" "^0.0.32" - "@types/semver" "^7.3.6" - archy "~1.0.0" - jora "^1.0.0-beta.5" - semver "^7.3.5" - -"@statoscope/report-writer@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/report-writer/-/report-writer-5.14.1.tgz#ae5f7151ef6348338707b28abf6d2137c368ed40" - integrity sha512-N7pjpiKspDQ6K0B9HNBs8u3bhueiYmJEqAazSw/U3v8hThcP31i/FLCH90bu/8Sj436xAE1KATtGzJnsN5mbQA== - dependencies: - "@discoveryjs/json-ext" "^0.5.5" - -"@statoscope/stats-extension-compressed@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-compressed/-/stats-extension-compressed-5.14.1.tgz#456927e0e2942b99fe498466c6db32050af41005" - integrity sha512-FnfmL18OAHWg1l95tBKeMGHmeNbEOdnHlOE1c9KT3TWc5kt4q8ntpChL4AAZJSgn7uBy5WKMgjZSr5aUGebHGQ== - dependencies: - "@statoscope/helpers" "5.14.1" - gzip-size "^6.0.0" - -"@statoscope/stats-extension-custom-reports@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-custom-reports/-/stats-extension-custom-reports-5.14.1.tgz#fd11a9c20589e492f3b8804fc1cece39cf73b8a8" - integrity sha512-+t7gq2zZu8frwJF651+fq1BOZPMdngEwtNhvdRCSWyBE2uYvotVnngQE+di1/Idaosshnf4GdwX82bSMIlF1mQ== - dependencies: - "@statoscope/extensions" "5.14.1" - "@statoscope/helpers" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/types" "5.14.1" - -"@statoscope/stats-extension-package-info@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-package-info/-/stats-extension-package-info-5.14.1.tgz#92078819a6c3c3250647d477d1f8b1d7ec153b79" - integrity sha512-TPKq6qJ7hxyQdPPpcbPsagf9MjbmPRLLo0F2ceafJ11ubP0t8LQZ+m0Orqp5ay3wuzvBy406w/njPwHQuEBHZw== - dependencies: - "@statoscope/helpers" "5.14.1" - -"@statoscope/stats-extension-stats-validation-result@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats-extension-stats-validation-result/-/stats-extension-stats-validation-result-5.14.1.tgz#d1dd76f0e735bb66d9f63a99b9be3a51dbb0e3fb" - integrity sha512-/TiohT+iO5Idipdd3JmzZ/Utaq3nXeKfZKnvXahkls5x6rpRQgbXs2IrDRtf7rJg4B/g2GuZUMsu4m76rHdkwA== - dependencies: - "@statoscope/extensions" "5.14.1" - "@statoscope/helpers" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/types" "5.14.1" - -"@statoscope/stats@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/stats/-/stats-5.14.1.tgz#728656629bc06aa4bf5634398662ac05287793d5" - integrity sha512-Kz7kCKuT6DXaqAPfyTwp27xHMDUna9o6UlRSQXXBZ8Yyk7eYYvTNw+5ffRyqivL9IOzD7FQYDQ6VUBHh0UfyDw== - -"@statoscope/types@5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@statoscope/types/-/types-5.14.1.tgz#4cc3da44f6a63d4318c50a75efe89f97d512ac8b" - integrity sha512-vIo7aq2E71AC3y3mdnZqA5aupYUaEIHuPD2gUG0bAA8zTXH7YICk7nRkuxx7xnCBhTZTXAgvtF8hgQ35K4N8oQ== - dependencies: - "@statoscope/stats" "5.14.1" - -"@statoscope/webpack-model@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-model/-/webpack-model-5.18.0.tgz#02b13e8d2929875752887417dd9c4f406e797568" - integrity sha512-pvS/BiKUpzSGfpEGIzwORYyo/YDsYWZYLmKPGi/qlHnBQBQ3Diqa4N+6/dPGBFmuBj49Z2GK/3X1etniANhI0w== - dependencies: - "@statoscope/extensions" "5.14.1" - "@statoscope/helpers" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/stats-extension-custom-reports" "5.14.1" - "@statoscope/stats-extension-package-info" "5.14.1" - "@statoscope/stats-extension-stats-validation-result" "5.14.1" - "@statoscope/types" "5.14.1" - "@types/md5" "^2.3.0" - "@types/webpack" "^5.0.0" - ajv "^8.6.3" - md5 "^2.3.0" - -"@statoscope/webpack-plugin@^5.17.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-plugin/-/webpack-plugin-5.18.0.tgz#d268d967354d6fabacb746d53ddeca8e78cde8f1" - integrity sha512-WB7E6EwCCibhG5VUPuSlXxJ2oArzIM2SdpkF2NWeahFuPEJEXZtCuW9NFUdQuwLp486COy09oN9Dlw/Fe288Tw== - dependencies: - "@discoveryjs/json-ext" "^0.5.5" - "@statoscope/report-writer" "5.14.1" - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/stats-extension-custom-reports" "5.14.1" - "@statoscope/types" "5.14.1" - "@statoscope/webpack-model" "5.18.0" - "@statoscope/webpack-stats-extension-compressed" "5.18.0" - "@statoscope/webpack-stats-extension-package-info" "5.18.0" - "@statoscope/webpack-ui" "5.18.0" - "@types/node" "^12.20.15" - "@types/webpack" "^5.0.0" - open "^8.2.1" - -"@statoscope/webpack-stats-extension-compressed@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-compressed/-/webpack-stats-extension-compressed-5.18.0.tgz#9173802f492cfeb53c406bd098135521618a9b91" - integrity sha512-3pD0XqOr6McVHAt6EEtymygTEUhEIHGy/kC06iTO6/r2nKCp4AFto7SKlorMuc2nZICpgiz7Dy/THNzVwrdKOA== - dependencies: - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-compressed" "5.14.1" - "@statoscope/webpack-model" "5.18.0" - "@types/webpack" "^5.0.0" - -"@statoscope/webpack-stats-extension-package-info@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-stats-extension-package-info/-/webpack-stats-extension-package-info-5.18.0.tgz#0c418bdd19ef3ec1f46b2d19a98c86f6a17cf993" - integrity sha512-9u6NFdFZ5EkiLoOihAITS2/qNuL9e50vIfqQey9osxMevsA4fHk/xDxK66a3PTT45JXPdGnZlGZ77+KyghJrxw== - dependencies: - "@statoscope/stats" "5.14.1" - "@statoscope/stats-extension-package-info" "5.14.1" - "@statoscope/webpack-model" "5.18.0" - "@types/webpack" "^5.0.0" - -"@statoscope/webpack-ui@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@statoscope/webpack-ui/-/webpack-ui-5.18.0.tgz#0afb5f074d2bdaffff78a80381765b6167e22ba9" - integrity sha512-9UrAyJtcUSIfW2awDDxQr4Z06ktmBBtXkCHyecE6HQt+O5OJe6hr0pQAlNFw/rDqDhpAexpJGpnsWJZQSLeIqQ== - dependencies: - "@statoscope/types" "5.14.1" - highcharts "^9.2.2" - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@size-limit/esbuild" "7.0.3" + "@size-limit/file" "7.0.3" -"@types/archy@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/archy/-/archy-0.0.32.tgz#8b572741dad9172dfbf289397af1bb41296d3e40" - integrity sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg== +"@tsconfig/node10@^1.0.7": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== -"@types/eslint-scope@^3.7.0": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" - integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" +"@tsconfig/node12@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== -"@types/eslint@*": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" - integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" +"@tsconfig/node14@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== -"@types/estree@*", "@types/estree@^0.0.50": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== "@types/fs-extra@^9.0.13": version "9.0.13" @@ -279,7 +134,7 @@ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -289,42 +144,16 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/md5@^2.3.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.3.1.tgz#010bcf3bb50a2cff3a574cb1c0b4051a9c67d6bc" - integrity sha512-OK3oe+ALIoPSo262lnhAYwpqFNXbiwH2a+0+Z5YBnkQEwWD8fk5+PIeRhYA48PzvX9I4SGNpWy+9bLj8qz92RQ== - dependencies: - "@types/node" "*" - "@types/node@*", "@types/node@^16.11.7": version "16.11.7" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== -"@types/node@^12.20.15": - version "12.20.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.37.tgz#abb38afa9d6e8a2f627a8cb52290b3c80fbe61ed" - integrity sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA== - -"@types/semver@^7.3.6": - version "7.3.9" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" - integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== - "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@types/webpack@^5.0.0": - version "5.28.0" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" - integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== - dependencies: - "@types/node" "*" - tapable "^2.2.0" - webpack "^5" - "@typescript-eslint/eslint-plugin@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.4.0.tgz#05e711a2e7b68342661fde61bccbd1531c19521a" @@ -395,158 +224,22 @@ "@typescript-eslint/types" "5.4.0" eslint-visitor-keys "^3.0.0" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^8.4.1, acorn@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -556,21 +249,6 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.6.3: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.1.tgz#e73dd88eeb4b10bbcd82bee136e6fbe801664d18" - integrity sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -608,10 +286,10 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -archy@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^2.0.1: version "2.0.1" @@ -653,11 +331,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -673,22 +346,6 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6: - version "4.18.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" - integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== - dependencies: - caniuse-lite "^1.0.30001280" - electron-to-chromium "^1.3.896" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - bytes-iec@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" @@ -725,21 +382,6 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001280: - version "1.0.30001282" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" - integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== - chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -757,15 +399,10 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -check-dts@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.3.tgz#c06f625c97131ce37c875998b2514ef888b265ea" - integrity sha512-whRqACQPsdv+DP7shkdK3u6boMzDagz+VqdIwAcfYQFd8NDQfMhPnsLMK/sAWm2QK0S1FKJQZZHN5zH/CRW/FA== +check-dts@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.4.tgz#51cdbdc1abdbddf77f4e0f2ad9ccbe3c50984700" + integrity sha512-bxF8yPtThneecmBr+f4Q1EcDGFhiD2GjOnHscmDDH1vBDaGRTLKmHHjNiM6/9wbknRxiNoEPjr/mvaMtOPCz2g== dependencies: fast-glob "^3.2.7" nanospinner "^0.4.0" @@ -787,11 +424,6 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - ci-job-number@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" @@ -848,21 +480,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.9.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" - integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -882,6 +499,11 @@ convert-source-map@^1.6.0: dependencies: safe-buffer "~5.1.1" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -891,130 +513,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -css-declaration-sorter@^6.0.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" - integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== - dependencies: - timsort "^0.3.0" - -css-loader@^6.5.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" - integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ== - dependencies: - icss-utils "^5.1.0" - postcss "^8.2.15" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - semver "^7.3.5" - -css-minimizer-webpack-plugin@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.1.3.tgz#3cfa1c8603f98f0b5e70697b61cbc4857fe1987b" - integrity sha512-x+6kzXprepysouo513zKibWCbWTGIvH9OrEsMRRV8EcJ7vYY/zRg0lR8tCzMHMap+lhNPOrYCdDagjRmfnGGxw== - dependencies: - cssnano "^5.0.6" - jest-worker "^27.0.2" - postcss "^8.3.5" - schema-utils "^3.1.0" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-tree@^1.1.2, css-tree@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.7.tgz#68c3ad1ec6a810482ec7d06b2d70fc34b6b0d70c" - integrity sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^2.0.1" - postcss-calc "^8.0.0" - postcss-colormin "^5.2.1" - postcss-convert-values "^5.0.2" - postcss-discard-comments "^5.0.1" - postcss-discard-duplicates "^5.0.1" - postcss-discard-empty "^5.0.1" - postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.4" - postcss-merge-rules "^5.0.3" - postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.3" - postcss-minify-params "^5.0.2" - postcss-minify-selectors "^5.1.0" - postcss-normalize-charset "^5.0.1" - postcss-normalize-display-values "^5.0.1" - postcss-normalize-positions "^5.0.1" - postcss-normalize-repeat-style "^5.0.1" - postcss-normalize-string "^5.0.1" - postcss-normalize-timing-functions "^5.0.1" - postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.3" - postcss-normalize-whitespace "^5.0.1" - postcss-ordered-values "^5.0.2" - postcss-reduce-initial "^5.0.1" - postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.2" - -cssnano-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" - integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== - -cssnano@^5.0.6: - version "5.0.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.11.tgz#743397a05e04cb87e9df44b7659850adfafc3646" - integrity sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg== - dependencies: - cssnano-preset-default "^5.1.7" - is-resolvable "^1.1.0" - lilconfig "^2.0.3" - yaml "^1.10.2" - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1041,11 +539,6 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1058,6 +551,11 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + diff@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" @@ -1084,59 +582,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domhandler@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" - integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.6.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -electron-to-chromium@^1.3.896: - version "1.3.900" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5" - integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -1144,11 +594,6 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" @@ -1175,11 +620,6 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -1189,113 +629,113 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a" - integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ== - -esbuild-darwin-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf" - integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA== - -esbuild-darwin-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471" - integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g== - -esbuild-freebsd-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151" - integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A== - -esbuild-freebsd-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62" - integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw== - -esbuild-linux-32@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc" - integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w== - -esbuild-linux-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22" - integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw== - -esbuild-linux-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978" - integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng== - -esbuild-linux-arm@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f" - integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ== - -esbuild-linux-mips64le@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f" - integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w== - -esbuild-linux-ppc64le@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02" - integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ== - -esbuild-netbsd-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3" - integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ== - -esbuild-openbsd-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107" - integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w== - -esbuild-sunos-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e" - integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ== - -esbuild-windows-32@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6" - integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw== - -esbuild-windows-64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c" - integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA== - -esbuild-windows-arm64@0.13.13: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c" - integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A== - -esbuild@^0.13.4: - version "0.13.13" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.13.tgz#0b5399c20f219f663c8c1048436fb0f59ab17a41" - integrity sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q== +esbuild-android-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.14.tgz#c85083ece26be3d67e6c720e088968a98409e023" + integrity sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA== + +esbuild-darwin-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.14.tgz#8e4e237ad847cc54a1d3a5caee26a746b9f0b81f" + integrity sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ== + +esbuild-darwin-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.14.tgz#b3b5ebd40b2cb06ee0f6fb342dd4bdcca54ad273" + integrity sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg== + +esbuild-freebsd-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.14.tgz#175ecb2fa8141428cf70ea2d5f4c27534bad53e0" + integrity sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw== + +esbuild-freebsd-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.14.tgz#a7d64e41d1fa581f8db7775e5200f18e67d70c4d" + integrity sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q== + +esbuild-linux-32@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.14.tgz#14bdd4f6b6cfd35c65c835894651ba335c2117da" + integrity sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA== + +esbuild-linux-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.14.tgz#7fd56851b2982fdd0cd8447ee9858c2c5711708a" + integrity sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ== + +esbuild-linux-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.14.tgz#a55634d70679ba509adeafd68eebb9fd1ec5af6c" + integrity sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ== + +esbuild-linux-arm@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.14.tgz#bb96a99677e608b31ff61f37564326d38e846ca2" + integrity sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg== + +esbuild-linux-mips64le@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.14.tgz#6a55362a8fd1e593dea2ecc41877beed8b8184b9" + integrity sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ== + +esbuild-linux-ppc64le@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.14.tgz#9e0048587ece0a7f184ab147f20d077098045e7f" + integrity sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw== + +esbuild-netbsd-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.14.tgz#dcab16a4bbcfa16e2e8535dadc5f64fdc891c63b" + integrity sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q== + +esbuild-openbsd-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.14.tgz#3c7453b155ebb68dc34d5aec3bd6505337bdda08" + integrity sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA== + +esbuild-sunos-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.14.tgz#85addf5fef6b5db154a955d4f2e88953359d75ce" + integrity sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w== + +esbuild-windows-32@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.14.tgz#f77f98f30a5c636c44db2428ecdf9bcbbaedb1a7" + integrity sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg== + +esbuild-windows-64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.14.tgz#bc778674c40d65150d12385e0f23eb3a0badbd0d" + integrity sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw== + +esbuild-windows-arm64@0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.14.tgz#91a8dad35ab2c4dd27cd83860742955b25a354d7" + integrity sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A== + +esbuild@^0.13.14: + version "0.13.14" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.14.tgz#98a3f7f42809abdc2b57c84565d0f713382dc1a5" + integrity sha512-xu4D+1ji9x53ocuomcY+KOrwAnWzhBu/wTEjpdgZ8I1c8i5vboYIeigMdzgY1UowYBKa2vZgVgUB32bu7gkxeg== optionalDependencies: - esbuild-android-arm64 "0.13.13" - esbuild-darwin-64 "0.13.13" - esbuild-darwin-arm64 "0.13.13" - esbuild-freebsd-64 "0.13.13" - esbuild-freebsd-arm64 "0.13.13" - esbuild-linux-32 "0.13.13" - esbuild-linux-64 "0.13.13" - esbuild-linux-arm "0.13.13" - esbuild-linux-arm64 "0.13.13" - esbuild-linux-mips64le "0.13.13" - esbuild-linux-ppc64le "0.13.13" - esbuild-netbsd-64 "0.13.13" - esbuild-openbsd-64 "0.13.13" - esbuild-sunos-64 "0.13.13" - esbuild-windows-32 "0.13.13" - esbuild-windows-64 "0.13.13" - esbuild-windows-arm64 "0.13.13" + esbuild-android-arm64 "0.13.14" + esbuild-darwin-64 "0.13.14" + esbuild-darwin-arm64 "0.13.14" + esbuild-freebsd-64 "0.13.14" + esbuild-freebsd-arm64 "0.13.14" + esbuild-linux-32 "0.13.14" + esbuild-linux-64 "0.13.14" + esbuild-linux-arm "0.13.14" + esbuild-linux-arm64 "0.13.14" + esbuild-linux-mips64le "0.13.14" + esbuild-linux-ppc64le "0.13.14" + esbuild-netbsd-64 "0.13.14" + esbuild-openbsd-64 "0.13.14" + esbuild-sunos-64 "0.13.14" + esbuild-windows-32 "0.13.14" + esbuild-windows-64 "0.13.14" + esbuild-windows-arm64 "0.13.14" escalade@^3.1.1: version "3.1.1" @@ -1385,7 +825,7 @@ eslint-plugin-promise@^5.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz#9674d11c056d1bafac38e4a3a9060be740988d90" integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA== -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -1474,6 +914,11 @@ eslint@^8.2.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + espree@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" @@ -1512,11 +957,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1665,11 +1105,6 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -1701,18 +1136,11 @@ globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -1747,11 +1175,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -highcharts@^9.2.2: - version "9.3.1" - resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-9.3.1.tgz#dbeb39c2e5b298b02ccc459103f5f1c8daea1264" - integrity sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw== - hosted-git-info@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" @@ -1764,11 +1187,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -1814,11 +1232,6 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -1846,11 +1259,6 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" @@ -1870,11 +1278,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -1917,11 +1320,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-shared-array-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" @@ -1948,13 +1346,6 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.0" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -1982,20 +1373,6 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-worker@^27.0.2, jest-worker@^27.0.6: - version "27.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" - integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jora@^1.0.0-beta.5: - version "1.0.0-beta.5" - resolved "https://registry.yarnpkg.com/jora/-/jora-1.0.0-beta.5.tgz#55b2c4d86078af1bc74da401e88b67be42b0bddd" - integrity sha512-hPJKQyF0eiCqQOwfgIuQa+8wIn+WcEcjjyeOchuiXEUnt6zbV0tHKsUqRRwJY47ZtBiGcJQNr/BGuYW1Sfwbvg== - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -2003,21 +1380,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -2057,11 +1424,6 @@ lilconfig@^2.0.3: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== -loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -2077,21 +1439,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -2106,24 +1458,10 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== merge2@^1.3.0: version "1.4.1" @@ -2138,18 +1476,6 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.27: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -2214,33 +1540,11 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -nth-check@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" @@ -2284,15 +1588,6 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^8.2.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -2392,206 +1687,6 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -postcss-calc@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" - integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== - dependencies: - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d" - integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - colord "^2.9.1" - postcss-value-parser "^4.1.0" - -postcss-convert-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" - integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-discard-comments@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" - integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== - -postcss-discard-duplicates@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" - integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== - -postcss-discard-empty@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" - integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== - -postcss-discard-overridden@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" - integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== - -postcss-merge-longhand@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" - integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== - dependencies: - postcss-value-parser "^4.1.0" - stylehacks "^5.0.1" - -postcss-merge-rules@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" - integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^2.0.1" - postcss-selector-parser "^6.0.5" - -postcss-minify-font-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" - integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-minify-gradients@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" - integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== - dependencies: - colord "^2.9.1" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-minify-params@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" - integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== - dependencies: - alphanum-sort "^1.0.2" - browserslist "^4.16.6" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-minify-selectors@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" - integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== - dependencies: - alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-normalize-charset@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" - integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== - -postcss-normalize-display-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" - integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-positions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" - integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-repeat-style@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" - integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-string@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" - integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-timing-functions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" - integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-unicode@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" - integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== - dependencies: - browserslist "^4.16.0" - postcss-value-parser "^4.1.0" - -postcss-normalize-url@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" - integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== - dependencies: - is-absolute-url "^3.0.3" - normalize-url "^6.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-whitespace@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" - integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-ordered-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" - integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - postcss-parser-tests@^8.3.7: version "8.3.7" resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.7.tgz#d74151da5a89308ad4e77eb21acff2166df5c6e5" @@ -2600,60 +1695,6 @@ postcss-parser-tests@^8.3.7: picocolors "^1.0.0" spinnies "^0.5.1" -postcss-reduce-initial@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" - integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== - dependencies: - browserslist "^4.16.0" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" - integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" - integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== - dependencies: - postcss-value-parser "^4.1.0" - svgo "^2.7.0" - -postcss-unique-selectors@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" - integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== - dependencies: - alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.5" - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^8.2.15, postcss@^8.3.5: - version "8.3.11" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" - integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== - dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^0.6.2" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -2674,13 +1715,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -2698,11 +1732,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - requireindex@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -2755,25 +1784,11 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - semver@7.3.5, semver@^7.2.1, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" @@ -2786,13 +1801,6 @@ semver@^6.0.0, semver@^6.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2824,16 +1832,17 @@ simple-git-hooks@^2.7.0: resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" integrity sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ== -size-limit@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-6.0.4.tgz#f3345206d8c25485d0d31ea41622761a3a1aad93" - integrity sha512-zo/9FrXzetvZGFJnd1LC4mR9GvirElALlerMY3EOwEGdW7Lwgl2WT0hTRC2559ZR2PGfRpnXEgAFkayGAJOebg== +size-limit@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-7.0.3.tgz#1cc6e83d1f090c2008080a193337a9b84c98825d" + integrity sha512-CDGzcnw8f34yZ8ckh0dZ0ZNVfbfwJoG1+DWHdn63GieS0dnAB7oUH6Rok3Xaz4Ba+RUAd+4kXoJyZWHw5KkArw== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" ci-job-number "^1.2.2" globby "^11.0.4" lilconfig "^2.0.3" + mkdirp "^1.0.4" nanospinner "^0.4.0" picocolors "^1.0.0" @@ -2842,30 +1851,17 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - source-map-js@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== -source-map-support@~0.5.20: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: +source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -2879,11 +1875,6 @@ spinnies@^0.5.1: cli-cursor "^3.0.0" strip-ansi "^5.2.0" -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -2933,19 +1924,6 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" - integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== - -stylehacks@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" - integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== - dependencies: - browserslist "^4.16.0" - postcss-selector-parser "^6.0.4" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -2960,51 +1938,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -svgo@^2.7.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" - integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^4.1.3" - css-tree "^1.1.3" - csso "^4.2.0" - picocolors "^1.0.0" - stable "^0.1.8" - -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -terser-webpack-plugin@^5.1.3: - version "5.2.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" - integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== - dependencies: - jest-worker "^27.0.6" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - source-map "^0.6.1" - terser "^5.7.2" - -terser@^5.7.2: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.20" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -3019,11 +1952,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -3036,6 +1964,24 @@ totalist@^2.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-2.0.0.tgz#db6f1e19c0fa63e71339bbb8fba89653c18c7eec" integrity sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ== +ts-node@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" + integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + yn "3.1.1" + tsconfig-paths@^3.11.0: version "3.11.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" @@ -3051,13 +1997,6 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tsm@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/tsm/-/tsm-2.1.4.tgz#a93d012c4d96b03bbd9b6a974a9f94c581fab460" - integrity sha512-gz1zckplzOzHdiY1HVVUoH8bl2eWxbU6uJraB31w1NQ+/kQkjix3ldYHBnWaoNnOL9q8ruS+E2Wckdcw56DzrA== - dependencies: - esbuild "^0.13.4" - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -3077,10 +2016,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +typescript@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" + integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== unbox-primitive@^1.0.1: version "1.0.1" @@ -3111,11 +2050,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - uvu@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.2.tgz#c145e7f4b5becf80099cf22fd8a4a05f0112b2c0" @@ -3167,49 +2101,6 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -watchpack@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" - integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -webpack-sources@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" - integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== - -webpack@^5, webpack@^5.61.0: - version "5.64.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.64.1.tgz#fd59840c16f04fe315f2b2598a85026f12dfa1bb" - integrity sha512-b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw== - dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.50" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.3" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.2.0" - webpack-sources "^3.2.2" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -3257,11 +2148,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - yargs-parser@^20.2.2, yargs-parser@^20.2.7: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" @@ -3280,6 +2166,11 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 1313a41c49fba2e60eb7464e905c953f5752a33c Mon Sep 17 00:00:00 2001 From: Andrey Kim Date: Sun, 21 Nov 2021 00:50:11 +0300 Subject: [PATCH 2422/3047] fix unit script and coverage --- .github/workflows/test.yml | 2 +- .vscode/settings.json | 3 +++ lib/map-generator.js | 4 +++- package.json | 3 +-- yarn.lock | 5 ----- 5 files changed, 8 insertions(+), 9 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e9a2ff59c..cc8196953 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,6 +60,6 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests - run: yarn ts-node node_modules/uvu/bin.js -r esm test "^.*test.([tj]s)" + run: yarn uvu -r ts-node/register/transpile-only test "^.*test.([tj]s)" env: FORCE_COLOR: 2 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..37441beed --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "files.eol": "\n" +} \ No newline at end of file diff --git a/lib/map-generator.js b/lib/map-generator.js index f22a68c81..e329f15c2 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -152,7 +152,7 @@ class MapGenerator { } else { content = this.outputFile() + '.map' } - + /* c8 ignore next 6 */ let eol = '\n' if (this.css.includes('\r\n')) eol = '\r\n' @@ -267,6 +267,7 @@ class MapGenerator { if (node && type !== 'end') { mapping.generated.line = line + /* c8 ignore next */ mapping.generated.column = column - 1 if (node.source && node.source.start) { mapping.source = this.sourcePath(node) @@ -274,6 +275,7 @@ class MapGenerator { mapping.original.column = node.source.start.column - 1 this.map.addMapping(mapping) } else { + /* c8 ignore next 8 */ mapping.source = noSource mapping.original.line = 1 mapping.original.column = 0 diff --git a/package.json b/package.json index 58c5fb595..a08b7d91f 100755 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ ], "scripts": { "test": "c8 yarn unit && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit", - "unit": "ts-node -T node_modules/uvu/bin.js -r esm test '\\.test\\.(ts|js)$'" + "unit": "uvu -r ts-node/register/transpile-only test '\\.test\\.(ts|js)$'" }, "funding": { "type": "opencollective", @@ -90,7 +90,6 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^5.1.1", - "esm": "^3.2.25", "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", diff --git a/yarn.lock b/yarn.lock index dd562d3fa..3cc07d705 100755 --- a/yarn.lock +++ b/yarn.lock @@ -914,11 +914,6 @@ eslint@^8.2.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - espree@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" From 678f906f27382b3fe65f7c63e26731b7a9d42913 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Nov 2021 00:32:32 +0100 Subject: [PATCH 2423/3047] Update dependencies --- package.json | 6 +- yarn.lock | 238 +++++++++++++++++++++++++-------------------------- 2 files changed, 122 insertions(+), 122 deletions(-) diff --git a/package.json b/package.json index a08b7d91f..8ba4e6271 100755 --- a/package.json +++ b/package.json @@ -75,9 +75,9 @@ }, "devDependencies": { "@logux/eslint-config": "^46.1.0", - "@size-limit/preset-small-lib": "^7.0.0", + "@size-limit/preset-small-lib": "^7.0.3", "@types/fs-extra": "^9.0.13", - "@types/node": "^16.11.7", + "@types/node": "^16.11.9", "@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/parser": "^5.4.0", "c8": "^7.10.0", @@ -94,7 +94,7 @@ "nanodelay": "^1.0.8", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", - "size-limit": "^7.0.0", + "size-limit": "^7.0.3", "strip-ansi": "^6.0.0", "ts-node": "^10.4.0", "typescript": "^4.5.2", diff --git a/yarn.lock b/yarn.lock index 3cc07d705..d11bf1332 100755 --- a/yarn.lock +++ b/yarn.lock @@ -94,7 +94,7 @@ dependencies: semver "7.3.5" -"@size-limit/preset-small-lib@^7.0.0": +"@size-limit/preset-small-lib@^7.0.3": version "7.0.3" resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-7.0.3.tgz#2f9409e69d0d89f059b0b841e34bad972be47ddc" integrity sha512-UuA8ICz3BYWxbhJah8U5KxOUhA97AJbsNITp+Scy9aUXzbu2SqrsDTRmPU9ULCo3j4VgF53TBHXY4sdKC2adpw== @@ -144,10 +144,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^16.11.7": - version "16.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" - integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== +"@types/node@*", "@types/node@^16.11.9": + version "16.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.9.tgz#879be3ad7af29f4c1a5c433421bf99fab7047185" + integrity sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A== "@types/unist@^2.0.0": version "2.0.6" @@ -235,9 +235,9 @@ acorn-walk@^8.1.1: integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^8.4.1, acorn@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" - integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + version "8.6.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" + integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -629,113 +629,113 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-arm64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.14.tgz#c85083ece26be3d67e6c720e088968a98409e023" - integrity sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA== - -esbuild-darwin-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.14.tgz#8e4e237ad847cc54a1d3a5caee26a746b9f0b81f" - integrity sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ== - -esbuild-darwin-arm64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.14.tgz#b3b5ebd40b2cb06ee0f6fb342dd4bdcca54ad273" - integrity sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg== - -esbuild-freebsd-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.14.tgz#175ecb2fa8141428cf70ea2d5f4c27534bad53e0" - integrity sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw== - -esbuild-freebsd-arm64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.14.tgz#a7d64e41d1fa581f8db7775e5200f18e67d70c4d" - integrity sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q== - -esbuild-linux-32@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.14.tgz#14bdd4f6b6cfd35c65c835894651ba335c2117da" - integrity sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA== - -esbuild-linux-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.14.tgz#7fd56851b2982fdd0cd8447ee9858c2c5711708a" - integrity sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ== - -esbuild-linux-arm64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.14.tgz#a55634d70679ba509adeafd68eebb9fd1ec5af6c" - integrity sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ== - -esbuild-linux-arm@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.14.tgz#bb96a99677e608b31ff61f37564326d38e846ca2" - integrity sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg== - -esbuild-linux-mips64le@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.14.tgz#6a55362a8fd1e593dea2ecc41877beed8b8184b9" - integrity sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ== - -esbuild-linux-ppc64le@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.14.tgz#9e0048587ece0a7f184ab147f20d077098045e7f" - integrity sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw== - -esbuild-netbsd-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.14.tgz#dcab16a4bbcfa16e2e8535dadc5f64fdc891c63b" - integrity sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q== - -esbuild-openbsd-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.14.tgz#3c7453b155ebb68dc34d5aec3bd6505337bdda08" - integrity sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA== - -esbuild-sunos-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.14.tgz#85addf5fef6b5db154a955d4f2e88953359d75ce" - integrity sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w== - -esbuild-windows-32@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.14.tgz#f77f98f30a5c636c44db2428ecdf9bcbbaedb1a7" - integrity sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg== - -esbuild-windows-64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.14.tgz#bc778674c40d65150d12385e0f23eb3a0badbd0d" - integrity sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw== - -esbuild-windows-arm64@0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.14.tgz#91a8dad35ab2c4dd27cd83860742955b25a354d7" - integrity sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A== +esbuild-android-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" + integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg== + +esbuild-darwin-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72" + integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ== + +esbuild-darwin-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a" + integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ== + +esbuild-freebsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85" + integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA== + +esbuild-freebsd-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52" + integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ== + +esbuild-linux-32@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69" + integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g== + +esbuild-linux-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" + integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== + +esbuild-linux-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1" + integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA== + +esbuild-linux-arm@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe" + integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA== + +esbuild-linux-mips64le@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7" + integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg== + +esbuild-linux-ppc64le@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2" + integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ== + +esbuild-netbsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038" + integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w== + +esbuild-openbsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7" + integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g== + +esbuild-sunos-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4" + integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw== + +esbuild-windows-32@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7" + integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw== + +esbuild-windows-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294" + integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ== + +esbuild-windows-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" + integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== esbuild@^0.13.14: - version "0.13.14" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.14.tgz#98a3f7f42809abdc2b57c84565d0f713382dc1a5" - integrity sha512-xu4D+1ji9x53ocuomcY+KOrwAnWzhBu/wTEjpdgZ8I1c8i5vboYIeigMdzgY1UowYBKa2vZgVgUB32bu7gkxeg== + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" + integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== optionalDependencies: - esbuild-android-arm64 "0.13.14" - esbuild-darwin-64 "0.13.14" - esbuild-darwin-arm64 "0.13.14" - esbuild-freebsd-64 "0.13.14" - esbuild-freebsd-arm64 "0.13.14" - esbuild-linux-32 "0.13.14" - esbuild-linux-64 "0.13.14" - esbuild-linux-arm "0.13.14" - esbuild-linux-arm64 "0.13.14" - esbuild-linux-mips64le "0.13.14" - esbuild-linux-ppc64le "0.13.14" - esbuild-netbsd-64 "0.13.14" - esbuild-openbsd-64 "0.13.14" - esbuild-sunos-64 "0.13.14" - esbuild-windows-32 "0.13.14" - esbuild-windows-64 "0.13.14" - esbuild-windows-arm64 "0.13.14" + esbuild-android-arm64 "0.13.15" + esbuild-darwin-64 "0.13.15" + esbuild-darwin-arm64 "0.13.15" + esbuild-freebsd-64 "0.13.15" + esbuild-freebsd-arm64 "0.13.15" + esbuild-linux-32 "0.13.15" + esbuild-linux-64 "0.13.15" + esbuild-linux-arm "0.13.15" + esbuild-linux-arm64 "0.13.15" + esbuild-linux-mips64le "0.13.15" + esbuild-linux-ppc64le "0.13.15" + esbuild-netbsd-64 "0.13.15" + esbuild-openbsd-64 "0.13.15" + esbuild-sunos-64 "0.13.15" + esbuild-windows-32 "0.13.15" + esbuild-windows-64 "0.13.15" + esbuild-windows-arm64 "0.13.15" escalade@^3.1.1: version "3.1.1" @@ -1818,16 +1818,16 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== simple-git-hooks@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" integrity sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ== -size-limit@^7.0.0: +size-limit@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-7.0.3.tgz#1cc6e83d1f090c2008080a193337a9b84c98825d" integrity sha512-CDGzcnw8f34yZ8ckh0dZ0ZNVfbfwJoG1+DWHdn63GieS0dnAB7oUH6Rok3Xaz4Ba+RUAd+4kXoJyZWHw5KkArw== @@ -1978,9 +1978,9 @@ ts-node@^10.4.0: yn "3.1.1" tsconfig-paths@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" - integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + version "3.12.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" + integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" From a11803f9d02542cb0c2117286533f093897940d2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Nov 2021 00:35:57 +0100 Subject: [PATCH 2424/3047] Clean up code style --- lib/stringifier.d.ts | 67 +++++++++++++++----------------------------- lib/stringifier.js | 2 +- 2 files changed, 24 insertions(+), 45 deletions(-) diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index 7f5d8281c..a40c7a8ec 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -8,50 +8,29 @@ import { Rule, AtRule, Container -} from './postcss.js'; +} from './postcss.js' export class Stringifier { - public constructor(builder: Builder); - - public stringify(node: AnyNode, semicolon?: boolean): void; - - public document(node: Document): void; - - public root(node: Root): void; - - public comment(node: Comment): void; - - public decl(node: Declaration, semicolon?: boolean): void; - - public rule(node: Rule): void; - - public atrule(node: AtRule, semicolon?: boolean): void; - - public body(node: Container): void; - - public block(node: AnyNode, start: string): void; - - public raw(node: AnyNode, own: string|null, detect?: string): string; - - public rawSemicolon(root: Root): boolean|undefined; - - public rawEmptyBody(root: Root): string|undefined; - - public rawIndent(root: Root): string|undefined; - - public rawBeforeComment(root: Root, node: Comment): string|undefined; - - public rawBeforeDecl(root: Root, node: Declaration): string|undefined; - - public rawBeforeRule(root: Root): string|undefined; - - public rawBeforeClose(root: Root): string|undefined; - - public rawBeforeOpen(root: Root): string|undefined; - - public rawColon(root: Root): string|undefined; - - public beforeAfter(node: AnyNode, detect: 'before'|'after'): string; - - public rawValue(node: AnyNode, prop: string): string; + constructor(builder: Builder) + stringify(node: AnyNode, semicolon?: boolean): void + document(node: Document): void + root(node: Root): void + comment(node: Comment): void + decl(node: Declaration, semicolon?: boolean): void + rule(node: Rule): void + atrule(node: AtRule, semicolon?: boolean): void + body(node: Container): void + block(node: AnyNode, start: string): void + raw(node: AnyNode, own: string | null, detect?: string): string + rawSemicolon(root: Root): boolean | undefined + rawEmptyBody(root: Root): string | undefined + rawIndent(root: Root): string | undefined + rawBeforeComment(root: Root, node: Comment): string | undefined + rawBeforeDecl(root: Root, node: Declaration): string | undefined + rawBeforeRule(root: Root): string | undefined + rawBeforeClose(root: Root): string | undefined + rawBeforeOpen(root: Root): string | undefined + rawColon(root: Root): string | undefined + beforeAfter(node: AnyNode, detect: 'before' | 'after'): string + rawValue(node: AnyNode, prop: string): string } diff --git a/lib/stringifier.js b/lib/stringifier.js index 63cc9dd7d..4065c4752 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -350,4 +350,4 @@ class Stringifier { } module.exports = Stringifier -Stringifier.default = Stringifier; +Stringifier.default = Stringifier From 919790e5f98e0b7e911b2597bcbc8819b0626050 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Nov 2021 12:39:38 +0100 Subject: [PATCH 2425/3047] Clean up ESLint config --- package.json | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 8ba4e6271..b83ee724a 100755 --- a/package.json +++ b/package.json @@ -141,33 +141,14 @@ "overrides": [ { "files": [ - "*.test.js" - ], - "rules": { - "no-unused-expressions": "off", - "no-console": "off", - "func-style": "off" - } - }, - { - "files": [ - "*.test.ts" + "*.test.*" ], "rules": { "@typescript-eslint/no-unused-expressions": "off", + "no-unused-expressions": "off", "no-console": "off", "func-style": "off" } - }, - { - "files": [ - "*.test.*" - ], - "globals": { - "it": "readonly", - "expect": "readonly", - "beforeAll": "readonly" - } } ] }, From 38d02ecbaec676802937e8da54f9fbb3a22cfa66 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 21 Nov 2021 12:40:54 +0100 Subject: [PATCH 2426/3047] Update dependencies --- package.json | 2 +- yarn.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index b83ee724a..5dee6548f 100755 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "check-dts": "^0.6.4", "clean-publish": "^3.4.3", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.2.0", + "eslint": "^8.3.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-node": "^11.1.0", diff --git a/yarn.lock b/yarn.lock index d11bf1332..8ec994d34 100755 --- a/yarn.lock +++ b/yarn.lock @@ -234,7 +234,7 @@ acorn-walk@^8.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.4.1, acorn@^8.5.0: +acorn@^8.4.1, acorn@^8.6.0: version "8.6.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== @@ -833,10 +833,10 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978" - integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA== +eslint-scope@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" + integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -865,15 +865,15 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0: +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== -eslint@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.2.0.tgz#44d3fb506d0f866a506d97a0fc0e90ee6d06a815" - integrity sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw== +eslint@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.3.0.tgz#a3c2409507403c1c7f6c42926111d6cbefbc3e85" + integrity sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww== dependencies: "@eslint/eslintrc" "^1.0.4" "@humanwhocodes/config-array" "^0.6.0" @@ -884,10 +884,10 @@ eslint@^8.2.0: doctrine "^3.0.0" enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^6.0.0" + eslint-scope "^7.1.0" eslint-utils "^3.0.0" - eslint-visitor-keys "^3.0.0" - espree "^9.0.0" + eslint-visitor-keys "^3.1.0" + espree "^9.1.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -914,14 +914,14 @@ eslint@^8.2.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" - integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ== +espree@^9.0.0, espree@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.1.0.tgz#ba9d3c9b34eeae205724124e31de4543d59fbf74" + integrity sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ== dependencies: - acorn "^8.5.0" + acorn "^8.6.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.0.0" + eslint-visitor-keys "^3.1.0" esquery@^1.4.0: version "1.4.0" From 00363e8ff02cb2e52b2138ad109abe38834e04f9 Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Sun, 21 Nov 2021 11:16:37 -0800 Subject: [PATCH 2427/3047] fix: make test script work on windows --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5dee6548f..7173e5f10 100755 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ ], "scripts": { "test": "c8 yarn unit && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit", - "unit": "uvu -r ts-node/register/transpile-only test '\\.test\\.(ts|js)$'" + "unit": "uvu -r ts-node/register/transpile-only test \"\\.test\\.(ts|js)$\"" }, "funding": { "type": "opencollective", From c6e84a9e332b7d739d5f19205e18a3761fb50729 Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Sun, 21 Nov 2021 11:17:39 -0800 Subject: [PATCH 2428/3047] ci: use unit script in windows workflow --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cc8196953..e44d19be4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,7 +48,7 @@ jobs: runs-on: windows-latest name: Windows Quick env: - YARN_GPG: "no" + YARN_GPG: 'no' steps: - name: Checkout the repository uses: actions/checkout@v2 @@ -60,6 +60,6 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile - name: Run unit tests - run: yarn uvu -r ts-node/register/transpile-only test "^.*test.([tj]s)" + run: yarn unit env: FORCE_COLOR: 2 From aed9a9b9ee67c05008825638d6ee0b4478a1d09b Mon Sep 17 00:00:00 2001 From: Adaline Valentina Simonian Date: Sun, 21 Nov 2021 11:24:36 -0800 Subject: [PATCH 2429/3047] test: add missing test.run() --- test/warning.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/warning.test.ts b/test/warning.test.ts index a02d60220..524a337d8 100644 --- a/test/warning.test.ts +++ b/test/warning.test.ts @@ -166,3 +166,5 @@ test('always returns valid ranges', () => { is(warning.endLine, 1) is(warning.endColumn, 4) }) + +test.run() From 21c480d10367a9319c4ed612cfb38970feec02b0 Mon Sep 17 00:00:00 2001 From: Hasnath Abdullah <72639949+hasnath1@users.noreply.github.com> Date: Tue, 23 Nov 2021 20:20:03 +0600 Subject: [PATCH 2430/3047] Update README.md I have used the extension you recommended but it is horrible . When I use it in .css file , emmet sugestions don't work at all . So I changed the link of the extension . I am using this https://marketplace.visualstudio.com/items?itemName=mhmadhamster.postcss-language extension for postcss and It is working great . It also supports .css files and enables emmet . --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91e75653f..ac8dbc507 100644 --- a/README.md +++ b/README.md @@ -479,7 +479,7 @@ module.exports = { * [`csstools.postcss`] adds support for PostCSS, `postcss-preset-env` and CSS Modules. -[`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss +[`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=mhmadhamster.postcss-language ### Atom From 71f41fbf96a5080488ff964eefacfccc778d4188 Mon Sep 17 00:00:00 2001 From: Reinier Kaper Date: Tue, 23 Nov 2021 10:20:56 -0500 Subject: [PATCH 2431/3047] docs: :memo: Add plugin to docs --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 3f7912859..6f6090622 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -483,6 +483,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-viewport-height-correction`] solves the popular problem when `100vh` doesn’t fit the mobile browser screen. * [`postcss-unit-processor`] flexible processing of CSS units. +* [`postcss-rem-to-px`] converts `rem` values to `px` values. [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -876,5 +877,6 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-icon-blender`]: https://github.com/icon-blender/postcss-icon-blender [`postcss-variable-compress`]: https://github.com/navanshu/postcss-variable-compress [`postcss-unit-processor`]: https://github.com/hex-ci/postcss-unit-processor +[`postcss-rem-to-px`]: https://github.com/TheDutchCoder/postcss-rem-to-px [`postcss-prefix-hover`]: https://github.com/larsmunkholm/postcss-prefix-hover [`postcss-resolve-urls`]: https://github.com/bognarlaszlo/postcss-resolve-urls From a0547765cd57781c4ede373efc032b8aab43602d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 24 Nov 2021 00:46:34 +0100 Subject: [PATCH 2432/3047] Update dependencies --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7173e5f10..9a6142f03 100755 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@logux/eslint-config": "^46.1.0", "@size-limit/preset-small-lib": "^7.0.3", "@types/fs-extra": "^9.0.13", - "@types/node": "^16.11.9", + "@types/node": "^16.11.10", "@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/parser": "^5.4.0", "c8": "^7.10.0", diff --git a/yarn.lock b/yarn.lock index 8ec994d34..defd3a179 100755 --- a/yarn.lock +++ b/yarn.lock @@ -144,10 +144,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^16.11.9": - version "16.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.9.tgz#879be3ad7af29f4c1a5c433421bf99fab7047185" - integrity sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A== +"@types/node@*", "@types/node@^16.11.10": + version "16.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" + integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== "@types/unist@^2.0.0": version "2.0.6" From 698556b5da8676db9658a4e62567da3bbf9eaf90 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 24 Nov 2021 01:11:56 +0100 Subject: [PATCH 2433/3047] Show both VS Code plugins --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ac8dbc507..06e5bdd5d 100644 --- a/README.md +++ b/README.md @@ -478,8 +478,10 @@ module.exports = { * [`csstools.postcss`] adds support for PostCSS, `postcss-preset-env` and CSS Modules. +* [`mhmadhamster.postcss-language`] is a more modern alternative. -[`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=mhmadhamster.postcss-language +[`mhmadhamster.postcss-language`]: https://marketplace.visualstudio.com/items?itemName=mhmadhamster.postcss-language +[`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss ### Atom From eef40419a87dea735965f7c36f5ad0e92c0bfb24 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 24 Nov 2021 01:15:14 +0100 Subject: [PATCH 2434/3047] Remove old plugin --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 06e5bdd5d..052241fe9 100644 --- a/README.md +++ b/README.md @@ -476,12 +476,9 @@ module.exports = { ### VS Code -* [`csstools.postcss`] adds support for PostCSS, `postcss-preset-env` - and CSS Modules. -* [`mhmadhamster.postcss-language`] is a more modern alternative. +* [`mhmadhamster.postcss-language`] adds PostCSS and SugarSS support. [`mhmadhamster.postcss-language`]: https://marketplace.visualstudio.com/items?itemName=mhmadhamster.postcss-language -[`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss ### Atom From e72bf87004a8782f5a46a2c7b40c470c0bdd5705 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 24 Nov 2021 13:39:06 +0100 Subject: [PATCH 2435/3047] Release 8.4 version --- CHANGELOG.md | 11 +++++++++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 357bf96dd..18fc3ab2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4 “President Camio” +* Added ranges for errors and warnings (by Adaline Valentina Simonian). +* Added `Stringifier` types (by James Garbutt). +* Added `Processor` types. +* Removed `PostCSS does nothing` warning by lazy parser (Bogdan Dolin). +* Fixed `Node#walkRules()` types (by Aleks Hudochenkov). +* Fixed types `Root` and `Document` in result values (by James Garbutt). +* Reduced npm install size by 0.5 MB. +* Moved tests from Jest to `uvu` (by Andrey Kim). +* Fixed docs (by Paul Shryock). + ## 8.3.11 * Remove debugging code. diff --git a/lib/processor.js b/lib/processor.js index 948e09438..80fc36a0b 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let NoWorkResult = require('./no-work-result') class Processor { constructor(plugins = []) { - this.version = '8.3.11' + this.version = '8.4.0' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 9a6142f03..d96308ea2 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.3.11", + "version": "8.4.0", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 47b5d62fdd3a6847ad24014e9f437b0824586f21 Mon Sep 17 00:00:00 2001 From: 43081j <43081j@users.noreply.github.com> Date: Wed, 24 Nov 2021 17:44:28 +0000 Subject: [PATCH 2436/3047] fix: export stringifier as a default --- lib/stringifier.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index a40c7a8ec..23289dfb5 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -10,7 +10,8 @@ import { Container } from './postcss.js' -export class Stringifier { +export default class Stringifier { + builder: Builder constructor(builder: Builder) stringify(node: AnyNode, semicolon?: boolean): void document(node: Document): void From 5134979627d04e825eff5a741499339c0d2cfa37 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 24 Nov 2021 23:05:00 +0100 Subject: [PATCH 2437/3047] Release 8.4.1 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18fc3ab2e..ddfe106f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.1 +* Fixed `Stringifier` types (by James Garbutt). + ## 8.4 “President Camio” * Added ranges for errors and warnings (by Adaline Valentina Simonian). * Added `Stringifier` types (by James Garbutt). diff --git a/lib/processor.js b/lib/processor.js index 80fc36a0b..adf7ba577 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let NoWorkResult = require('./no-work-result') class Processor { constructor(plugins = []) { - this.version = '8.4.0' + this.version = '8.4.1' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index d96308ea2..b7f7fa5a7 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.0", + "version": "8.4.1", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 7d0a99279ffb2b01f764a993eb15f7a0f5e1795a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 13:58:16 +0100 Subject: [PATCH 2438/3047] Fix NoWorkResult tests --- test/no-work-result.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index 5e924a38f..affeb3016 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -99,7 +99,6 @@ test('executes on finally callback', () => { let mockCallbackHaveBeenCalled = 0 let mockCallback = (): void => { mockCallbackHaveBeenCalled++ - } return new NoWorkResult(processor, 'a {}', {}) .finally(mockCallback) @@ -112,3 +111,5 @@ test('prints its object type', () => { let result = new NoWorkResult(processor, 'a {}', {}) is(Object.prototype.toString.call(result), '[object NoWorkResult]') }) + +test.run() From 04e6ecdce99c79bb78d2db365a6bbcd015befa70 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 14:31:34 +0100 Subject: [PATCH 2439/3047] Clean up tests --- package.json | 1 + test/no-work-result.test.ts | 72 ++++++++++------------ test/postcss.test.ts | 89 +++++++++++---------------- test/processor.test.ts | 119 +++++++++++------------------------- yarn.lock | 5 ++ 5 files changed, 108 insertions(+), 178 deletions(-) diff --git a/package.json b/package.json index b7f7fa5a7..ba564c177 100755 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "eslint-plugin-promise": "^5.1.1", "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", + "nanospy": "^0.4.0", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.3", diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index affeb3016..ec879889e 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -1,6 +1,7 @@ +import { is, type, equal, throws, not, instance } from 'uvu/assert' import mozilla from 'source-map-js' import { test } from 'uvu' -import { is, type, equal, throws, not, instance } from 'uvu/assert' +import { spy } from 'nanospy' import NoWorkResult from '../lib/no-work-result.js' import { CssSyntaxError } from '../lib/postcss.js' @@ -9,32 +10,32 @@ import Processor from '../lib/processor.js' let processor = new Processor() test('contains AST on root access', () => { - let result = new NoWorkResult(processor, 'a {}', {}) + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) is(result.root.nodes.length, 1) }) test('has async() method', async () => { - let noWorkResult = new NoWorkResult(processor, 'a {}', {}) + let noWorkResult = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) let result1 = await noWorkResult let result2 = await noWorkResult equal(result1, result2) }) test('has sync() method', () => { - let result = new NoWorkResult(processor, 'a {}', {}).sync() + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }).sync() is(result.root.nodes.length, 1) }) test('throws error on sync()', () => { - let noWorkResult = new NoWorkResult(processor, 'a {', {}) + let noWorkResult = new NoWorkResult(processor, 'a {', { from: '/a.css' }) - noWorkResult.root // process AST + noWorkResult.root - throws(() => noWorkResult.sync()) + throws(() => noWorkResult.sync(), 'AAA') }) test('returns cached root on second access', async () => { - let result = new NoWorkResult(processor, 'a {}', {}) + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) result.root @@ -43,72 +44,63 @@ test('returns cached root on second access', async () => { }) test('contains css syntax errors', () => { - let result = new NoWorkResult(processor, 'a {', {}) + let result = new NoWorkResult(processor, 'a {', { from: '/a.css' }) result.root - // @ts-ignore + // @ts-expect-error instance(result.error, CssSyntaxError) }) test('contains css', () => { - let result = new NoWorkResult(processor, 'a {}', {}) + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) is(result.css, 'a {}') }) test('stringifies css', () => { - let result = new NoWorkResult(processor, 'a {}', {}) + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) equal(`${result}`, result.css) }) test('has content alias for css', () => { - let result = new NoWorkResult(processor, 'a {}', {}) + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) is(result.content, 'a {}') }) test('has map only if necessary', () => { - let result1 = new NoWorkResult(processor, '', {}) + let result1 = new NoWorkResult(processor, '', { from: '/a.css' }) type(result1.map, 'undefined') - let result2 = new NoWorkResult(processor, '', {}) + let result2 = new NoWorkResult(processor, '', { from: '/a.css' }) type(result2.map, 'undefined') - let result3 = new NoWorkResult(processor, '', { map: { inline: false } }) + let result3 = new NoWorkResult(processor, '', { + from: '/a.css', + map: { inline: false } + }) is(result3.map instanceof mozilla.SourceMapGenerator, true) }) -test('contains processor', () => { - let result = new NoWorkResult(processor, 'a {}', { to: 'a.css' }) +test('contains simple properties', () => { + let result = new NoWorkResult(processor, 'a {}', { + from: '/a.css', + to: 'a.css' + }) instance(result.processor, Processor) -}) - -test('contains options', () => { - let result = new NoWorkResult(processor, 'a {}', { to: 'a.css' }) - equal(result.opts, { to: 'a.css' }) -}) - -test('contains warnings', () => { - let result = new NoWorkResult(processor, 'a {}', {}) - equal(result.warnings(), []) -}) - -test('contains messages', () => { - let result = new NoWorkResult(processor, 'a {}', {}) + equal(result.opts, { from: '/a.css', to: 'a.css' }) equal(result.messages, []) + equal(result.warnings(), []) }) test('executes on finally callback', () => { - let mockCallbackHaveBeenCalled = 0 - let mockCallback = (): void => { - mockCallbackHaveBeenCalled++ - } - return new NoWorkResult(processor, 'a {}', {}) - .finally(mockCallback) + let cb = spy() + return new NoWorkResult(processor, 'a {}', { from: '/a.css' }) + .finally(cb) .then(() => { - is(mockCallbackHaveBeenCalled, 1) + equal(cb.callCount, 1) }) }) test('prints its object type', () => { - let result = new NoWorkResult(processor, 'a {}', {}) + let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) is(Object.prototype.toString.call(result), '[object NoWorkResult]') }) diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 517ba57d4..47043fa69 100755 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -1,10 +1,13 @@ -import { test, suite } from 'uvu' import { is, type, equal, match, throws } from 'uvu/assert' +import { spyOn, restoreAll } from 'nanospy' +import { test } from 'uvu' import postcss, { Root, PluginCreator } from '../lib/postcss.js' import Processor from '../lib/processor.js' -const postcssSuite = suite('postcss suite') +test.after.each(() => { + restoreAll() +}) test('creates plugins list', () => { let processor = postcss() @@ -42,26 +45,6 @@ test('takes plugins from a a plugin returning a processor', () => { equal(postcss([other, c]).plugins, [a, b, c]) }) -test('creates a shortcut to process css', async () => { - let plugin = (postcss as any).plugin('test', (str?: string) => { - return (root: Root) => { - root.walkDecls(i => { - i.value = str ?? 'bar' - }) - } - }) - - let result1 = plugin.process('a{value:foo}') - is(result1.css, 'a{value:bar}') - - let result2 = plugin.process('a{value:foo}', {}, 'baz') - is(result2.css, 'a{value:baz}') - - let result = await plugin.process('a{value:foo}', { from: 'a' }, 'baz') - equal(result.opts, { from: 'a' }) - is(result.css, 'a{value:baz}') -}) - test('contains parser', () => { is(postcss.parse('').type, 'root') }) @@ -129,32 +112,8 @@ test('works with null', () => { }, /PostCSS received null instead of CSS string/) }) -test.run() - -let _Warn: typeof global.console.warn -let _WarnArguments: any -let _WarnHaveBeenCalled: number - -postcssSuite.before(() => { - _Warn = global.console.warn - _WarnHaveBeenCalled = 0 - _WarnArguments = '' - global.console.warn = (...args) => { - _WarnArguments = args[0] - _WarnHaveBeenCalled++ - } -}) - -postcssSuite.after.each(() => { - _WarnHaveBeenCalled = 0 - _WarnArguments = '' -}) - -postcssSuite.after(() => { - global.console.warn = _Warn -}) - -postcssSuite.only('creates plugin', () => { +test('has deprecated method to creat plugins', () => { + let warn = spyOn(console, 'warn', () => {}) let plugin = (postcss as any).plugin('test', (filter?: string) => { return (root: Root) => { root.walkDecls(filter ?? 'two', i => { @@ -162,8 +121,8 @@ postcssSuite.only('creates plugin', () => { }) } }) - is(_WarnHaveBeenCalled, 1) - match(_WarnArguments, /test/) + equal(warn.callCount, 1) + match(warn.calls[0][0], /postcss\.plugin was deprecated/) let func1: any = postcss(plugin).plugins[0] is(func1.postcssPlugin, 'test') @@ -180,15 +139,37 @@ postcssSuite.only('creates plugin', () => { is(result2.css, 'a{ one: 1 }') }) -postcssSuite.only('does not call plugin constructor', () => { - global.console.warn +test('creates a shortcut to process css', async () => { + let warn = spyOn(console, 'warn', () => {}) + let plugin = (postcss as any).plugin('test', (str?: string) => { + return (root: Root) => { + root.walkDecls(i => { + i.value = str ?? 'bar' + }) + } + }) + equal(warn.callCount, 1) + + let result1 = plugin.process('a{value:foo}') + is(result1.css, 'a{value:bar}') + + let result2 = plugin.process('a{value:foo}', {}, 'baz') + is(result2.css, 'a{value:baz}') + + let result = await plugin.process('a{value:foo}', { from: 'a' }, 'baz') + equal(result.opts, { from: 'a' }) + is(result.css, 'a{value:baz}') +}) + +test('does not call plugin constructor', () => { + let warn = spyOn(console, 'warn', () => {}) let calls = 0 let plugin = (postcss as any).plugin('test', () => { calls += 1 return () => {} }) is(calls, 0) - is(_WarnHaveBeenCalled, 1) + equal(warn.callCount, 1) postcss(plugin).process('a{}') is(calls, 1) @@ -197,4 +178,4 @@ postcssSuite.only('does not call plugin constructor', () => { is(calls, 2) }) -postcssSuite.run() +test.run() diff --git a/test/processor.test.ts b/test/processor.test.ts index 849f099eb..e3afb6c61 100755 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -1,7 +1,8 @@ +import { is, type, equal, match, throws, not, instance } from 'uvu/assert' import { resolve as pathResolve } from 'path' +import { spyOn, restoreAll } from 'nanospy' import { delay } from 'nanodelay' import { test } from 'uvu' -import { is, type, equal, match, throws, not, instance } from 'uvu/assert' import postcss, { Plugin, @@ -20,42 +21,8 @@ import NoWorkResult from '../lib/no-work-result.js' import Processor from '../lib/processor.js' import Rule from '../lib/rule.js' -let _ConsoleWarn: typeof global.console.warn -let _ConsoleError: typeof global.console.error -let _ConsoleWarnArguments: any -let _ConsoleErrorArguments: any -let _ConsoleWarnHaveBeenCalled: number -let _ConsoleErrorHaveBeenCalled: number - -test.before(() => { - _ConsoleWarn = global.console.warn - _ConsoleError = global.console.error - _ConsoleWarnArguments = '' - _ConsoleErrorArguments = '' - _ConsoleWarnHaveBeenCalled = 0 - _ConsoleErrorHaveBeenCalled = 0 - - global.console.warn = (...args) => { - _ConsoleWarnArguments = args[0] - _ConsoleWarnHaveBeenCalled++ - } - - global.console.error = (...args) => { - _ConsoleErrorArguments = args[0] - _ConsoleErrorHaveBeenCalled++ - } -}) - -test.before.each(() => { - _ConsoleWarnArguments = '' - _ConsoleErrorArguments = '' - _ConsoleWarnHaveBeenCalled = 0 - _ConsoleErrorHaveBeenCalled = 0 -}) - -test.after(() => { - global.console.warn = _ConsoleWarn - global.console.error = _ConsoleError +test.after.each(() => { + restoreAll() }) function prs(): Root { @@ -415,12 +382,15 @@ test('remembers errors', async () => { }) test('checks plugin compatibility', () => { + let error = spyOn(console, 'error', () => {}) + let warn = spyOn(console, 'warn', () => {}) + let plugin = (postcss as any).plugin('test', () => { return () => { throw new Error('Er') } }) - is(_ConsoleWarnHaveBeenCalled, 1) + equal(warn.callCount, 1) let func = plugin() func.postcssVersion = '2.1.5' @@ -433,28 +403,29 @@ test('checks plugin compatibility', () => { throws(() => { processBy('1.0.0') }, 'Er') - is(_ConsoleErrorHaveBeenCalled, 1) - is( - _ConsoleErrorArguments, - 'Unknown error from PostCSS plugin. ' + - 'Your current PostCSS version is 1.0.0, but test uses 2.1.5. ' + - 'Perhaps this is the source of the error below.' - ) + equal(error.callCount, 1) + equal(error.calls, [ + [ + 'Unknown error from PostCSS plugin. ' + + 'Your current PostCSS version is 1.0.0, but test uses 2.1.5. ' + + 'Perhaps this is the source of the error below.' + ] + ]) throws(() => { processBy('3.0.0') }, 'Er') - is(_ConsoleErrorHaveBeenCalled, 2) + equal(error.callCount, 2) throws(() => { processBy('2.0.0') }, 'Er') - is(_ConsoleErrorHaveBeenCalled, 3) + equal(error.callCount, 3) throws(() => { processBy('2.1.0') }, 'Er') - is(_ConsoleErrorHaveBeenCalled, 3) + equal(error.callCount, 3) }) test('sets last plugin to result', async () => { @@ -473,7 +444,6 @@ test('sets last plugin to result', async () => { test('uses custom parsers', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { parser: prs, from: undefined }) - not.ok(_ConsoleWarnHaveBeenCalled) is(result.css, 'ok') }) @@ -487,7 +457,6 @@ test('uses custom parsers from object', async () => { test('uses custom stringifier', async () => { let processor = new Processor([]) let result = await processor.process('a{}', { stringifier: str, from: 'a' }) - not.ok(_ConsoleWarnHaveBeenCalled) is(result.css, '!') }) @@ -495,7 +464,6 @@ test('uses custom stringifier from object', async () => { let processor = new Processor([]) let syntax = { parse: prs, stringify: str } let result = await processor.process('', { stringifier: syntax, from: 'a' }) - not.ok(_ConsoleWarnHaveBeenCalled) is(result.css, '!') }) @@ -515,7 +483,6 @@ test('uses custom syntax', async () => { syntax: { parse: prs, stringify: str }, from: undefined }) - not.ok(_ConsoleWarnHaveBeenCalled) is(result.css, 'ok!') }) @@ -534,18 +501,20 @@ test('throws on syntax as plugin', () => { }) test('warns about missed from', async () => { + let warn = spyOn(console, 'warn', () => {}) let processor = new Processor([() => {}]) processor.process('a{}').css - not.ok(_ConsoleWarnHaveBeenCalled) + equal(warn.calls, []) await processor.process('a{}') - is.not( - _ConsoleWarnArguments, - 'Without `from` option PostCSS could generate wrong source map ' + - 'and will not find Browserslist config. Set it to CSS file path ' + - 'or to `undefined` to prevent this warning.' - ) + equal(warn.calls, [ + [ + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ] + ]) }) test('returns NoWorkResult object', async () => { @@ -554,35 +523,15 @@ test('returns NoWorkResult object', async () => { instance(noWorkResult, NoWorkResult) }) -test('parses CSS only on root access when no plugins are specified', async () => { +test('without plugins parses CSS only on root access', async () => { let noWorkResult = new Processor().process('a{}') let result = await noWorkResult - // @ts-ignore + // @ts-expect-error type(noWorkResult._root, 'undefined') - is(result.root.nodes.length , 1) - // @ts-ignore + is(result.root.nodes.length, 1) + // @ts-expect-error not.type(noWorkResult._root, 'undefined') - is(noWorkResult.root.nodes.length , 1) -}) - -// @NOTE: couldn't spy on console.warn because warnOnce was triggered before -// in other tests. Spying on async() instead -test('warns about missed from with empty processor', async () => { - let asyncHaveBeenCalled = 0 - let _NoWorkResultAsync = NoWorkResult.prototype.async - NoWorkResult.prototype.async = () => { - asyncHaveBeenCalled++ - return Promise.resolve(r) - } - - let processor = new Processor() - let r = new Result(processor, new Root({}), {}) - - processor.process('a{}').css - - await processor.process('a{}') - is(asyncHaveBeenCalled, 1) - NoWorkResult.prototype.async = _NoWorkResultAsync + is(noWorkResult.root.nodes.length, 1) }) test('catches error with empty processor', async () => { @@ -600,11 +549,13 @@ test('catches error with empty processor', async () => { }) test('supports plugins returning processors', () => { + let warn = spyOn(console, 'warn', () => {}) let a = (): void => {} let processor = new Processor() let other: any = (postcss as any).plugin('test', () => { return new Processor([a]) }) + equal(warn.callCount, 1) processor.use(other) equal(processor.plugins, [a]) }) diff --git a/yarn.lock b/yarn.lock index defd3a179..3479fd05b 100755 --- a/yarn.lock +++ b/yarn.lock @@ -1530,6 +1530,11 @@ nanospinner@^0.4.0: dependencies: picocolors "^1.0.0" +nanospy@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/nanospy/-/nanospy-0.4.0.tgz#d2b6e1f8590c82aac25f43c6dba2a16ad7f49514" + integrity sha512-PUdss1inwE0/ti+X9FKuEBLLWQusaHnLBuwYn0cjJNM446DafMS3tbTWV9C9T/NEnD+BPL0zHdnNF/FWvHelvw== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" From 096a0a3ea106597067f42dbec7b2b5f3c747bad7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 16:42:24 +0100 Subject: [PATCH 2440/3047] Hack to fix source map in NoWorkResult --- lib/map-generator.js | 112 +++++++++++++++++------------------- test/no-work-result.test.ts | 26 ++++++++- 2 files changed, 77 insertions(+), 61 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index e329f15c2..c1947badc 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -4,6 +4,8 @@ let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { dirname, resolve, relative, sep } = require('path') let { pathToFileURL } = require('url') +let Input = require('./input') + let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(dirname && resolve && relative && sep) @@ -26,14 +28,19 @@ class MapGenerator { previous() { if (!this.previousMaps) { this.previousMaps = [] - this.root.walk(node => { - if (node.source && node.source.input.map) { - let map = node.source.input.map - if (!this.previousMaps.includes(map)) { - this.previousMaps.push(map) + if (this.root) { + this.root.walk(node => { + if (node.source && node.source.input.map) { + let map = node.source.input.map + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map) + } } - } - }) + }) + } else { + let input = new Input(this.css, this.opts) + if (input.map) this.previousMaps.push(input.map) + } } return this.previousMaps @@ -68,9 +75,7 @@ class MapGenerator { clearAnnotation() { if (this.mapOpts.annotation === false) return - if (!this.root && typeof this.css === 'string') { - this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') - } else { + if (this.root) { let node for (let i = this.root.nodes.length - 1; i >= 0; i--) { node = this.root.nodes[i] @@ -79,23 +84,32 @@ class MapGenerator { this.root.removeChild(i) } } + } else { + this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') } } setSourcesContent() { let already = {} - this.root.walk(node => { - if (node.source) { - let from = node.source.input.from - if (from && !already[from]) { - already[from] = true - this.map.setSourceContent( - this.toUrl(this.path(from)), - node.source.input.css - ) + if (this.root) { + this.root.walk(node => { + if (node.source) { + let from = node.source.input.from + if (from && !already[from]) { + already[from] = true + this.map.setSourceContent( + this.toUrl(this.path(from)), + node.source.input.css + ) + } } - } - }) + }) + } else { + let from = this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '' + this.map.setSourceContent(from, this.css) + } } applyPrevMaps() { @@ -170,41 +184,26 @@ class MapGenerator { } generateMap() { - this.generateString() - if (this.isSourcesContent()) this.setSourcesContent() - if (this.previous().length > 0) this.applyPrevMaps() - if (this.isAnnotation()) this.addAnnotation() - - if (this.isInline()) { - return [this.css] - } - return [this.css, this.map] - } - - generateSimpleMap() { - this.map = new SourceMapGenerator({ file: this.outputFile() }) - this.previousMaps = [] - - let source - if (this.opts.from) { - source = this.toUrl(this.opts.from) + if (this.root) { + this.generateString() } else { - source = '' + this.map = new SourceMapGenerator({ file: this.outputFile() }) + this.map.addMapping({ + source: this.opts.from ? this.toUrl(this.opts.from) : '', + generated: { line: 1, column: 0 }, + original: { line: 1, column: 0 } + }) } - this.map.addMapping({ - source, - generated: { line: 1, column: 0 }, - original: { line: 1, column: 0 } - }) - + if (this.isSourcesContent()) this.setSourcesContent() + if (this.previous().length > 0) this.applyPrevMaps() if (this.isAnnotation()) this.addAnnotation() if (this.isInline()) { return [this.css] + } else { + return [this.css, this.map] } - - return [this.cssString, this.map] } path(file) { @@ -317,20 +316,15 @@ class MapGenerator { generate() { this.clearAnnotation() - - if (pathAvailable && sourceMapAvailable && this.isMap() && !this.root) { - return this.generateSimpleMap() - } - if (pathAvailable && sourceMapAvailable && this.isMap()) { return this.generateMap() + } else { + let result = '' + this.stringify(this.root, i => { + result += i + }) + return [result] } - - let result = '' - this.stringify(this.root, i => { - result += i - }) - return [result] } } diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index ec879889e..49c1c0525 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -1,10 +1,10 @@ import { is, type, equal, throws, not, instance } from 'uvu/assert' -import mozilla from 'source-map-js' import { test } from 'uvu' +import mozilla from 'source-map-js' import { spy } from 'nanospy' +import postcss, { CssSyntaxError } from '../lib/postcss.js' import NoWorkResult from '../lib/no-work-result.js' -import { CssSyntaxError } from '../lib/postcss.js' import Processor from '../lib/processor.js' let processor = new Processor() @@ -79,6 +79,28 @@ test('has map only if necessary', () => { is(result3.map instanceof mozilla.SourceMapGenerator, true) }) +test('supports previous map', () => { + let result1 = postcss().process('a{}', { + from: 'a.css', + to: 'b.css', + map: { + sourcesContent: true, + inline: false + } + }) + equal(result1.map.toJSON().sourcesContent, ['a{}']) + + let result2 = postcss().process(result1.css, { + from: 'b.css', + to: 'c.css', + map: { + prev: result1.map + } + }) + equal(result2.map.toJSON().sources, ['a.css']) + equal(result2.map.toJSON().sourcesContent, ['a{}']) +}) + test('contains simple properties', () => { let result = new NoWorkResult(processor, 'a {}', { from: '/a.css', From bcab22d544e7e3ecc489d157887cf3525d8e8c6b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 18:52:25 +0100 Subject: [PATCH 2441/3047] Clean up code --- lib/map-generator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index c1947badc..a52981a19 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -176,11 +176,11 @@ class MapGenerator { outputFile() { if (this.opts.to) { return this.path(this.opts.to) - } - if (this.opts.from) { + } else if (this.opts.from) { return this.path(this.opts.from) + } else { + return 'to.css' } - return 'to.css' } generateMap() { From 6f0ad1eaf1008e5fe0dc5a1f38fc76c53317f5b3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 18:53:16 +0100 Subject: [PATCH 2442/3047] Clean up test --- test/map.test.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/map.test.ts b/test/map.test.ts index 3af446757..20ed12982 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -639,21 +639,21 @@ test('generates correct inline map with empty processor', () => { map: true }) - match(result.css, + match(result.css, /a {} \/\*hello world\*\/\n\/\*# sourceMappingURL=/ ) }) -test('generates correct inline map with empty processor and multiple comments', () => { - let css = 'a {}/*# sourceMappingURL=a.css.map */\n/*# sourceMappingURL=b.css.map */\nb {}\n/*# sourceMappingURL=c.css.map */' +test('generates correct inline map and multiple comments', () => { + let css = + 'a {}/*# sourceMappingURL=a.css.map */\n' + + '/*# sourceMappingURL=b.css.map */\nb {}\n/*# sourceMappingURL=c.css.map */' let processor = new Processor() let result = postcss(processor).process(css, { map: true }) - match(result.css, - /a {}\nb {}\n\/\*# sourceMappingURL=/ - ) + match(result.css, /a {}\nb {}\n\/\*# sourceMappingURL=/) }) test('generates correct sources with empty processor', () => { From 72355df904495ebe2caad6063c9028889a7b6764 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:21:39 +0100 Subject: [PATCH 2443/3047] Clean up tests --- test/map.test.ts | 58 ++++++++++++++++++++++++++++--------- test/no-work-result.test.ts | 24 +-------------- test/processor.test.ts | 5 ++-- 3 files changed, 47 insertions(+), 40 deletions(-) diff --git a/test/map.test.ts b/test/map.test.ts index 20ed12982..c63eaf1ff 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -1,13 +1,12 @@ import { SourceMapConsumer, SourceMapGenerator } from 'source-map-js' import { removeSync, outputFileSync } from 'fs-extra' +import { is, type, equal, match } from 'uvu/assert' import { join, resolve, parse } from 'path' import { existsSync } from 'fs' import { test } from 'uvu' -import { is, type, equal, match } from 'uvu/assert' import postcss, { SourceMap, Rule, Root } from '../lib/postcss.js' import PreviousMap from '../lib/previous-map.js' -import Processor from '../lib/processor.js' function consumer(map: SourceMap): any { return (SourceMapConsumer as any).fromSourceMap(map) @@ -634,22 +633,19 @@ test('uses URLs in sources', () => { }) test('generates correct inline map with empty processor', () => { - let processor = new Processor() - let result = postcss(processor).process('a {} /*hello world*/', { + let result = postcss().process('a {} /*hello world*/', { map: true }) - match(result.css, - /a {} \/\*hello world\*\/\n\/\*# sourceMappingURL=/ - ) + match(result.css, /a {} \/\*hello world\*\/\n\/\*# sourceMappingURL=/) }) test('generates correct inline map and multiple comments', () => { let css = 'a {}/*# sourceMappingURL=a.css.map */\n' + - '/*# sourceMappingURL=b.css.map */\nb {}\n/*# sourceMappingURL=c.css.map */' - let processor = new Processor() - let result = postcss(processor).process(css, { + '/*# sourceMappingURL=b.css.map */\n' + + 'b {}\n/*# sourceMappingURL=c.css.map */' + let result = postcss().process(css, { map: true }) @@ -657,8 +653,7 @@ test('generates correct inline map and multiple comments', () => { }) test('generates correct sources with empty processor', () => { - let processor = new Processor() - let result = postcss(processor).process('a {} /*hello world*/', { + let result = postcss().process('a {} /*hello world*/', { from: 'a.css', to: 'b.css', map: { inline: false } @@ -668,8 +663,7 @@ test('generates correct sources with empty processor', () => { }) test('generates map object with empty processor', () => { - let processor = new Processor() - let result = postcss(processor).process('a {} /*hello world*/', { + let result = postcss().process('a {} /*hello world*/', { from: 'a.css', to: 'b.css', map: true @@ -685,4 +679,40 @@ test('generates map object with empty processor', () => { }) }) +test('supports previous map with empty processor', () => { + let result1 = postcss().process('a{}', { + from: 'a.css', + to: 'b.css', + map: { + sourcesContent: true, + inline: false + } + }) + equal(result1.map.toJSON().sourcesContent, ['a{}']) + + let result2 = postcss().process(result1.css, { + from: 'b.css', + to: 'c.css', + map: { + prev: result1.map + } + }) + equal(result2.map.toJSON().sources, ['a.css']) + equal(result2.map.toJSON().sourcesContent, ['a{}']) +}) + +test('supports previous inline map with empty processor', () => { + let result1 = postcss().process('a{}', { + from: '/a.css', + to: '/b.css', + map: true + }) + let result2 = postcss().process(result1.css, { + from: '/b.css', + to: '/c.css' + }) + let root3 = postcss.parse(result2.css, { from: '/c.css' }) + equal((root3.source?.input.origin(1, 0) as any).file, '/a.css') +}) + test.run() diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index 49c1c0525..bbb85a8cc 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -3,7 +3,7 @@ import { test } from 'uvu' import mozilla from 'source-map-js' import { spy } from 'nanospy' -import postcss, { CssSyntaxError } from '../lib/postcss.js' +import { CssSyntaxError } from '../lib/postcss.js' import NoWorkResult from '../lib/no-work-result.js' import Processor from '../lib/processor.js' @@ -79,28 +79,6 @@ test('has map only if necessary', () => { is(result3.map instanceof mozilla.SourceMapGenerator, true) }) -test('supports previous map', () => { - let result1 = postcss().process('a{}', { - from: 'a.css', - to: 'b.css', - map: { - sourcesContent: true, - inline: false - } - }) - equal(result1.map.toJSON().sourcesContent, ['a{}']) - - let result2 = postcss().process(result1.css, { - from: 'b.css', - to: 'c.css', - map: { - prev: result1.map - } - }) - equal(result2.map.toJSON().sources, ['a.css']) - equal(result2.map.toJSON().sourcesContent, ['a{}']) -}) - test('contains simple properties', () => { let result = new NoWorkResult(processor, 'a {}', { from: '/a.css', diff --git a/test/processor.test.ts b/test/processor.test.ts index e3afb6c61..767e33e7c 100755 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -518,9 +518,8 @@ test('warns about missed from', async () => { }) test('returns NoWorkResult object', async () => { - let noWorkResult = new Processor().process('a{}') - - instance(noWorkResult, NoWorkResult) + let result = new Processor().process('a{}') + instance(result, NoWorkResult) }) test('without plugins parses CSS only on root access', async () => { From 49c2f5072e450034f761209f97d7780fdb92dade Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:21:52 +0100 Subject: [PATCH 2444/3047] Apply source map for inline maps --- lib/no-work-result.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/no-work-result.js b/lib/no-work-result.js index 3d02eda06..c581794f6 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -27,8 +27,8 @@ class NoWorkResult { } }) - if (this._opts.map) { - let map = new MapGenerator(str, root, this._opts, css) + let map = new MapGenerator(str, root, this._opts, css) + if (map.isMap()) { let [generatedCSS, generatedMap] = map.generate() if (generatedCSS) { this.result.css = generatedCSS From 90c9729f93acecd0766c7894c45fd1f0dc5fafda Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:25:32 +0100 Subject: [PATCH 2445/3047] Sort imports --- lib/processor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/processor.js b/lib/processor.js index adf7ba577..646a34fa2 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -1,9 +1,9 @@ 'use strict' +let NoWorkResult = require('./no-work-result') let LazyResult = require('./lazy-result') let Document = require('./document') let Root = require('./root') -let NoWorkResult = require('./no-work-result') class Processor { constructor(plugins = []) { From b7c556c44b873dbf302d45776882bafa0dbb5f68 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:31:44 +0100 Subject: [PATCH 2446/3047] Fix NoWorkResult and prev map --- lib/map-generator.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index a52981a19..77d1f30a6 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -186,6 +186,10 @@ class MapGenerator { generateMap() { if (this.root) { this.generateString() + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer() + prev.file = this.outputFile() + this.map = SourceMapGenerator.fromSourceMap(prev) } else { this.map = new SourceMapGenerator({ file: this.outputFile() }) this.map.addMapping({ @@ -196,7 +200,7 @@ class MapGenerator { } if (this.isSourcesContent()) this.setSourcesContent() - if (this.previous().length > 0) this.applyPrevMaps() + if (this.root && this.previous().length > 0) this.applyPrevMaps() if (this.isAnnotation()) this.addAnnotation() if (this.isInline()) { From a31b189d521884ca898217c298a9d17cd3f84142 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:37:45 +0100 Subject: [PATCH 2447/3047] Disable map coverage because of c8 control comment instability --- lib/map-generator.js | 6 ------ package.json | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 77d1f30a6..9a6f624c1 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -148,7 +148,6 @@ class MapGenerator { if (Buffer) { return Buffer.from(str).toString('base64') } else { - /* c8 ignore next 2 */ return window.btoa(unescape(encodeURIComponent(str))) } } @@ -166,7 +165,6 @@ class MapGenerator { } else { content = this.outputFile() + '.map' } - /* c8 ignore next 6 */ let eol = '\n' if (this.css.includes('\r\n')) eol = '\r\n' @@ -227,7 +225,6 @@ class MapGenerator { toUrl(path) { if (sep === '\\') { - /* c8 ignore next 2 */ path = path.replace(/\\/g, '/') } return encodeURI(path).replace(/[#?]/g, encodeURIComponent) @@ -240,7 +237,6 @@ class MapGenerator { if (pathToFileURL) { return pathToFileURL(node.source.input.from).toString() } else { - /* c8 ignore next 4 */ throw new Error( '`map.absolute` option is not available in this PostCSS build' ) @@ -270,7 +266,6 @@ class MapGenerator { if (node && type !== 'end') { mapping.generated.line = line - /* c8 ignore next */ mapping.generated.column = column - 1 if (node.source && node.source.start) { mapping.source = this.sourcePath(node) @@ -278,7 +273,6 @@ class MapGenerator { mapping.original.column = node.source.start.column - 1 this.map.addMapping(mapping) } else { - /* c8 ignore next 8 */ mapping.source = noSource mapping.original.line = 1 mapping.original.column = 0 diff --git a/package.json b/package.json index ba564c177..84b9725cb 100755 --- a/package.json +++ b/package.json @@ -103,7 +103,8 @@ }, "c8": { "exclude": [ - "**/*.test.*" + "**/*.test.*", + "lib/map-generator.js" ], "lines": 100, "check-coverage": true From af4d9afcf82757caf9f41a4196bd5a5b458fb91d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:42:32 +0100 Subject: [PATCH 2448/3047] Fix Windows CI --- test/map.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/map.test.ts b/test/map.test.ts index c63eaf1ff..81e5ad03c 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -712,7 +712,7 @@ test('supports previous inline map with empty processor', () => { to: '/c.css' }) let root3 = postcss.parse(result2.css, { from: '/c.css' }) - equal((root3.source?.input.origin(1, 0) as any).file, '/a.css') + match((root3.source?.input.origin(1, 0) as any).file, 'a.css') }) test.run() From 07bb8d7cc365709701d519a69de384703d39ac54 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:43:41 +0100 Subject: [PATCH 2449/3047] Remove VSCode config --- .vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 37441beed..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "files.eol": "\n" -} \ No newline at end of file From a34b6caea59dc60931b5d0006555318f94b1ecf4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 19:44:12 +0100 Subject: [PATCH 2450/3047] Release 8.4.2 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddfe106f0..7de0ad535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.2 +* Fixed previous source map support in zero plugins mode. + ## 8.4.1 * Fixed `Stringifier` types (by James Garbutt). diff --git a/lib/processor.js b/lib/processor.js index 646a34fa2..000fdb855 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.1' + this.version = '8.4.2' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 84b9725cb..ac9060df0 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.1", + "version": "8.4.2", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From c8e5bc54ddcbe2d63dc672fdc11f64c69cc671ea Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 20:18:41 +0100 Subject: [PATCH 2451/3047] Make NoWorkResult safer --- lib/map-generator.js | 4 ++-- lib/no-work-result.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 9a6f624c1..38add0840 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -84,7 +84,7 @@ class MapGenerator { this.root.removeChild(i) } } - } else { + } else if (this.css) { this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') } } @@ -104,7 +104,7 @@ class MapGenerator { } } }) - } else { + } else if (this.css) { let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : '' diff --git a/lib/no-work-result.js b/lib/no-work-result.js index c581794f6..3dacb3a3c 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -8,6 +8,7 @@ const Result = require('./result') class NoWorkResult { constructor(processor, css, opts) { + css = css.toString() this.stringified = false this._processor = processor From 1f2cde739937358e38985843ad24d30b267a86cf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 26 Nov 2021 20:19:31 +0100 Subject: [PATCH 2452/3047] Release 8.4.3 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7de0ad535..130d1bb8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.3 +* Fix `this.css.replace is not a function` error. + ## 8.4.2 * Fixed previous source map support in zero plugins mode. diff --git a/lib/processor.js b/lib/processor.js index 000fdb855..e6c09e4c6 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.2' + this.version = '8.4.3' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index ac9060df0..57bc363ef 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.2", + "version": "8.4.3", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From ea8b7982e89b462c4fa770036c0373444f2d4346 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 27 Nov 2021 15:47:40 +0100 Subject: [PATCH 2453/3047] Fix absolute paths support in map with plugins --- lib/map-generator.js | 4 +++- test/map.test.ts | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 38add0840..49d638aac 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -191,7 +191,9 @@ class MapGenerator { } else { this.map = new SourceMapGenerator({ file: this.outputFile() }) this.map.addMapping({ - source: this.opts.from ? this.toUrl(this.opts.from) : '', + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '', generated: { line: 1, column: 0 }, original: { line: 1, column: 0 } }) diff --git a/test/map.test.ts b/test/map.test.ts index 81e5ad03c..7fc7ce529 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -681,18 +681,25 @@ test('generates map object with empty processor', () => { test('supports previous map with empty processor', () => { let result1 = postcss().process('a{}', { - from: 'a.css', - to: 'b.css', + from: '/a.css', + to: '/b.css', map: { sourcesContent: true, inline: false } }) - equal(result1.map.toJSON().sourcesContent, ['a{}']) + equal(result1.map.toJSON(), { + version: 3, + sources: ['a.css'], + names: [], + mappings: 'AAAA', + file: 'b.css', + sourcesContent: ['a{}'] + }) let result2 = postcss().process(result1.css, { - from: 'b.css', - to: 'c.css', + from: '/b.css', + to: '/c.css', map: { prev: result1.map } From 2dd468e7a57a89d221927b654af384c322cea8bf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 27 Nov 2021 15:57:51 +0100 Subject: [PATCH 2454/3047] Release 8.4.4 version --- CHANGELOG.md | 5 ++++- lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 130d1bb8f..6d772b849 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,11 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.4 +* Fixed absolute path in source map on zero plugins mode. + ## 8.4.3 -* Fix `this.css.replace is not a function` error. +* Fixed `this.css.replace is not a function` error. ## 8.4.2 * Fixed previous source map support in zero plugins mode. diff --git a/lib/processor.js b/lib/processor.js index e6c09e4c6..8eb91b045 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.3' + this.version = '8.4.4' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 57bc363ef..fd7ab01a5 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.3", + "version": "8.4.4", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From ed0034ba3bb105a91e12a6709a74ea75b9ff48ce Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 1 Dec 2021 09:58:07 -0800 Subject: [PATCH 2455/3047] [docs] add link to Svelte preprocessor --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 052241fe9..35a282298 100644 --- a/README.md +++ b/README.md @@ -402,6 +402,11 @@ const result = await postcss([autoprefixer]).process(css) * **Connect/Express**: [`postcss-middleware`](https://github.com/jedmao/postcss-middleware) +### Preprocessors + +* **Svelte**: [`svelte-preprocess`](https://github.com/sveltejs/svelte-preprocess/blob/main/docs/preprocessing.md#postcss-sugarss) + + ### JS API For other environments, you can use the JS API: From 9493f6a5cdaa88f52dc6da897f2125838e56ccb9 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Thu, 2 Dec 2021 07:48:41 -0800 Subject: [PATCH 2456/3047] move to runners section --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 35a282298..c8c333c42 100644 --- a/README.md +++ b/README.md @@ -400,11 +400,7 @@ const result = await postcss([autoprefixer]).process(css) * **Taskr**: [`taskr-postcss`](https://github.com/lukeed/taskr/tree/master/packages/postcss) * **Start**: [`start-postcss`](https://github.com/start-runner/postcss) * **Connect/Express**: [`postcss-middleware`](https://github.com/jedmao/postcss-middleware) - - -### Preprocessors - -* **Svelte**: [`svelte-preprocess`](https://github.com/sveltejs/svelte-preprocess/blob/main/docs/preprocessing.md#postcss-sugarss) +* **Svelte Preprocessor**: [`svelte-preprocess`](https://github.com/sveltejs/svelte-preprocess/blob/main/docs/preprocessing.md#postcss-sugarss) ### JS API From ad7dd70c680dda719e44cf18de87564b79ee8d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Pereira?= Date: Sun, 5 Dec 2021 23:07:50 +0100 Subject: [PATCH 2457/3047] Adds postcss-rtlcss plugin to the plugins list This pull request adds [postcss-rtlcss plugin](https://github.com/elchininet/postcss-rtlcss) to the plugins list. --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 6f6090622..61324ad9c 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -463,6 +463,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-raw`] protects nodes inside `@raw` at-rules from being touched by other plugins. * [`postcss-remove-prefixes`] removes vendor prefixes. +* [`postcss-rtlcss`] creates left-to-right (LTR) and right-to-left (RTL) rules in a single CSS file * [`postcss-safe-important`] adds `!important` to style declarations safely. * [`postcss-sanitize`] remove properties and values using rules (css sanitization). * [`postcss-scopify`] adds a user input scope to each selector. @@ -767,6 +768,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-layout`]: https://github.com/arccoza/postcss-layout [`postcss-mixins`]: https://github.com/postcss/postcss-mixins [`postcss-nested`]: https://github.com/postcss/postcss-nested +[`postcss-rtlcss`]: https://github.com/elchininet/postcss-rtlcss [`postcss-select`]: https://github.com/johnotander/postcss-select [`postcss-urlrev`]: https://github.com/yuezk/postcss-urlrev [`postcss-zindex`]: https://github.com/ben-eb/postcss-zindex From 679f2d5391103e2e875859dfe4cfd36b8c0d4792 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Dec 2021 00:50:42 +0100 Subject: [PATCH 2458/3047] Update docs/plugins.md --- docs/plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 61324ad9c..e64e80279 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -463,7 +463,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-raw`] protects nodes inside `@raw` at-rules from being touched by other plugins. * [`postcss-remove-prefixes`] removes vendor prefixes. -* [`postcss-rtlcss`] creates left-to-right (LTR) and right-to-left (RTL) rules in a single CSS file +* [`postcss-rtlcss`] creates left-to-right and right-to-left rules in a single CSS file. * [`postcss-safe-important`] adds `!important` to style declarations safely. * [`postcss-sanitize`] remove properties and values using rules (css sanitization). * [`postcss-scopify`] adds a user input scope to each selector. From 81292d1bb7e353edf9508e81f5b7ee8420591633 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 6 Dec 2021 00:52:55 +0100 Subject: [PATCH 2459/3047] Update dependencies --- package.json | 12 ++-- yarn.lock | 166 +++++++++++++++++++++++++-------------------------- 2 files changed, 89 insertions(+), 89 deletions(-) diff --git a/package.json b/package.json index fd7ab01a5..7adf624ba 100755 --- a/package.json +++ b/package.json @@ -77,19 +77,19 @@ "@logux/eslint-config": "^46.1.0", "@size-limit/preset-small-lib": "^7.0.3", "@types/fs-extra": "^9.0.13", - "@types/node": "^16.11.10", - "@typescript-eslint/eslint-plugin": "^5.4.0", - "@typescript-eslint/parser": "^5.4.0", + "@types/node": "^16.11.11", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", "c8": "^7.10.0", "check-dts": "^0.6.4", - "clean-publish": "^3.4.3", + "clean-publish": "^3.4.4", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.3.0", + "eslint": "^8.4.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", - "eslint-plugin-promise": "^5.1.1", + "eslint-plugin-promise": "^5.2.0", "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "nanospy": "^0.4.0", diff --git a/yarn.lock b/yarn.lock index 3479fd05b..8c6b305d5 100755 --- a/yarn.lock +++ b/yarn.lock @@ -19,14 +19,14 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" -"@eslint/eslintrc@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31" - integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q== +"@eslint/eslintrc@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" + integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.0.0" + espree "^9.2.0" globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" @@ -34,16 +34,16 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a" - integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A== +"@humanwhocodes/config-array@^0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" + integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/object-schema@^1.2.0": +"@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== @@ -144,23 +144,23 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^16.11.10": - version "16.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" - integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== +"@types/node@*", "@types/node@^16.11.11": + version "16.11.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" + integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@typescript-eslint/eslint-plugin@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.4.0.tgz#05e711a2e7b68342661fde61bccbd1531c19521a" - integrity sha512-9/yPSBlwzsetCsGEn9j24D8vGQgJkOTr4oMLas/w886ZtzKIs1iyoqFrwsX2fqYEeUwsdBpC21gcjRGo57u0eg== +"@typescript-eslint/eslint-plugin@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz#12d5f47f127af089b985f3a205c0e34a812f8fce" + integrity sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA== dependencies: - "@typescript-eslint/experimental-utils" "5.4.0" - "@typescript-eslint/scope-manager" "5.4.0" + "@typescript-eslint/experimental-utils" "5.5.0" + "@typescript-eslint/scope-manager" "5.5.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -168,60 +168,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.4.0.tgz#238a7418d2da3b24874ba35385eb21cc61d2a65e" - integrity sha512-Nz2JDIQUdmIGd6p33A+naQmwfkU5KVTLb/5lTk+tLVTDacZKoGQisj8UCxk7onJcrgjIvr8xWqkYI+DbI3TfXg== +"@typescript-eslint/experimental-utils@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz#3fe2514dc2f3cd95562206e4058435ea51df609e" + integrity sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.4.0" - "@typescript-eslint/types" "5.4.0" - "@typescript-eslint/typescript-estree" "5.4.0" + "@typescript-eslint/scope-manager" "5.5.0" + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/typescript-estree" "5.5.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.4.0.tgz#3aa83ce349d66e39b84151f6d5464928044ca9e3" - integrity sha512-JoB41EmxiYpaEsRwpZEYAJ9XQURPFer8hpkIW9GiaspVLX8oqbqNM8P4EP8HOZg96yaALiLEVWllA2E8vwsIKw== +"@typescript-eslint/parser@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.5.0.tgz#a38070e225330b771074daa659118238793f7fcd" + integrity sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg== dependencies: - "@typescript-eslint/scope-manager" "5.4.0" - "@typescript-eslint/types" "5.4.0" - "@typescript-eslint/typescript-estree" "5.4.0" + "@typescript-eslint/scope-manager" "5.5.0" + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/typescript-estree" "5.5.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.4.0.tgz#aaab08415f4a9cf32b870c7750ae8ba4607126a1" - integrity sha512-pRxFjYwoi8R+n+sibjgF9iUiAELU9ihPBtHzocyW8v8D8G8KeQvXTsW7+CBYIyTYsmhtNk50QPGLE3vrvhM5KA== +"@typescript-eslint/scope-manager@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz#2b9f3672fa6cddcb4160e7e8b49ef1fd00f83c09" + integrity sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg== dependencies: - "@typescript-eslint/types" "5.4.0" - "@typescript-eslint/visitor-keys" "5.4.0" + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/visitor-keys" "5.5.0" -"@typescript-eslint/types@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.4.0.tgz#b1c130f4b381b77bec19696c6e3366f9781ce8f2" - integrity sha512-GjXNpmn+n1LvnttarX+sPD6+S7giO+9LxDIGlRl4wK3a7qMWALOHYuVSZpPTfEIklYjaWuMtfKdeByx0AcaThA== +"@typescript-eslint/types@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.5.0.tgz#fee61ae510e84ed950a53937a2b443e078107003" + integrity sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg== -"@typescript-eslint/typescript-estree@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.4.0.tgz#fe524fb308973c68ebeb7428f3b64499a6ba5fc0" - integrity sha512-nhlNoBdhKuwiLMx6GrybPT3SFILm5Gij2YBdPEPFlYNFAXUJWX6QRgvi/lwVoadaQEFsizohs6aFRMqsXI2ewA== +"@typescript-eslint/typescript-estree@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz#12f422698c1636bd0206086bbec9844c54625ebc" + integrity sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ== dependencies: - "@typescript-eslint/types" "5.4.0" - "@typescript-eslint/visitor-keys" "5.4.0" + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/visitor-keys" "5.5.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.4.0.tgz#09bc28efd3621f292fe88c86eef3bf4893364c8c" - integrity sha512-PVbax7MeE7tdLfW5SA0fs8NGVVr+buMPrcj+CWYWPXsZCH8qZ1THufDzbXm1xrZ2b2PA1iENJ0sRq5fuUtvsJg== +"@typescript-eslint/visitor-keys@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz#4787586897b61f26068a3db5c50b3f5d254f9083" + integrity sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw== dependencies: - "@typescript-eslint/types" "5.4.0" + "@typescript-eslint/types" "5.5.0" eslint-visitor-keys "^3.0.0" acorn-jsx@^5.3.1: @@ -429,16 +429,16 @@ ci-job-number@^1.2.2: resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== -clean-publish@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.3.tgz#1b12ac1d26549098bf49d0c17fdc9e86824d66be" - integrity sha512-PXq2JrWYqsovKjaO7NqOi47vMHV/6VbkP8fxPK4e3RBsoghAJXemwCiBCqhymgIIxD67G0VfRnkCJCa78+zqDw== +clean-publish@^3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.4.tgz#d5ffa3a4bffb76594b14706675efea7d78f42e46" + integrity sha512-eCWBBLbaOBqLtxQrjBDSI1tSmx6tKckV2H0C9/je0eQg2QOGGnjE1XKc01V8M3vKe7bJuCut5hF/yUwLGLZoVA== dependencies: cross-spawn "^7.0.3" fast-glob "^3.2.7" fs-extra "^10.0.0" hosted-git-info "^4.0.2" - lilconfig "^2.0.3" + lilconfig "^2.0.4" cli-cursor@^3.0.0: version "3.1.0" @@ -528,9 +528,9 @@ debug@^3.2.7: ms "^2.1.1" debug@^4.1.1, debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" @@ -820,10 +820,10 @@ eslint-plugin-prefer-let@^3.0.1: dependencies: requireindex "~1.2.0" -eslint-plugin-promise@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz#9674d11c056d1bafac38e4a3a9060be740988d90" - integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA== +eslint-plugin-promise@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz#a596acc32981627eb36d9d75f9666ac1a4564971" + integrity sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw== eslint-scope@^5.1.1: version "5.1.1" @@ -870,13 +870,13 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== -eslint@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.3.0.tgz#a3c2409507403c1c7f6c42926111d6cbefbc3e85" - integrity sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww== +eslint@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.4.0.tgz#2fa01b271cafc28addc2719e551acff5e89f5230" + integrity sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA== dependencies: - "@eslint/eslintrc" "^1.0.4" - "@humanwhocodes/config-array" "^0.6.0" + "@eslint/eslintrc" "^1.0.5" + "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -887,7 +887,7 @@ eslint@^8.3.0: eslint-scope "^7.1.0" eslint-utils "^3.0.0" eslint-visitor-keys "^3.1.0" - espree "^9.1.0" + espree "^9.2.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -914,10 +914,10 @@ eslint@^8.3.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.0.0, espree@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.1.0.tgz#ba9d3c9b34eeae205724124e31de4543d59fbf74" - integrity sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ== +espree@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.2.0.tgz#c50814e01611c2d0f8bd4daa83c369eabba80dbc" + integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg== dependencies: acorn "^8.6.0" acorn-jsx "^5.3.1" @@ -1361,9 +1361,9 @@ istanbul-lib-report@^3.0.0: supports-color "^7.1.0" istanbul-reports@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.5.tgz#a2580107e71279ea6d661ddede929ffc6d693384" - integrity sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ== + version "3.1.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.1.tgz#7085857f17d2441053c6ce5c3b8fdf6882289397" + integrity sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -1414,7 +1414,7 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lilconfig@^2.0.3: +lilconfig@^2.0.3, lilconfig@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== From fdefd27e951efcca7c682d3ca42a7606f6fd52d8 Mon Sep 17 00:00:00 2001 From: 43081j <43081j@users.noreply.github.com> Date: Sun, 12 Dec 2021 22:23:38 +0000 Subject: [PATCH 2460/3047] fix: allow all `raws` to be extended --- lib/at-rule.d.ts | 2 +- lib/comment.d.ts | 2 +- lib/declaration.d.ts | 2 +- lib/rule.d.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index 09e1f1733..7a39b2f9f 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -1,6 +1,6 @@ import Container, { ContainerProps } from './container.js' -interface AtRuleRaws { +interface AtRuleRaws extends Record { /** * The space symbols before the node. It also stores `*` * and `_` symbols before the declaration (IE hack). diff --git a/lib/comment.d.ts b/lib/comment.d.ts index 1d4fd459a..8eaf3a230 100644 --- a/lib/comment.d.ts +++ b/lib/comment.d.ts @@ -1,7 +1,7 @@ import Container from './container.js' import Node, { NodeProps } from './node.js' -interface CommentRaws { +interface CommentRaws extends Record { /** * The space symbols before the node. */ diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index 56cfb46c0..4e92c901e 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -1,7 +1,7 @@ import Container from './container.js' import Node from './node.js' -interface DeclarationRaws { +interface DeclarationRaws extends Record { /** * The space symbols before the node. It also stores `*` * and `_` symbols before the declaration (IE hack). diff --git a/lib/rule.d.ts b/lib/rule.d.ts index 75ddf31ed..ad6abb5ff 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -1,6 +1,6 @@ import Container, { ContainerProps } from './container.js' -interface RuleRaws { +interface RuleRaws extends Record { /** * The space symbols before the node. It also stores `*` * and `_` symbols before the declaration (IE hack). From 9819276740c40c88a901b1930446457bd9e4225d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Dec 2021 02:18:44 +0300 Subject: [PATCH 2461/3047] Update dependencies --- package.json | 14 ++--- yarn.lock | 154 +++++++++++++++++++++++++-------------------------- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/package.json b/package.json index 7adf624ba..f3aa376f8 100755 --- a/package.json +++ b/package.json @@ -77,14 +77,14 @@ "@logux/eslint-config": "^46.1.0", "@size-limit/preset-small-lib": "^7.0.3", "@types/fs-extra": "^9.0.13", - "@types/node": "^16.11.11", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", + "@types/node": "^16.11.12", + "@typescript-eslint/eslint-plugin": "^5.6.0", + "@typescript-eslint/parser": "^5.6.0", "c8": "^7.10.0", - "check-dts": "^0.6.4", + "check-dts": "^0.6.5", "clean-publish": "^3.4.4", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.4.0", + "eslint": "^8.4.1", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-node": "^11.1.0", @@ -95,10 +95,10 @@ "nanospy": "^0.4.0", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", - "size-limit": "^7.0.3", + "size-limit": "^7.0.4", "strip-ansi": "^6.0.0", "ts-node": "^10.4.0", - "typescript": "^4.5.2", + "typescript": "^4.5.3", "uvu": "^0.5.2" }, "c8": { diff --git a/yarn.lock b/yarn.lock index 8c6b305d5..b87eda896 100755 --- a/yarn.lock +++ b/yarn.lock @@ -144,23 +144,23 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@^16.11.11": - version "16.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" - integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== +"@types/node@*", "@types/node@^16.11.12": + version "16.11.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" + integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@typescript-eslint/eslint-plugin@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz#12d5f47f127af089b985f3a205c0e34a812f8fce" - integrity sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA== +"@typescript-eslint/eslint-plugin@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz#efd8668b3d6627c46ce722c2afe813928fe120a0" + integrity sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA== dependencies: - "@typescript-eslint/experimental-utils" "5.5.0" - "@typescript-eslint/scope-manager" "5.5.0" + "@typescript-eslint/experimental-utils" "5.6.0" + "@typescript-eslint/scope-manager" "5.6.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -168,60 +168,60 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz#3fe2514dc2f3cd95562206e4058435ea51df609e" - integrity sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A== +"@typescript-eslint/experimental-utils@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz#f3a5960f2004abdcac7bb81412bafc1560841c23" + integrity sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.5.0" - "@typescript-eslint/types" "5.5.0" - "@typescript-eslint/typescript-estree" "5.5.0" + "@typescript-eslint/scope-manager" "5.6.0" + "@typescript-eslint/types" "5.6.0" + "@typescript-eslint/typescript-estree" "5.6.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.5.0.tgz#a38070e225330b771074daa659118238793f7fcd" - integrity sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg== +"@typescript-eslint/parser@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.6.0.tgz#11677324659641400d653253c03dcfbed468d199" + integrity sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ== dependencies: - "@typescript-eslint/scope-manager" "5.5.0" - "@typescript-eslint/types" "5.5.0" - "@typescript-eslint/typescript-estree" "5.5.0" + "@typescript-eslint/scope-manager" "5.6.0" + "@typescript-eslint/types" "5.6.0" + "@typescript-eslint/typescript-estree" "5.6.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz#2b9f3672fa6cddcb4160e7e8b49ef1fd00f83c09" - integrity sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg== +"@typescript-eslint/scope-manager@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz#9dd7f007dc8f3a34cdff6f79f5eaab27ae05157e" + integrity sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A== dependencies: - "@typescript-eslint/types" "5.5.0" - "@typescript-eslint/visitor-keys" "5.5.0" + "@typescript-eslint/types" "5.6.0" + "@typescript-eslint/visitor-keys" "5.6.0" -"@typescript-eslint/types@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.5.0.tgz#fee61ae510e84ed950a53937a2b443e078107003" - integrity sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg== +"@typescript-eslint/types@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.6.0.tgz#745cb1b59daadcc1f32f7be95f0f68accf38afdd" + integrity sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA== -"@typescript-eslint/typescript-estree@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz#12f422698c1636bd0206086bbec9844c54625ebc" - integrity sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ== +"@typescript-eslint/typescript-estree@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz#dfbb19c9307fdd81bd9c650c67e8397821d7faf0" + integrity sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA== dependencies: - "@typescript-eslint/types" "5.5.0" - "@typescript-eslint/visitor-keys" "5.5.0" + "@typescript-eslint/types" "5.6.0" + "@typescript-eslint/visitor-keys" "5.6.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz#4787586897b61f26068a3db5c50b3f5d254f9083" - integrity sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw== +"@typescript-eslint/visitor-keys@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz#3e36509e103fe9713d8f035ac977235fd63cb6e6" + integrity sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng== dependencies: - "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/types" "5.6.0" eslint-visitor-keys "^3.0.0" acorn-jsx@^5.3.1: @@ -399,13 +399,13 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-dts@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.4.tgz#51cdbdc1abdbddf77f4e0f2ad9ccbe3c50984700" - integrity sha512-bxF8yPtThneecmBr+f4Q1EcDGFhiD2GjOnHscmDDH1vBDaGRTLKmHHjNiM6/9wbknRxiNoEPjr/mvaMtOPCz2g== +check-dts@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.5.tgz#fe37f47f9493af7f55774a5a0723062b8eec34c1" + integrity sha512-/ETEH8AdxxXDXsFyzw4aiXUiO423m1ndErSSCTmE31az2IZP4DIb0qwHbVHEHiDo1z4QY2xTD0fLGn2s5UJ1tQ== dependencies: fast-glob "^3.2.7" - nanospinner "^0.4.0" + nanospinner "^0.5.0" picocolors "^1.0.0" vfile-location "^4.0.1" @@ -870,10 +870,10 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== -eslint@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.4.0.tgz#2fa01b271cafc28addc2719e551acff5e89f5230" - integrity sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA== +eslint@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.4.1.tgz#d6531bbf3e598dffd7c0c7d35ec52a0b30fdfa2d" + integrity sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg== dependencies: "@eslint/eslintrc" "^1.0.5" "@humanwhocodes/config-array" "^0.9.2" @@ -1291,9 +1291,9 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: is-extglob "^2.1.1" is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.6" @@ -1335,11 +1335,11 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: has-symbols "^1.0.2" is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" isexe@^2.0.0: version "2.0.0" @@ -1523,10 +1523,10 @@ nanoid@^3.1.30: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== -nanospinner@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/nanospinner/-/nanospinner-0.4.0.tgz#f544f71fb990423528b8f6dd6c26134cf9f21659" - integrity sha512-FhxiB9PcEztMw6XfQDSLJBMlmN4n7B2hl/oiK4Hy9479r1+df0i2099DgcEx+m6yBfBJVUuKpILvP8fM3rK3Sw== +nanospinner@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/nanospinner/-/nanospinner-0.5.0.tgz#4a328f886615c95ddc54b104bec6f1817de11f6f" + integrity sha512-VaEzZRHgdgvru4qr5Oe7SjalSGQsoCZrl42FEnAYHp8R+ghcok6u8Yo5U37kD+ABOjRh1IUOA64qqff+TznDfg== dependencies: picocolors "^1.0.0" @@ -1546,9 +1546,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + version "1.11.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" + integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -1832,10 +1832,10 @@ simple-git-hooks@^2.7.0: resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" integrity sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ== -size-limit@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-7.0.3.tgz#1cc6e83d1f090c2008080a193337a9b84c98825d" - integrity sha512-CDGzcnw8f34yZ8ckh0dZ0ZNVfbfwJoG1+DWHdn63GieS0dnAB7oUH6Rok3Xaz4Ba+RUAd+4kXoJyZWHw5KkArw== +size-limit@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-7.0.4.tgz#e427c696b63e29096be97a576cd7fd95a3ec7839" + integrity sha512-IkY30erk6psU6UCg/R0crNUIWIQsTTVv1/tMtY0ifOtq6Y2F2cUC3Z0zXNAmKcncnl9HJjUIQhw2WNYRlDiv0Q== dependencies: bytes-iec "^3.1.1" chokidar "^3.5.2" @@ -1843,7 +1843,7 @@ size-limit@^7.0.3: globby "^11.0.4" lilconfig "^2.0.3" mkdirp "^1.0.4" - nanospinner "^0.4.0" + nanospinner "^0.5.0" picocolors "^1.0.0" slash@^3.0.0: @@ -2016,10 +2016,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" - integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== +typescript@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.3.tgz#afaa858e68c7103317d89eb90c5d8906268d353c" + integrity sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ== unbox-primitive@^1.0.1: version "1.0.1" From ec804170d7dbb1adf5ccaed0297487405eddc7c7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Dec 2021 02:44:35 +0300 Subject: [PATCH 2462/3047] Move from yarn to pnpm --- .github/workflows/test.yml | 57 +- .gitignore | 1 - .npmignore | 3 +- package.json | 2 +- pnpm-lock.yaml | 2330 ++++++++++++++++++++++++++++++++++++ yarn.lock | 2177 --------------------------------- 6 files changed, 2378 insertions(+), 2192 deletions(-) create mode 100644 pnpm-lock.yaml delete mode 100755 yarn.lock diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e44d19be4..163c9d9ee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,15 +9,19 @@ jobs: steps: - name: Checkout the repository uses: actions/checkout@v2 + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 6.23.6 - name: Install Node.js uses: actions/setup-node@v2 with: node-version: 17 - cache: yarn + cache: pnpm - name: Install dependencies - run: yarn --frozen-lockfile + run: pnpm install --frozen-lockfile - name: Run tests - run: yarn test + run: pnpm test env: FORCE_COLOR: 2 short: @@ -28,38 +32,69 @@ jobs: - 16 - 14 - 12 + name: Node.js ${{ matrix.node-version }} Quick + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 6.23.6 + - name: Install Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: pnpm + - name: Install dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + - name: Run unit tests + run: pnpm unit + env: + FORCE_COLOR: 2 + old: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: - 10 name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository uses: actions/checkout@v2 + - name: Install pnpm + uses: pnpm/action-setup@v1 + with: + version: 3.8.1 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - cache: yarn - name: Install dependencies - run: yarn --frozen-lockfile --ignore-engines + run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests - run: yarn unit + run: pnpm unit env: FORCE_COLOR: 2 windows: runs-on: windows-latest name: Windows Quick - env: - YARN_GPG: 'no' steps: - name: Checkout the repository uses: actions/checkout@v2 + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 6.23.6 - name: Install Node.js LTS uses: actions/setup-node@v2 with: node-version: 16 - cache: yarn + cache: pnpm - name: Install dependencies - run: yarn install --frozen-lockfile + run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests - run: yarn unit + run: pnpm unit env: FORCE_COLOR: 2 diff --git a/.gitignore b/.gitignore index d67f371a3..3030054ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules/ -yarn-error.log coverage/ diff --git a/.npmignore b/.npmignore index d44b9ad7f..357696a44 100644 --- a/.npmignore +++ b/.npmignore @@ -1,6 +1,5 @@ node_modules/ -yarn-error.log -yarn.lock +pnpm-lock.yaml .editorconfig coverage/ diff --git a/package.json b/package.json index f3aa376f8..65c5439df 100755 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "transpiler" ], "scripts": { - "test": "c8 yarn unit && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit", + "test": "c8 pnpm unit && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit", "unit": "uvu -r ts-node/register/transpile-only test \"\\.test\\.(ts|js)$\"" }, "funding": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..b9dcbc433 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2330 @@ +lockfileVersion: 5.3 + +specifiers: + '@logux/eslint-config': ^46.1.0 + '@size-limit/preset-small-lib': ^7.0.3 + '@types/fs-extra': ^9.0.13 + '@types/node': ^16.11.12 + '@typescript-eslint/eslint-plugin': ^5.6.0 + '@typescript-eslint/parser': ^5.6.0 + c8: ^7.10.0 + check-dts: ^0.6.5 + clean-publish: ^3.4.4 + concat-with-sourcemaps: ^1.1.0 + eslint: ^8.4.1 + eslint-config-standard: ^16.0.3 + eslint-plugin-import: ^2.25.3 + eslint-plugin-node: ^11.1.0 + eslint-plugin-prefer-let: ^3.0.1 + eslint-plugin-promise: ^5.2.0 + fs-extra: ^10.0.0 + nanodelay: ^1.0.8 + nanoid: ^3.1.30 + nanospy: ^0.4.0 + picocolors: ^1.0.0 + postcss-parser-tests: ^8.3.7 + simple-git-hooks: ^2.7.0 + size-limit: ^7.0.4 + source-map-js: ^1.0.1 + strip-ansi: ^6.0.0 + ts-node: ^10.4.0 + typescript: ^4.5.3 + uvu: ^0.5.2 + +dependencies: + nanoid: 3.1.30 + picocolors: 1.0.0 + source-map-js: 1.0.1 + +devDependencies: + '@logux/eslint-config': 46.1.0_c1affbe72d0502c497cacc5a11eac21f + '@size-limit/preset-small-lib': 7.0.3_size-limit@7.0.4 + '@types/fs-extra': 9.0.13 + '@types/node': 16.11.12 + '@typescript-eslint/eslint-plugin': 5.6.0_0d0cecf582ba45923647a091322795b0 + '@typescript-eslint/parser': 5.6.0_eslint@8.4.1+typescript@4.5.3 + c8: 7.10.0 + check-dts: 0.6.5_typescript@4.5.3 + clean-publish: 3.4.4 + concat-with-sourcemaps: 1.1.0 + eslint: 8.4.1 + eslint-config-standard: 16.0.3_79a23b4ffc45aed4cdeb891cd82eaee3 + eslint-plugin-import: 2.25.3_eslint@8.4.1 + eslint-plugin-node: 11.1.0_eslint@8.4.1 + eslint-plugin-prefer-let: 3.0.1 + eslint-plugin-promise: 5.2.0_eslint@8.4.1 + fs-extra: 10.0.0 + nanodelay: 1.0.8 + nanospy: 0.4.0 + postcss-parser-tests: 8.3.7 + simple-git-hooks: 2.7.0 + size-limit: 7.0.4 + strip-ansi: 6.0.1 + ts-node: 10.4.0_74e588db5264178750052e53ffe97b8f + typescript: 4.5.3 + uvu: 0.5.2 + +packages: + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@cspotcode/source-map-consumer/0.8.0: + resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} + engines: {node: '>= 12'} + dev: true + + /@cspotcode/source-map-support/0.7.0: + resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} + engines: {node: '>=12'} + dependencies: + '@cspotcode/source-map-consumer': 0.8.0 + dev: true + + /@eslint/eslintrc/1.0.5: + resolution: {integrity: sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.3 + espree: 9.2.0 + globals: 13.12.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.0.4 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array/0.9.2: + resolution: {integrity: sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.3 + minimatch: 3.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@logux/eslint-config/46.1.0_c1affbe72d0502c497cacc5a11eac21f: + resolution: {integrity: sha512-7DikH6MvW2mc9DJHTmA9uGAPexBA69u21KNjCHqAbWPAqHD7XM++2BWBswMSJaWD3o2u+IEBFK6ZywNuPsNCbQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + eslint: ^8.1.0 + eslint-config-standard: ^16.0.3 + eslint-plugin-import: ^2.25.2 + eslint-plugin-node: ^11.1.0 + eslint-plugin-prefer-let: ^3.0.0 + eslint-plugin-promise: ^5.1.1 + dependencies: + eslint: 8.4.1 + eslint-config-standard: 16.0.3_79a23b4ffc45aed4cdeb891cd82eaee3 + eslint-plugin-import: 2.25.3_eslint@8.4.1 + eslint-plugin-node: 11.1.0_eslint@8.4.1 + eslint-plugin-prefer-let: 3.0.1 + eslint-plugin-promise: 5.2.0_eslint@8.4.1 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@size-limit/esbuild/7.0.3_size-limit@7.0.4: + resolution: {integrity: sha512-pqtB5wQkbFHxHo43Xjyj3XVqnl56LHKpycWKmNWhDShkF94ucCdfZJwHDMIzL6f0OUjRxd9QkA8Jv11pFzUD/Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + peerDependencies: + size-limit: 7.0.3 + dependencies: + esbuild: 0.13.15 + nanoid: 3.1.30 + size-limit: 7.0.4 + dev: true + + /@size-limit/file/7.0.3_size-limit@7.0.4: + resolution: {integrity: sha512-jizDZduAQ71KoraRWkj6ZSHPPo8SQ/KO4z1hZBl1ZujxwF7R6NLWKghNUtIQHsXpqyZWbK3VV39lOLx7qHuLjg==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + peerDependencies: + size-limit: 7.0.3 + dependencies: + semver: 7.3.5 + size-limit: 7.0.4 + dev: true + + /@size-limit/preset-small-lib/7.0.3_size-limit@7.0.4: + resolution: {integrity: sha512-UuA8ICz3BYWxbhJah8U5KxOUhA97AJbsNITp+Scy9aUXzbu2SqrsDTRmPU9ULCo3j4VgF53TBHXY4sdKC2adpw==} + peerDependencies: + size-limit: 7.0.3 + dependencies: + '@size-limit/esbuild': 7.0.3_size-limit@7.0.4 + '@size-limit/file': 7.0.3_size-limit@7.0.4 + size-limit: 7.0.4 + dev: true + + /@tsconfig/node10/1.0.8: + resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} + dev: true + + /@tsconfig/node12/1.0.9: + resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} + dev: true + + /@tsconfig/node14/1.0.1: + resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} + dev: true + + /@tsconfig/node16/1.0.2: + resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} + dev: true + + /@types/fs-extra/9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 16.11.12 + dev: true + + /@types/istanbul-lib-coverage/2.0.3: + resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} + dev: true + + /@types/json-schema/7.0.9: + resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} + dev: true + + /@types/json5/0.0.29: + resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + dev: true + + /@types/node/16.11.12: + resolution: {integrity: sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==} + dev: true + + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@typescript-eslint/eslint-plugin/5.6.0_0d0cecf582ba45923647a091322795b0: + resolution: {integrity: sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/experimental-utils': 5.6.0_eslint@8.4.1+typescript@4.5.3 + '@typescript-eslint/parser': 5.6.0_eslint@8.4.1+typescript@4.5.3 + '@typescript-eslint/scope-manager': 5.6.0 + debug: 4.3.3 + eslint: 8.4.1 + functional-red-black-tree: 1.0.1 + ignore: 5.1.9 + regexpp: 3.2.0 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.5.3 + typescript: 4.5.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils/5.6.0_eslint@8.4.1+typescript@4.5.3: + resolution: {integrity: sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.6.0 + '@typescript-eslint/types': 5.6.0 + '@typescript-eslint/typescript-estree': 5.6.0_typescript@4.5.3 + eslint: 8.4.1 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.4.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser/5.6.0_eslint@8.4.1+typescript@4.5.3: + resolution: {integrity: sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.6.0 + '@typescript-eslint/types': 5.6.0 + '@typescript-eslint/typescript-estree': 5.6.0_typescript@4.5.3 + debug: 4.3.3 + eslint: 8.4.1 + typescript: 4.5.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.6.0: + resolution: {integrity: sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.6.0 + '@typescript-eslint/visitor-keys': 5.6.0 + dev: true + + /@typescript-eslint/types/5.6.0: + resolution: {integrity: sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.6.0_typescript@4.5.3: + resolution: {integrity: sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.6.0 + '@typescript-eslint/visitor-keys': 5.6.0 + debug: 4.3.3 + globby: 11.0.4 + is-glob: 4.0.3 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.5.3 + typescript: 4.5.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/visitor-keys/5.6.0: + resolution: {integrity: sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.6.0 + eslint-visitor-keys: 3.1.0 + dev: true + + /acorn-jsx/5.3.2_acorn@8.6.0: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.6.0 + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/8.6.0: + resolution: {integrity: sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-colors/4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + + /ansi-regex/4.1.0: + resolution: {integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==} + engines: {node: '>=6'} + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.0 + dev: true + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-includes/3.1.4: + resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.19.1 + get-intrinsic: 1.1.1 + is-string: 1.0.7 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat/1.2.5: + resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.19.1 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /bytes-iec/3.1.1: + resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} + engines: {node: '>= 0.8'} + dev: true + + /c8/7.10.0: + resolution: {integrity: sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.1 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 8.1.0 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /check-dts/0.6.5_typescript@4.5.3: + resolution: {integrity: sha512-/ETEH8AdxxXDXsFyzw4aiXUiO423m1ndErSSCTmE31az2IZP4DIb0qwHbVHEHiDo1z4QY2xTD0fLGn2s5UJ1tQ==} + engines: {node: '>=12.16.0'} + hasBin: true + peerDependencies: + typescript: '>=4.0.0' + dependencies: + fast-glob: 3.2.7 + nanospinner: 0.5.0 + picocolors: 1.0.0 + typescript: 4.5.3 + vfile-location: 4.0.1 + dev: true + + /chokidar/3.5.2: + resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /ci-job-number/1.2.2: + resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==} + dev: true + + /clean-publish/3.4.4: + resolution: {integrity: sha512-eCWBBLbaOBqLtxQrjBDSI1tSmx6tKckV2H0C9/je0eQg2QOGGnjE1XKc01V8M3vKe7bJuCut5hF/yUwLGLZoVA==} + engines: {node: ^12.0.0 || ^14.0.0 || >= 16.0.0} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.2.7 + fs-extra: 10.0.0 + hosted-git-info: 4.0.2 + lilconfig: 2.0.4 + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /concat-with-sourcemaps/1.1.0: + resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} + dependencies: + source-map: 0.6.1 + dev: true + + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /define-properties/1.1.3: + resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + engines: {node: '>= 0.4'} + dependencies: + object-keys: 1.1.1 + dev: true + + /dequal/2.0.2: + resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} + engines: {node: '>=6'} + dev: true + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /diff/5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.1 + dev: true + + /es-abstract/1.19.1: + resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-symbols: 1.0.2 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.1 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.11.1 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.1 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild-android-arm64/0.13.15: + resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.13.15: + resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.13.15: + resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.13.15: + resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.13.15: + resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.13.15: + resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.13.15: + resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.13.15: + resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.13.15: + resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.13.15: + resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.13.15: + resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.13.15: + resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.13.15: + resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.13.15: + resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.13.15: + resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.13.15: + resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.13.15: + resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.13.15: + resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-arm64: 0.13.15 + esbuild-darwin-64: 0.13.15 + esbuild-darwin-arm64: 0.13.15 + esbuild-freebsd-64: 0.13.15 + esbuild-freebsd-arm64: 0.13.15 + esbuild-linux-32: 0.13.15 + esbuild-linux-64: 0.13.15 + esbuild-linux-arm: 0.13.15 + esbuild-linux-arm64: 0.13.15 + esbuild-linux-mips64le: 0.13.15 + esbuild-linux-ppc64le: 0.13.15 + esbuild-netbsd-64: 0.13.15 + esbuild-openbsd-64: 0.13.15 + esbuild-sunos-64: 0.13.15 + esbuild-windows-32: 0.13.15 + esbuild-windows-64: 0.13.15 + esbuild-windows-arm64: 0.13.15 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-config-standard/16.0.3_79a23b4ffc45aed4cdeb891cd82eaee3: + resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} + peerDependencies: + eslint: ^7.12.1 + eslint-plugin-import: ^2.22.1 + eslint-plugin-node: ^11.1.0 + eslint-plugin-promise: ^4.2.1 || ^5.0.0 + dependencies: + eslint: 8.4.1 + eslint-plugin-import: 2.25.3_eslint@8.4.1 + eslint-plugin-node: 11.1.0_eslint@8.4.1 + eslint-plugin-promise: 5.2.0_eslint@8.4.1 + dev: true + + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.20.0 + dev: true + + /eslint-module-utils/2.7.1: + resolution: {integrity: sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==} + engines: {node: '>=4'} + dependencies: + debug: 3.2.7 + find-up: 2.1.0 + pkg-dir: 2.0.0 + dev: true + + /eslint-plugin-es/3.0.1_eslint@8.4.1: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.4.1 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-import/2.25.3_eslint@8.4.1: + resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + dependencies: + array-includes: 3.1.4 + array.prototype.flat: 1.2.5 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.4.1 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.1 + has: 1.0.3 + is-core-module: 2.8.0 + is-glob: 4.0.3 + minimatch: 3.0.4 + object.values: 1.1.5 + resolve: 1.20.0 + tsconfig-paths: 3.12.0 + dev: true + + /eslint-plugin-node/11.1.0_eslint@8.4.1: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.4.1 + eslint-plugin-es: 3.0.1_eslint@8.4.1 + eslint-utils: 2.1.0 + ignore: 5.1.9 + minimatch: 3.0.4 + resolve: 1.20.0 + semver: 6.3.0 + dev: true + + /eslint-plugin-prefer-let/3.0.1: + resolution: {integrity: sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w==} + engines: {node: '>=0.10.0'} + dependencies: + requireindex: 1.2.0 + dev: true + + /eslint-plugin-promise/5.2.0_eslint@8.4.1: + resolution: {integrity: sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.0.0 + dependencies: + eslint: 8.4.1 + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.0: + resolution: {integrity: sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.4.1: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.4.1 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.1.0: + resolution: {integrity: sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.4.1: + resolution: {integrity: sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.0.5 + '@humanwhocodes/config-array': 0.9.2 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.3 + doctrine: 3.0.0 + enquirer: 2.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.0 + eslint-utils: 3.0.0_eslint@8.4.1 + eslint-visitor-keys: 3.1.0 + espree: 9.2.0 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.12.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.0.4 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.3.5 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.2.0: + resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.6.0 + acorn-jsx: 5.3.2_acorn@8.6.0 + eslint-visitor-keys: 3.1.0 + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob/3.2.7: + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up/2.1.0: + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.4 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.4: + resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==} + dev: true + + /foreground-child/2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.6 + dev: true + + /fs-extra/10.0.0: + resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.8 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + dev: true + + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals/13.12.0: + resolution: {integrity: sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.0.4: + resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.7 + ignore: 5.1.9 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /graceful-fs/4.2.8: + resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} + dev: true + + /has-bigints/1.0.1: + resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-symbols/1.0.2: + resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info/4.0.2: + resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /ignore/4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true + + /ignore/5.1.9: + resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + engines: {node: '>=0.8.19'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.1 + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: true + + /is-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module/2.8.0: + resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.6: + resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-shared-array-buffer/1.0.1: + resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports/3.1.1: + resolution: {integrity: sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + dev: true + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.8 + dev: true + + /kleur/4.1.4: + resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} + engines: {node: '>=6'} + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig/2.0.4: + resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + engines: {node: '>=10'} + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.0 + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /minimatch/3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + dev: true + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /nanodelay/1.0.8: + resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} + dev: true + + /nanoid/3.1.30: + resolution: {integrity: sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanospinner/0.5.0: + resolution: {integrity: sha512-VaEzZRHgdgvru4qr5Oe7SjalSGQsoCZrl42FEnAYHp8R+ghcok6u8Yo5U37kD+ABOjRh1IUOA64qqff+TznDfg==} + dependencies: + picocolors: 1.0.0 + dev: true + + /nanospy/0.4.0: + resolution: {integrity: sha512-PUdss1inwE0/ti+X9FKuEBLLWQusaHnLBuwYn0cjJNM446DafMS3tbTWV9C9T/NEnD+BPL0zHdnNF/FWvHelvw==} + engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.11.1: + resolution: {integrity: sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==} + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + has-symbols: 1.0.2 + object-keys: 1.1.1 + dev: true + + /object.values/1.1.5: + resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.19.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/2.0.0: + resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-try/1.0.0: + resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + engines: {node: '>=4'} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /path-exists/3.0.0: + resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch/2.3.0: + resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + engines: {node: '>=8.6'} + dev: true + + /pkg-dir/2.0.0: + resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /postcss-parser-tests/8.3.7: + resolution: {integrity: sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q==} + dependencies: + picocolors: 1.0.0 + spinnies: 0.5.1 + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /progress/2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.0 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + dev: true + + /requireindex/1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve/1.20.0: + resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} + dependencies: + is-core-module: 2.8.0 + path-parse: 1.0.7 + dev: true + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.6 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.0 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /sade/1.7.4: + resolution: {integrity: sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==} + engines: {node: '>= 6'} + dependencies: + mri: 1.2.0 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.11.1 + dev: true + + /signal-exit/3.0.6: + resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} + dev: true + + /simple-git-hooks/2.7.0: + resolution: {integrity: sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==} + hasBin: true + requiresBuild: true + dev: true + + /size-limit/7.0.4: + resolution: {integrity: sha512-IkY30erk6psU6UCg/R0crNUIWIQsTTVv1/tMtY0ifOtq6Y2F2cUC3Z0zXNAmKcncnl9HJjUIQhw2WNYRlDiv0Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + hasBin: true + dependencies: + bytes-iec: 3.1.1 + chokidar: 3.5.2 + ci-job-number: 1.2.2 + globby: 11.0.4 + lilconfig: 2.0.4 + mkdirp: 1.0.4 + nanospinner: 0.5.0 + picocolors: 1.0.0 + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /source-map-js/1.0.1: + resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + + /spinnies/0.5.1: + resolution: {integrity: sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A==} + dependencies: + chalk: 2.4.2 + cli-cursor: 3.1.0 + strip-ansi: 5.2.0 + dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /strip-ansi/5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.0 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.0 + minimatch: 3.0.4 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /totalist/2.0.0: + resolution: {integrity: sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==} + engines: {node: '>=6'} + dev: true + + /ts-node/10.4.0_74e588db5264178750052e53ffe97b8f: + resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.7.0 + '@tsconfig/node10': 1.0.8 + '@tsconfig/node12': 1.0.9 + '@tsconfig/node14': 1.0.1 + '@tsconfig/node16': 1.0.2 + '@types/node': 16.11.12 + acorn: 8.6.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.5.3 + yn: 3.1.1 + dev: true + + /tsconfig-paths/3.12.0: + resolution: {integrity: sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.5 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tsutils/3.21.0_typescript@4.5.3: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.5.3 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typescript/4.5.3: + resolution: {integrity: sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive/1.0.1: + resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + dependencies: + function-bind: 1.1.1 + has-bigints: 1.0.1 + has-symbols: 1.0.2 + which-boxed-primitive: 1.0.2 + dev: true + + /unist-util-stringify-position/3.0.0: + resolution: {integrity: sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /uvu/0.5.2: + resolution: {integrity: sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.2 + diff: 5.0.0 + kleur: 4.1.4 + sade: 1.7.4 + totalist: 2.0.0 + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8-to-istanbul/8.1.0: + resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} + engines: {node: '>=10.12.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.3 + convert-source-map: 1.8.0 + source-map: 0.7.3 + dev: true + + /vfile-location/4.0.1: + resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} + dependencies: + '@types/unist': 2.0.6 + vfile: 5.2.0 + dev: true + + /vfile-message/3.0.2: + resolution: {integrity: sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 3.0.0 + dev: true + + /vfile/5.2.0: + resolution: {integrity: sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.0 + vfile-message: 3.0.2 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.6 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/yarn.lock b/yarn.lock deleted file mode 100755 index b87eda896..000000000 --- a/yarn.lock +++ /dev/null @@ -1,2177 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - dependencies: - "@cspotcode/source-map-consumer" "0.8.0" - -"@eslint/eslintrc@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" - integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.2.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@logux/eslint-config@^46.1.0": - version "46.1.0" - resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-46.1.0.tgz#26921037e20ace9e8811bfe8672cede991ecb11c" - integrity sha512-7DikH6MvW2mc9DJHTmA9uGAPexBA69u21KNjCHqAbWPAqHD7XM++2BWBswMSJaWD3o2u+IEBFK6ZywNuPsNCbQ== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@size-limit/esbuild@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/esbuild/-/esbuild-7.0.3.tgz#5ceb2d18348ceda82365f6a800c67bb293bd0825" - integrity sha512-pqtB5wQkbFHxHo43Xjyj3XVqnl56LHKpycWKmNWhDShkF94ucCdfZJwHDMIzL6f0OUjRxd9QkA8Jv11pFzUD/Q== - dependencies: - esbuild "^0.13.14" - nanoid "^3.1.30" - -"@size-limit/file@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-7.0.3.tgz#a9ba258b8d386f557384a025c4f06f404a3035ba" - integrity sha512-jizDZduAQ71KoraRWkj6ZSHPPo8SQ/KO4z1hZBl1ZujxwF7R6NLWKghNUtIQHsXpqyZWbK3VV39lOLx7qHuLjg== - dependencies: - semver "7.3.5" - -"@size-limit/preset-small-lib@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-7.0.3.tgz#2f9409e69d0d89f059b0b841e34bad972be47ddc" - integrity sha512-UuA8ICz3BYWxbhJah8U5KxOUhA97AJbsNITp+Scy9aUXzbu2SqrsDTRmPU9ULCo3j4VgF53TBHXY4sdKC2adpw== - dependencies: - "@size-limit/esbuild" "7.0.3" - "@size-limit/file" "7.0.3" - -"@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== - -"@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== - -"@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== - -"@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== - -"@types/fs-extra@^9.0.13": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/node@*", "@types/node@^16.11.12": - version "16.11.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" - integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== - -"@types/unist@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@typescript-eslint/eslint-plugin@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz#efd8668b3d6627c46ce722c2afe813928fe120a0" - integrity sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA== - dependencies: - "@typescript-eslint/experimental-utils" "5.6.0" - "@typescript-eslint/scope-manager" "5.6.0" - debug "^4.3.2" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.2.0" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz#f3a5960f2004abdcac7bb81412bafc1560841c23" - integrity sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.6.0" - "@typescript-eslint/types" "5.6.0" - "@typescript-eslint/typescript-estree" "5.6.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.6.0.tgz#11677324659641400d653253c03dcfbed468d199" - integrity sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ== - dependencies: - "@typescript-eslint/scope-manager" "5.6.0" - "@typescript-eslint/types" "5.6.0" - "@typescript-eslint/typescript-estree" "5.6.0" - debug "^4.3.2" - -"@typescript-eslint/scope-manager@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz#9dd7f007dc8f3a34cdff6f79f5eaab27ae05157e" - integrity sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A== - dependencies: - "@typescript-eslint/types" "5.6.0" - "@typescript-eslint/visitor-keys" "5.6.0" - -"@typescript-eslint/types@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.6.0.tgz#745cb1b59daadcc1f32f7be95f0f68accf38afdd" - integrity sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA== - -"@typescript-eslint/typescript-estree@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz#dfbb19c9307fdd81bd9c650c67e8397821d7faf0" - integrity sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA== - dependencies: - "@typescript-eslint/types" "5.6.0" - "@typescript-eslint/visitor-keys" "5.6.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/visitor-keys@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz#3e36509e103fe9713d8f035ac977235fd63cb6e6" - integrity sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng== - dependencies: - "@typescript-eslint/types" "5.6.0" - eslint-visitor-keys "^3.0.0" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1, acorn@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -bytes-iec@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" - integrity sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA== - -c8@^7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.10.0.tgz#c539ebb15d246b03b0c887165982c49293958a73" - integrity sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.2" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.0.1" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.0.2" - rimraf "^3.0.0" - test-exclude "^6.0.0" - v8-to-istanbul "^8.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.7" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-dts@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.6.5.tgz#fe37f47f9493af7f55774a5a0723062b8eec34c1" - integrity sha512-/ETEH8AdxxXDXsFyzw4aiXUiO423m1ndErSSCTmE31az2IZP4DIb0qwHbVHEHiDo1z4QY2xTD0fLGn2s5UJ1tQ== - dependencies: - fast-glob "^3.2.7" - nanospinner "^0.5.0" - picocolors "^1.0.0" - vfile-location "^4.0.1" - -chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -ci-job-number@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" - integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== - -clean-publish@^3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-3.4.4.tgz#d5ffa3a4bffb76594b14706675efea7d78f42e46" - integrity sha512-eCWBBLbaOBqLtxQrjBDSI1tSmx6tKckV2H0C9/je0eQg2QOGGnjE1XKc01V8M3vKe7bJuCut5hF/yUwLGLZoVA== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.2.7" - fs-extra "^10.0.0" - hosted-git-info "^4.0.2" - lilconfig "^2.0.4" - -cli-cursor@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-with-sourcemaps@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - -convert-source-map@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.1, debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild-android-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" - integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg== - -esbuild-darwin-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72" - integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ== - -esbuild-darwin-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a" - integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ== - -esbuild-freebsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85" - integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA== - -esbuild-freebsd-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52" - integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ== - -esbuild-linux-32@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69" - integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g== - -esbuild-linux-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" - integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== - -esbuild-linux-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1" - integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA== - -esbuild-linux-arm@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe" - integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA== - -esbuild-linux-mips64le@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7" - integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg== - -esbuild-linux-ppc64le@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2" - integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ== - -esbuild-netbsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038" - integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w== - -esbuild-openbsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7" - integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g== - -esbuild-sunos-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4" - integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw== - -esbuild-windows-32@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7" - integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw== - -esbuild-windows-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294" - integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ== - -esbuild-windows-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" - integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== - -esbuild@^0.13.14: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" - integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== - optionalDependencies: - esbuild-android-arm64 "0.13.15" - esbuild-darwin-64 "0.13.15" - esbuild-darwin-arm64 "0.13.15" - esbuild-freebsd-64 "0.13.15" - esbuild-freebsd-arm64 "0.13.15" - esbuild-linux-32 "0.13.15" - esbuild-linux-64 "0.13.15" - esbuild-linux-arm "0.13.15" - esbuild-linux-arm64 "0.13.15" - esbuild-linux-mips64le "0.13.15" - esbuild-linux-ppc64le "0.13.15" - esbuild-netbsd-64 "0.13.15" - esbuild-openbsd-64 "0.13.15" - esbuild-sunos-64 "0.13.15" - esbuild-windows-32 "0.13.15" - esbuild-windows-64 "0.13.15" - esbuild-windows-arm64 "0.13.15" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-standard@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" - integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" - integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - pkg-dir "^2.0.0" - -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.25.3: - version "2.25.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" - integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.1" - has "^1.0.3" - is-core-module "^2.8.0" - is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.11.0" - -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-prefer-let@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-3.0.1.tgz#bb9e3af2c3df2df5d7334f35ac7478d794d97215" - integrity sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w== - dependencies: - requireindex "~1.2.0" - -eslint-plugin-promise@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz#a596acc32981627eb36d9d75f9666ac1a4564971" - integrity sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153" - integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" - integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== - -eslint@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.4.1.tgz#d6531bbf3e598dffd7c0c7d35ec52a0b30fdfa2d" - integrity sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg== - dependencies: - "@eslint/eslintrc" "^1.0.5" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.0" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.1.0" - espree "^9.2.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.2.0" - semver "^7.2.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.2.0.tgz#c50814e01611c2d0f8bd4daa83c369eabba80dbc" - integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg== - dependencies: - acorn "^8.6.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^3.1.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1, fast-glob@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hosted-git-info@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== - dependencies: - lru-cache "^6.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: - version "5.1.9" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" - integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-core-module@^2.2.0, is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-reports@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.1.tgz#7085857f17d2441053c6ce5c3b8fdf6882289397" - integrity sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lilconfig@^2.0.3, lilconfig@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" - integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanodelay@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/nanodelay/-/nanodelay-1.0.8.tgz#e6ff3d94f6c80b300b8fb1bbeb2eae0b5506ad0a" - integrity sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg== - -nanoid@^3.1.30: - version "3.1.30" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" - integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== - -nanospinner@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/nanospinner/-/nanospinner-0.5.0.tgz#4a328f886615c95ddc54b104bec6f1817de11f6f" - integrity sha512-VaEzZRHgdgvru4qr5Oe7SjalSGQsoCZrl42FEnAYHp8R+ghcok6u8Yo5U37kD+ABOjRh1IUOA64qqff+TznDfg== - dependencies: - picocolors "^1.0.0" - -nanospy@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/nanospy/-/nanospy-0.4.0.tgz#d2b6e1f8590c82aac25f43c6dba2a16ad7f49514" - integrity sha512-PUdss1inwE0/ti+X9FKuEBLLWQusaHnLBuwYn0cjJNM446DafMS3tbTWV9C9T/NEnD+BPL0zHdnNF/FWvHelvw== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" - integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -postcss-parser-tests@^8.3.7: - version "8.3.7" - resolved "https://registry.yarnpkg.com/postcss-parser-tests/-/postcss-parser-tests-8.3.7.tgz#d74151da5a89308ad4e77eb21acff2166df5c6e5" - integrity sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q== - dependencies: - picocolors "^1.0.0" - spinnies "^0.5.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regexpp@^3.0.0, regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -requireindex@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" - integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.10.1, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -sade@^1.7.3: - version "1.7.4" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.4.tgz#ea681e0c65d248d2095c90578c03ca0bb1b54691" - integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA== - dependencies: - mri "^1.1.0" - -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -semver@7.3.5, semver@^7.2.1, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.1.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== - -simple-git-hooks@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz#121a5c3023663b8abcc5648c8bfe8619dc263705" - integrity sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ== - -size-limit@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-7.0.4.tgz#e427c696b63e29096be97a576cd7fd95a3ec7839" - integrity sha512-IkY30erk6psU6UCg/R0crNUIWIQsTTVv1/tMtY0ifOtq6Y2F2cUC3Z0zXNAmKcncnl9HJjUIQhw2WNYRlDiv0Q== - dependencies: - bytes-iec "^3.1.1" - chokidar "^3.5.2" - ci-job-number "^1.2.2" - globby "^11.0.4" - lilconfig "^2.0.3" - mkdirp "^1.0.4" - nanospinner "^0.5.0" - picocolors "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== - -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spinnies@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/spinnies/-/spinnies-0.5.1.tgz#6ac88455d9117c7712d52898a02c969811819a7e" - integrity sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A== - dependencies: - chalk "^2.4.2" - cli-cursor "^3.0.0" - strip-ansi "^5.2.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -totalist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-2.0.0.tgz#db6f1e19c0fa63e71339bbb8fba89653c18c7eec" - integrity sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ== - -ts-node@^10.4.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" - integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== - dependencies: - "@cspotcode/source-map-support" "0.7.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - yn "3.1.1" - -tsconfig-paths@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typescript@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.3.tgz#afaa858e68c7103317d89eb90c5d8906268d353c" - integrity sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ== - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unist-util-stringify-position@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" - integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== - dependencies: - "@types/unist" "^2.0.0" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -uvu@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.2.tgz#c145e7f4b5becf80099cf22fd8a4a05f0112b2c0" - integrity sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w== - dependencies: - dequal "^2.0.0" - diff "^5.0.0" - kleur "^4.0.3" - sade "^1.7.3" - totalist "^2.0.0" - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -vfile-location@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95" - integrity sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw== - dependencies: - "@types/unist" "^2.0.0" - vfile "^5.0.0" - -vfile-message@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.2.tgz#db7eaebe7fecb853010f2ef1664427f52baf8f74" - integrity sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^3.0.0" - -vfile@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.2.0.tgz#a32a646ff9251c274dbe8675644a39031025b369" - integrity sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.2, yargs-parser@^20.2.7: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 14d8150f69b9e52e904e6d511af22fc7568ece92 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Dec 2021 02:46:15 +0300 Subject: [PATCH 2463/3047] Speed up CI --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 163c9d9ee..d698d3b55 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: node-version: 17 cache: pnpm - name: Install dependencies - run: pnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile --ignore-scripts - name: Run tests run: pnpm test env: From d3b74351967861e6a197d245ad201218954f7e6e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Dec 2021 03:02:28 +0300 Subject: [PATCH 2464/3047] Release 8.4.5 version --- CHANGELOG.md | 4 ++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d772b849..85118b5d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.5 +* Fixed `raws` types to make object extendable (by James Garbutt). +* Moved from Yarn 1 to pnpm. + ## 8.4.4 * Fixed absolute path in source map on zero plugins mode. diff --git a/lib/processor.js b/lib/processor.js index 8eb91b045..82430a422 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.4' + this.version = '8.4.5' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 65c5439df..f96690b1e 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.4", + "version": "8.4.5", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 3293f0c7bb592808fd23709d42067b009fe60d97 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Dec 2021 18:00:56 +0300 Subject: [PATCH 2465/3047] Update pnpm --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d698d3b55..588402ba3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 with: - version: 6.23.6 + version: 6.24.0 - name: Install Node.js uses: actions/setup-node@v2 with: @@ -39,7 +39,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 with: - version: 6.23.6 + version: 6.24.0 - name: Install Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: @@ -86,7 +86,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 with: - version: 6.23.6 + version: 6.24.0 - name: Install Node.js LTS uses: actions/setup-node@v2 with: From 690bf4048e0d81186eb0217ad0648ba6c4e3e4eb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Dec 2021 18:01:49 +0300 Subject: [PATCH 2466/3047] Update dependencies --- package.json | 10 +-- pnpm-lock.yaml | 234 ++++++++++++++++++++++++------------------------- 2 files changed, 122 insertions(+), 122 deletions(-) diff --git a/package.json b/package.json index f96690b1e..3f853ca79 100755 --- a/package.json +++ b/package.json @@ -75,11 +75,11 @@ }, "devDependencies": { "@logux/eslint-config": "^46.1.0", - "@size-limit/preset-small-lib": "^7.0.3", + "@size-limit/preset-small-lib": "^7.0.4", "@types/fs-extra": "^9.0.13", "@types/node": "^16.11.12", - "@typescript-eslint/eslint-plugin": "^5.6.0", - "@typescript-eslint/parser": "^5.6.0", + "@typescript-eslint/eslint-plugin": "^5.7.0", + "@typescript-eslint/parser": "^5.7.0", "c8": "^7.10.0", "check-dts": "^0.6.5", "clean-publish": "^3.4.4", @@ -96,9 +96,9 @@ "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.4", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "ts-node": "^10.4.0", - "typescript": "^4.5.3", + "typescript": "^4.5.4", "uvu": "^0.5.2" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9dcbc433..4faa73647 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,11 +2,11 @@ lockfileVersion: 5.3 specifiers: '@logux/eslint-config': ^46.1.0 - '@size-limit/preset-small-lib': ^7.0.3 + '@size-limit/preset-small-lib': ^7.0.4 '@types/fs-extra': ^9.0.13 '@types/node': ^16.11.12 - '@typescript-eslint/eslint-plugin': ^5.6.0 - '@typescript-eslint/parser': ^5.6.0 + '@typescript-eslint/eslint-plugin': ^5.7.0 + '@typescript-eslint/parser': ^5.7.0 c8: ^7.10.0 check-dts: ^0.6.5 clean-publish: ^3.4.4 @@ -26,9 +26,9 @@ specifiers: simple-git-hooks: ^2.7.0 size-limit: ^7.0.4 source-map-js: ^1.0.1 - strip-ansi: ^6.0.0 + strip-ansi: ^6.0.1 ts-node: ^10.4.0 - typescript: ^4.5.3 + typescript: ^4.5.4 uvu: ^0.5.2 dependencies: @@ -38,13 +38,13 @@ dependencies: devDependencies: '@logux/eslint-config': 46.1.0_c1affbe72d0502c497cacc5a11eac21f - '@size-limit/preset-small-lib': 7.0.3_size-limit@7.0.4 + '@size-limit/preset-small-lib': 7.0.4_size-limit@7.0.4 '@types/fs-extra': 9.0.13 '@types/node': 16.11.12 - '@typescript-eslint/eslint-plugin': 5.6.0_0d0cecf582ba45923647a091322795b0 - '@typescript-eslint/parser': 5.6.0_eslint@8.4.1+typescript@4.5.3 + '@typescript-eslint/eslint-plugin': 5.7.0_915acdfead96f701b1277a1a723fc8d4 + '@typescript-eslint/parser': 5.7.0_eslint@8.4.1+typescript@4.5.4 c8: 7.10.0 - check-dts: 0.6.5_typescript@4.5.3 + check-dts: 0.6.5_typescript@4.5.4 clean-publish: 3.4.4 concat-with-sourcemaps: 1.1.0 eslint: 8.4.1 @@ -60,8 +60,8 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.4 strip-ansi: 6.0.1 - ts-node: 10.4.0_74e588db5264178750052e53ffe97b8f - typescript: 4.5.3 + ts-node: 10.4.0_b6e8374966de429fb31cc39444331b2d + typescript: 4.5.4 uvu: 0.5.2 packages: @@ -159,34 +159,34 @@ packages: fastq: 1.13.0 dev: true - /@size-limit/esbuild/7.0.3_size-limit@7.0.4: - resolution: {integrity: sha512-pqtB5wQkbFHxHo43Xjyj3XVqnl56LHKpycWKmNWhDShkF94ucCdfZJwHDMIzL6f0OUjRxd9QkA8Jv11pFzUD/Q==} + /@size-limit/esbuild/7.0.4_size-limit@7.0.4: + resolution: {integrity: sha512-gfkr96LQ8zCWKDGTfnBed8K4kmQccB/cQxnqK7bMis/X0qSpeMFwDG9WO9JrjDgNRVjbncB26Qtnain58KC2Xw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: - size-limit: 7.0.3 + size-limit: 7.0.4 dependencies: - esbuild: 0.13.15 + esbuild: 0.14.3 nanoid: 3.1.30 size-limit: 7.0.4 dev: true - /@size-limit/file/7.0.3_size-limit@7.0.4: - resolution: {integrity: sha512-jizDZduAQ71KoraRWkj6ZSHPPo8SQ/KO4z1hZBl1ZujxwF7R6NLWKghNUtIQHsXpqyZWbK3VV39lOLx7qHuLjg==} + /@size-limit/file/7.0.4_size-limit@7.0.4: + resolution: {integrity: sha512-/UfiOp8bDIdmNs0c8IQgGKlByo1esoayZ6+Pr/LQCJPZWPyQWVeGTo+J/+aYa9+5+r6ezvmAF5aR7VVt+rvW2Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: - size-limit: 7.0.3 + size-limit: 7.0.4 dependencies: semver: 7.3.5 size-limit: 7.0.4 dev: true - /@size-limit/preset-small-lib/7.0.3_size-limit@7.0.4: - resolution: {integrity: sha512-UuA8ICz3BYWxbhJah8U5KxOUhA97AJbsNITp+Scy9aUXzbu2SqrsDTRmPU9ULCo3j4VgF53TBHXY4sdKC2adpw==} + /@size-limit/preset-small-lib/7.0.4_size-limit@7.0.4: + resolution: {integrity: sha512-FS3qDDfcks3ZNKciGYxhSfiyVIQ64N6oZZABsWneHvZjOpR6KUjwPVboX2rBZGKT2an1KHs5CkHoM+oscxGWEw==} peerDependencies: - size-limit: 7.0.3 + size-limit: 7.0.4 dependencies: - '@size-limit/esbuild': 7.0.3_size-limit@7.0.4 - '@size-limit/file': 7.0.3_size-limit@7.0.4 + '@size-limit/esbuild': 7.0.4_size-limit@7.0.4 + '@size-limit/file': 7.0.4_size-limit@7.0.4 size-limit: 7.0.4 dev: true @@ -232,8 +232,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.6.0_0d0cecf582ba45923647a091322795b0: - resolution: {integrity: sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==} + /@typescript-eslint/eslint-plugin/5.7.0_915acdfead96f701b1277a1a723fc8d4: + resolution: {integrity: sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,31 +243,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.6.0_eslint@8.4.1+typescript@4.5.3 - '@typescript-eslint/parser': 5.6.0_eslint@8.4.1+typescript@4.5.3 - '@typescript-eslint/scope-manager': 5.6.0 + '@typescript-eslint/experimental-utils': 5.7.0_eslint@8.4.1+typescript@4.5.4 + '@typescript-eslint/parser': 5.7.0_eslint@8.4.1+typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.7.0 debug: 4.3.3 eslint: 8.4.1 functional-red-black-tree: 1.0.1 ignore: 5.1.9 regexpp: 3.2.0 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.3 - typescript: 4.5.3 + tsutils: 3.21.0_typescript@4.5.4 + typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.6.0_eslint@8.4.1+typescript@4.5.3: - resolution: {integrity: sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==} + /@typescript-eslint/experimental-utils/5.7.0_eslint@8.4.1+typescript@4.5.4: + resolution: {integrity: sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.6.0 - '@typescript-eslint/types': 5.6.0 - '@typescript-eslint/typescript-estree': 5.6.0_typescript@4.5.3 + '@typescript-eslint/scope-manager': 5.7.0 + '@typescript-eslint/types': 5.7.0 + '@typescript-eslint/typescript-estree': 5.7.0_typescript@4.5.4 eslint: 8.4.1 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.4.1 @@ -276,8 +276,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/5.6.0_eslint@8.4.1+typescript@4.5.3: - resolution: {integrity: sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==} + /@typescript-eslint/parser/5.7.0_eslint@8.4.1+typescript@4.5.4: + resolution: {integrity: sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -286,31 +286,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.6.0 - '@typescript-eslint/types': 5.6.0 - '@typescript-eslint/typescript-estree': 5.6.0_typescript@4.5.3 + '@typescript-eslint/scope-manager': 5.7.0 + '@typescript-eslint/types': 5.7.0 + '@typescript-eslint/typescript-estree': 5.7.0_typescript@4.5.4 debug: 4.3.3 eslint: 8.4.1 - typescript: 4.5.3 + typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.6.0: - resolution: {integrity: sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==} + /@typescript-eslint/scope-manager/5.7.0: + resolution: {integrity: sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.6.0 - '@typescript-eslint/visitor-keys': 5.6.0 + '@typescript-eslint/types': 5.7.0 + '@typescript-eslint/visitor-keys': 5.7.0 dev: true - /@typescript-eslint/types/5.6.0: - resolution: {integrity: sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==} + /@typescript-eslint/types/5.7.0: + resolution: {integrity: sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.6.0_typescript@4.5.3: - resolution: {integrity: sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==} + /@typescript-eslint/typescript-estree/5.7.0_typescript@4.5.4: + resolution: {integrity: sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -318,23 +318,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.6.0 - '@typescript-eslint/visitor-keys': 5.6.0 + '@typescript-eslint/types': 5.7.0 + '@typescript-eslint/visitor-keys': 5.7.0 debug: 4.3.3 globby: 11.0.4 is-glob: 4.0.3 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.3 - typescript: 4.5.3 + tsutils: 3.21.0_typescript@4.5.4 + typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/visitor-keys/5.6.0: - resolution: {integrity: sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==} + /@typescript-eslint/visitor-keys/5.7.0: + resolution: {integrity: sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.6.0 + '@typescript-eslint/types': 5.7.0 eslint-visitor-keys: 3.1.0 dev: true @@ -512,7 +512,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.5_typescript@4.5.3: + /check-dts/0.6.5_typescript@4.5.4: resolution: {integrity: sha512-/ETEH8AdxxXDXsFyzw4aiXUiO423m1ndErSSCTmE31az2IZP4DIb0qwHbVHEHiDo1z4QY2xTD0fLGn2s5UJ1tQ==} engines: {node: '>=12.16.0'} hasBin: true @@ -522,7 +522,7 @@ packages: fast-glob: 3.2.7 nanospinner: 0.5.0 picocolors: 1.0.0 - typescript: 4.5.3 + typescript: 4.5.4 vfile-location: 4.0.1 dev: true @@ -739,164 +739,164 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.13.15: - resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} + /esbuild-android-arm64/0.14.3: + resolution: {integrity: sha512-v/vdnGJiSGWOAXzg422T9qb4S+P3tOaYtc5n3FDR27Bh3/xQDS7PdYz/yY7HhOlVp0eGwWNbPHEi8FcEhXjsuw==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.13.15: - resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==} + /esbuild-darwin-64/0.14.3: + resolution: {integrity: sha512-swY5OtEg6cfWdgc/XEjkBP7wXSyXXeZHEsWMdh1bDiN1D6GmRphk9SgKFKTj+P3ZHhOGIcC1+UdIwHk5bUcOig==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.13.15: - resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==} + /esbuild-darwin-arm64/0.14.3: + resolution: {integrity: sha512-6i9dXPk8oT87wF6VHmwzSad76eMRU2Rt+GXrwF3Y4DCJgnPssJbabNQ9gurkuEX8M0YnEyJF0d1cR7rpTzcEiA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.13.15: - resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==} + /esbuild-freebsd-64/0.14.3: + resolution: {integrity: sha512-WDY5ENsmyceeE+95U3eI+FM8yARY5akWkf21M/x/+v2P5OVsYqCYELglSeAI5Y7bhteCVV3g4i2fRqtkmprdSA==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.13.15: - resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==} + /esbuild-freebsd-arm64/0.14.3: + resolution: {integrity: sha512-4BEEGcP0wBzg04pCCWXlgaPuksQHHfwHvYgCIsi+7IsuB17ykt6MHhTkHR5b5pjI/jNtRhPfMsDODUyftQJgvw==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.13.15: - resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==} + /esbuild-linux-32/0.14.3: + resolution: {integrity: sha512-8yhsnjLG/GwCA1RAIndjmCHWViRB2Ol0XeOh2fCXS9qF8tlVrJB7qAiHZpm2vXx+yjOA/bFLTxzU+5pMKqkn5A==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.13.15: - resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==} + /esbuild-linux-64/0.14.3: + resolution: {integrity: sha512-eNq4aixfbwXHIJq4bQDe+XaSNV1grxqpZYs/zHbp0HGHf6SBNlTI02uyTbYGpIzlXmCEPS9tpPCi7BTU45kcJQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.13.15: - resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==} + /esbuild-linux-arm/0.14.3: + resolution: {integrity: sha512-YcMvJHAQnWrWKb+eLxN9e/iWUC/3w01UF/RXuMknqOW3prX8UQ63QknWz9/RI8BY/sdrdgPEbSmsTU2jy2cayQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.13.15: - resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==} + /esbuild-linux-arm64/0.14.3: + resolution: {integrity: sha512-wPLyRoqoV/tEMQ7M24DpAmCMyKqBmtgZY35w2tXM8X5O5b2Ohi7fkPSmd6ZgLIxZIApWt88toA8RT0S7qoxcOA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.13.15: - resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==} + /esbuild-linux-mips64le/0.14.3: + resolution: {integrity: sha512-DdmfM5rcuoqjQL3px5MbquAjZWnySB5LdTrg52SSapp0gXMnGcsM6GY2WVta02CMKn5qi7WPVG4WbqTWE++tJw==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.13.15: - resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==} + /esbuild-linux-ppc64le/0.14.3: + resolution: {integrity: sha512-ujdqryj0m135Ms9yaNDVFAcLeRtyftM/v2v7Osji5zElf2TivSMdFxdrYnYICuHfkm8c8gHg1ncwqitL0r+nnA==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.13.15: - resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} + /esbuild-netbsd-64/0.14.3: + resolution: {integrity: sha512-Z/UB9OUdwo1KDJCSGnVueDuKowRZRkduLvRMegHtDBHC3lS5LfZ3RdM1i+4MMN9iafyk8Q9FNcqIXI178ZujvA==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.13.15: - resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==} + /esbuild-openbsd-64/0.14.3: + resolution: {integrity: sha512-9I1uoMDeogq3zQuTe3qygmXYjImnvc6rBn51LLbLniQDlfvqHPBMnAZ/5KshwtXXIIMkCwByytDZdiuzRRlTvQ==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.13.15: - resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==} + /esbuild-sunos-64/0.14.3: + resolution: {integrity: sha512-pldqx/Adxl4V4ymiyKxOOyJmHn6nUIo3wqk2xBx07iDgmL2XTcDDQd7N4U4QGu9LnYN4ZF+8IdOYa3oRRpbjtg==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.13.15: - resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==} + /esbuild-windows-32/0.14.3: + resolution: {integrity: sha512-AqzvA/KbkC2m3kTXGpljLin3EttRbtoPTfBn6w6n2m9MWkTEbhQbE1ONoOBxhO5tExmyJdL/6B87TJJD5jEFBQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.13.15: - resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==} + /esbuild-windows-64/0.14.3: + resolution: {integrity: sha512-HGg3C6113zLGB5hN41PROTnBuoh/arG2lQdOird6xFl9giff1cAfMQOUJUfODKD57dDqHjQ1YGW8gOkg0/IrWw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.13.15: - resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==} + /esbuild-windows-arm64/0.14.3: + resolution: {integrity: sha512-qB2izYu4VpigGnOrAN2Yv7ICYLZWY/AojZtwFfteViDnHgW4jXPYkHQIXTISJbRz25H2cYiv+MfRQYK31RNjlw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.13.15: - resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==} + /esbuild/0.14.3: + resolution: {integrity: sha512-zyEC5hkguW2oieXRXp8VJzQdcO/1FxCS5GjzqOHItRlojXnx/cTavsrkxdWvBH9li2lUq0bN+LeeVEmyCwiR/Q==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.13.15 - esbuild-darwin-64: 0.13.15 - esbuild-darwin-arm64: 0.13.15 - esbuild-freebsd-64: 0.13.15 - esbuild-freebsd-arm64: 0.13.15 - esbuild-linux-32: 0.13.15 - esbuild-linux-64: 0.13.15 - esbuild-linux-arm: 0.13.15 - esbuild-linux-arm64: 0.13.15 - esbuild-linux-mips64le: 0.13.15 - esbuild-linux-ppc64le: 0.13.15 - esbuild-netbsd-64: 0.13.15 - esbuild-openbsd-64: 0.13.15 - esbuild-sunos-64: 0.13.15 - esbuild-windows-32: 0.13.15 - esbuild-windows-64: 0.13.15 - esbuild-windows-arm64: 0.13.15 + esbuild-android-arm64: 0.14.3 + esbuild-darwin-64: 0.14.3 + esbuild-darwin-arm64: 0.14.3 + esbuild-freebsd-64: 0.14.3 + esbuild-freebsd-arm64: 0.14.3 + esbuild-linux-32: 0.14.3 + esbuild-linux-64: 0.14.3 + esbuild-linux-arm: 0.14.3 + esbuild-linux-arm64: 0.14.3 + esbuild-linux-mips64le: 0.14.3 + esbuild-linux-ppc64le: 0.14.3 + esbuild-netbsd-64: 0.14.3 + esbuild-openbsd-64: 0.14.3 + esbuild-sunos-64: 0.14.3 + esbuild-windows-32: 0.14.3 + esbuild-windows-64: 0.14.3 + esbuild-windows-arm64: 0.14.3 dev: true /escalade/3.1.1: @@ -2111,7 +2111,7 @@ packages: engines: {node: '>=6'} dev: true - /ts-node/10.4.0_74e588db5264178750052e53ffe97b8f: + /ts-node/10.4.0_b6e8374966de429fb31cc39444331b2d: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2137,7 +2137,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.5.3 + typescript: 4.5.4 yn: 3.1.1 dev: true @@ -2154,14 +2154,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.5.3: + /tsutils/3.21.0_typescript@4.5.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.5.3 + typescript: 4.5.4 dev: true /type-check/0.4.0: @@ -2176,8 +2176,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.5.3: - resolution: {integrity: sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==} + /typescript/4.5.4: + resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==} engines: {node: '>=4.2.0'} hasBin: true dev: true From bb43405a28893b82d4b98086e4dd38c21f7288fe Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 16 Dec 2021 17:15:27 +0300 Subject: [PATCH 2467/3047] Use latest pnpm --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 588402ba3..016b774b2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 with: - version: 6.24.0 + version: latest - name: Install Node.js uses: actions/setup-node@v2 with: @@ -39,7 +39,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 with: - version: 6.24.0 + version: latest - name: Install Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: @@ -64,7 +64,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v1 with: - version: 3.8.1 + version: latest env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js ${{ matrix.node-version }} @@ -86,7 +86,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 with: - version: 6.24.0 + version: latest - name: Install Node.js LTS uses: actions/setup-node@v2 with: From fac13f5580f34a27afb5f4a25f3185dfbf4e2eb2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 16 Dec 2021 17:15:55 +0300 Subject: [PATCH 2468/3047] Update dependencies --- package.json | 2 +- pnpm-lock.yaml | 124 ++++++++++++++++++++++++------------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index 3f853ca79..a6838b930 100755 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@logux/eslint-config": "^46.1.0", "@size-limit/preset-small-lib": "^7.0.4", "@types/fs-extra": "^9.0.13", - "@types/node": "^16.11.12", + "@types/node": "^17.0.0", "@typescript-eslint/eslint-plugin": "^5.7.0", "@typescript-eslint/parser": "^5.7.0", "c8": "^7.10.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4faa73647..70e251572 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,7 +4,7 @@ specifiers: '@logux/eslint-config': ^46.1.0 '@size-limit/preset-small-lib': ^7.0.4 '@types/fs-extra': ^9.0.13 - '@types/node': ^16.11.12 + '@types/node': ^17.0.0 '@typescript-eslint/eslint-plugin': ^5.7.0 '@typescript-eslint/parser': ^5.7.0 c8: ^7.10.0 @@ -40,7 +40,7 @@ devDependencies: '@logux/eslint-config': 46.1.0_c1affbe72d0502c497cacc5a11eac21f '@size-limit/preset-small-lib': 7.0.4_size-limit@7.0.4 '@types/fs-extra': 9.0.13 - '@types/node': 16.11.12 + '@types/node': 17.0.0 '@typescript-eslint/eslint-plugin': 5.7.0_915acdfead96f701b1277a1a723fc8d4 '@typescript-eslint/parser': 5.7.0_eslint@8.4.1+typescript@4.5.4 c8: 7.10.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.4 strip-ansi: 6.0.1 - ts-node: 10.4.0_b6e8374966de429fb31cc39444331b2d + ts-node: 10.4.0_cb9fa2b677905e47db2aeff929cdeb55 typescript: 4.5.4 uvu: 0.5.2 @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.4 dependencies: - esbuild: 0.14.3 + esbuild: 0.14.5 nanoid: 3.1.30 size-limit: 7.0.4 dev: true @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 16.11.12 + '@types/node': 17.0.0 dev: true /@types/istanbul-lib-coverage/2.0.3: @@ -224,8 +224,8 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/16.11.12: - resolution: {integrity: sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==} + /@types/node/17.0.0: + resolution: {integrity: sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==} dev: true /@types/unist/2.0.6: @@ -739,164 +739,164 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.3: - resolution: {integrity: sha512-v/vdnGJiSGWOAXzg422T9qb4S+P3tOaYtc5n3FDR27Bh3/xQDS7PdYz/yY7HhOlVp0eGwWNbPHEi8FcEhXjsuw==} + /esbuild-android-arm64/0.14.5: + resolution: {integrity: sha512-Sl6ysm7OAZZz+X3Mv3tOPhjMuSxNmztgoXH4ZZ3Yhbje5emEY6qiTnv3vBSljDlUl/yGaIjqC44qlj8s8G71xA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.3: - resolution: {integrity: sha512-swY5OtEg6cfWdgc/XEjkBP7wXSyXXeZHEsWMdh1bDiN1D6GmRphk9SgKFKTj+P3ZHhOGIcC1+UdIwHk5bUcOig==} + /esbuild-darwin-64/0.14.5: + resolution: {integrity: sha512-VHZl23sM9BOZXcLxk1vTYls8TCAY+/3llw9vHKIWAHDHzBBOlVv26ORK8gnStNMqTjCSGSMoq4T5jOZf2WrJPQ==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.3: - resolution: {integrity: sha512-6i9dXPk8oT87wF6VHmwzSad76eMRU2Rt+GXrwF3Y4DCJgnPssJbabNQ9gurkuEX8M0YnEyJF0d1cR7rpTzcEiA==} + /esbuild-darwin-arm64/0.14.5: + resolution: {integrity: sha512-ugPOLgEQPoPLSqAFBajaczt+lcbUZR+V2fby3572h5jf/kFV6UL8LAZ1Ze58hcbKwfvbh4C09kp0PhqPgXKwOg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.3: - resolution: {integrity: sha512-WDY5ENsmyceeE+95U3eI+FM8yARY5akWkf21M/x/+v2P5OVsYqCYELglSeAI5Y7bhteCVV3g4i2fRqtkmprdSA==} + /esbuild-freebsd-64/0.14.5: + resolution: {integrity: sha512-uP0yOixSHF505o/Kzq9e4bvZblCZp9GGx+a7enLOVSuvIvLmtj2yhZLRPGfbVNkPJXktTKNRAnNGkXHl53M6sw==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.3: - resolution: {integrity: sha512-4BEEGcP0wBzg04pCCWXlgaPuksQHHfwHvYgCIsi+7IsuB17ykt6MHhTkHR5b5pjI/jNtRhPfMsDODUyftQJgvw==} + /esbuild-freebsd-arm64/0.14.5: + resolution: {integrity: sha512-M99NPu8hlirFo6Fgx0WfX6XxUFdGclUNv3MyyfDtTdNYbccMESwLSACGpE7HvJKWscdjaqajeMu2an9adGNfCw==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.3: - resolution: {integrity: sha512-8yhsnjLG/GwCA1RAIndjmCHWViRB2Ol0XeOh2fCXS9qF8tlVrJB7qAiHZpm2vXx+yjOA/bFLTxzU+5pMKqkn5A==} + /esbuild-linux-32/0.14.5: + resolution: {integrity: sha512-hfqln4yb/jf/vPvI/A6aCvpIzqF3PdDmrKiikTohEUuRtvEZz234krtNwEAw5ssCue4NX8BJqrMpCTAHOl3LQw==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.3: - resolution: {integrity: sha512-eNq4aixfbwXHIJq4bQDe+XaSNV1grxqpZYs/zHbp0HGHf6SBNlTI02uyTbYGpIzlXmCEPS9tpPCi7BTU45kcJQ==} + /esbuild-linux-64/0.14.5: + resolution: {integrity: sha512-T+OuYPlhytjj5DsvjUXizNjbV+/IrZiaDc9SNUfqiUOXHu0URFqchjhPVbBiBnWykCMJFB6pqNap2Oxth4iuYw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.3: - resolution: {integrity: sha512-YcMvJHAQnWrWKb+eLxN9e/iWUC/3w01UF/RXuMknqOW3prX8UQ63QknWz9/RI8BY/sdrdgPEbSmsTU2jy2cayQ==} + /esbuild-linux-arm/0.14.5: + resolution: {integrity: sha512-5b10jKJ3lU4BUchOw9TgRResu8UZJf8qVjAzV5muHedonCfBzClGTT4KCNuOcLTJomH3wz6gNVJt1AxMglXnJg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.3: - resolution: {integrity: sha512-wPLyRoqoV/tEMQ7M24DpAmCMyKqBmtgZY35w2tXM8X5O5b2Ohi7fkPSmd6ZgLIxZIApWt88toA8RT0S7qoxcOA==} + /esbuild-linux-arm64/0.14.5: + resolution: {integrity: sha512-ANOzoaH4kfbhEZT0EGY9g1tsZhDA+I0FRwBsj7D8pCU900pXF/l8YAOy5jWFQIb3vjG5+orFc5SqSzAKCisvTQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.3: - resolution: {integrity: sha512-DdmfM5rcuoqjQL3px5MbquAjZWnySB5LdTrg52SSapp0gXMnGcsM6GY2WVta02CMKn5qi7WPVG4WbqTWE++tJw==} + /esbuild-linux-mips64le/0.14.5: + resolution: {integrity: sha512-sSmGfOUNNB2Nd3tzp1RHSxiJmM5/RUIEP5aAtH+PpOP7FPp15Jcfwq7UNBJ82KLN3SJcwhUeEfcCaUFBzbTKxg==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.3: - resolution: {integrity: sha512-ujdqryj0m135Ms9yaNDVFAcLeRtyftM/v2v7Osji5zElf2TivSMdFxdrYnYICuHfkm8c8gHg1ncwqitL0r+nnA==} + /esbuild-linux-ppc64le/0.14.5: + resolution: {integrity: sha512-usfQrVVIQcpuc/U2NWc7/Ry+m622v+PjJ5eErNPdjWBPlcvD6kXaBTv94uQkVzZOHX3uYqprRrOjseed9ApSYA==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.3: - resolution: {integrity: sha512-Z/UB9OUdwo1KDJCSGnVueDuKowRZRkduLvRMegHtDBHC3lS5LfZ3RdM1i+4MMN9iafyk8Q9FNcqIXI178ZujvA==} + /esbuild-netbsd-64/0.14.5: + resolution: {integrity: sha512-Q5KpvPZcPnNEaTjrvuWqvEnlhI2jyi1wWwYunlEUAhx60spQOTy10sdYOA+s1M+LPb6kwvasrZZDmYyQlcVZeA==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.3: - resolution: {integrity: sha512-9I1uoMDeogq3zQuTe3qygmXYjImnvc6rBn51LLbLniQDlfvqHPBMnAZ/5KshwtXXIIMkCwByytDZdiuzRRlTvQ==} + /esbuild-openbsd-64/0.14.5: + resolution: {integrity: sha512-RZzRUu1RYKextJgXkHhAsuhLDvm73YP/wogpUG9MaAGvKTxnKAKRuaw2zJfnbz8iBqBQB2no2PmpVBNbqUTQrw==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.3: - resolution: {integrity: sha512-pldqx/Adxl4V4ymiyKxOOyJmHn6nUIo3wqk2xBx07iDgmL2XTcDDQd7N4U4QGu9LnYN4ZF+8IdOYa3oRRpbjtg==} + /esbuild-sunos-64/0.14.5: + resolution: {integrity: sha512-J2ffKsBBWscQlye+/giEgKsQCppwHHFqqt/sh+ojVF+DZy1ve6RpPGwXGcGF6IaZTAI9+Vk4eHleiQxb+PC9Yw==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.3: - resolution: {integrity: sha512-AqzvA/KbkC2m3kTXGpljLin3EttRbtoPTfBn6w6n2m9MWkTEbhQbE1ONoOBxhO5tExmyJdL/6B87TJJD5jEFBQ==} + /esbuild-windows-32/0.14.5: + resolution: {integrity: sha512-OTZvuAc1JBnwmeT+hR1+Vmgz6LOD7DggpnwtKMAExruSLxUMl02Z3pyalJ7zKh3gJ/KBRM1JQZLSk4/mFWijeQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.3: - resolution: {integrity: sha512-HGg3C6113zLGB5hN41PROTnBuoh/arG2lQdOird6xFl9giff1cAfMQOUJUfODKD57dDqHjQ1YGW8gOkg0/IrWw==} + /esbuild-windows-64/0.14.5: + resolution: {integrity: sha512-ZM9rlBDsPEeMVJ1wcpNMXUad9VzYOFeOBUXBi+16HZTvFPy2DkcC2ZWcrByP3IESToD5lvHdjSX/w8rxphjqig==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.3: - resolution: {integrity: sha512-qB2izYu4VpigGnOrAN2Yv7ICYLZWY/AojZtwFfteViDnHgW4jXPYkHQIXTISJbRz25H2cYiv+MfRQYK31RNjlw==} + /esbuild-windows-arm64/0.14.5: + resolution: {integrity: sha512-iK41mKG2LG0AKHE+9g/jDYU5ZQpJObt1uIPSGTiiiJKI5qbHdEck6Gaqq2tmBI933F2zB9yqZIX7IAdxwN/q4A==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.3: - resolution: {integrity: sha512-zyEC5hkguW2oieXRXp8VJzQdcO/1FxCS5GjzqOHItRlojXnx/cTavsrkxdWvBH9li2lUq0bN+LeeVEmyCwiR/Q==} + /esbuild/0.14.5: + resolution: {integrity: sha512-ofwgH4ITPXhkMo2AM39oXpSe5KIyWjxicdqYVy+tLa1lMgxzPCKwaepcrSRtYbgTUMXwquxB1C3xQYpUNaPAFA==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.3 - esbuild-darwin-64: 0.14.3 - esbuild-darwin-arm64: 0.14.3 - esbuild-freebsd-64: 0.14.3 - esbuild-freebsd-arm64: 0.14.3 - esbuild-linux-32: 0.14.3 - esbuild-linux-64: 0.14.3 - esbuild-linux-arm: 0.14.3 - esbuild-linux-arm64: 0.14.3 - esbuild-linux-mips64le: 0.14.3 - esbuild-linux-ppc64le: 0.14.3 - esbuild-netbsd-64: 0.14.3 - esbuild-openbsd-64: 0.14.3 - esbuild-sunos-64: 0.14.3 - esbuild-windows-32: 0.14.3 - esbuild-windows-64: 0.14.3 - esbuild-windows-arm64: 0.14.3 + esbuild-android-arm64: 0.14.5 + esbuild-darwin-64: 0.14.5 + esbuild-darwin-arm64: 0.14.5 + esbuild-freebsd-64: 0.14.5 + esbuild-freebsd-arm64: 0.14.5 + esbuild-linux-32: 0.14.5 + esbuild-linux-64: 0.14.5 + esbuild-linux-arm: 0.14.5 + esbuild-linux-arm64: 0.14.5 + esbuild-linux-mips64le: 0.14.5 + esbuild-linux-ppc64le: 0.14.5 + esbuild-netbsd-64: 0.14.5 + esbuild-openbsd-64: 0.14.5 + esbuild-sunos-64: 0.14.5 + esbuild-windows-32: 0.14.5 + esbuild-windows-64: 0.14.5 + esbuild-windows-arm64: 0.14.5 dev: true /escalade/3.1.1: @@ -2111,7 +2111,7 @@ packages: engines: {node: '>=6'} dev: true - /ts-node/10.4.0_b6e8374966de429fb31cc39444331b2d: + /ts-node/10.4.0_cb9fa2b677905e47db2aeff929cdeb55: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2130,7 +2130,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 16.11.12 + '@types/node': 17.0.0 acorn: 8.6.0 acorn-walk: 8.2.0 arg: 4.1.3 From 48c00464555200ebe4971821b5e8bc54fbc538b0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 16 Dec 2021 17:18:17 +0300 Subject: [PATCH 2469/3047] Fix old Node.js and pnpm --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 016b774b2..e7a8f6291 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,7 +64,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v1 with: - version: latest + version: 3 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js ${{ matrix.node-version }} From 74f2fadf3d2c5fdc6271a93322c4704422cfc973 Mon Sep 17 00:00:00 2001 From: Vladislav Sholokhov Date: Thu, 23 Dec 2021 12:04:31 +0300 Subject: [PATCH 2470/3047] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c8c333c42..933e1ce79 100644 --- a/README.md +++ b/README.md @@ -508,10 +508,9 @@ module.exports = { ### WebStorm -WebStorm 2016.3 [has] built-in PostCSS support. - -[has]: https://blog.jetbrains.com/webstorm/2016/08/webstorm-2016-3-early-access-preview/ +To get support for PostCSS in WebStorm and other JetBrains IDEs you need to install [this plugin][jb-plugin]. +[jb-plugin]: https://plugins.jetbrains.com/plugin/8578-postcss ## Security Contact From 37b7af88a4639232f9c61772e5214016f23cfab0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 24 Dec 2021 23:45:24 +0300 Subject: [PATCH 2471/3047] Clean up CI config --- .github/workflows/test.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e7a8f6291..d819e02a1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,11 +53,7 @@ jobs: FORCE_COLOR: 2 old: runs-on: ubuntu-latest - strategy: - matrix: - node-version: - - 10 - name: Node.js ${{ matrix.node-version }} Quick + name: Node.js 10 Quick steps: - name: Checkout the repository uses: actions/checkout@v2 @@ -67,10 +63,10 @@ jobs: version: 3 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - - name: Install Node.js ${{ matrix.node-version }} + - name: Install Node.js 10 uses: actions/setup-node@v2 with: - node-version: ${{ matrix.node-version }} + node-version: 10 - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests From 4071302f9d9e5e9e67b77555767d395fd65b3c62 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 24 Dec 2021 23:46:53 +0300 Subject: [PATCH 2472/3047] Update dependencies --- package.json | 12 +- pnpm-lock.yaml | 321 +++++++++++++++++++++++++------------------------ 2 files changed, 171 insertions(+), 162 deletions(-) diff --git a/package.json b/package.json index a6838b930..f45140263 100755 --- a/package.json +++ b/package.json @@ -74,22 +74,22 @@ "source-map-js": "^1.0.1" }, "devDependencies": { - "@logux/eslint-config": "^46.1.0", + "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.4", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.0", - "@typescript-eslint/eslint-plugin": "^5.7.0", - "@typescript-eslint/parser": "^5.7.0", + "@types/node": "^17.0.4", + "@typescript-eslint/eslint-plugin": "^5.8.0", + "@typescript-eslint/parser": "^5.8.0", "c8": "^7.10.0", "check-dts": "^0.6.5", "clean-publish": "^3.4.4", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.4.1", + "eslint": "^8.5.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", - "eslint-plugin-promise": "^5.2.0", + "eslint-plugin-promise": "^6.0.0", "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "nanospy": "^0.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70e251572..c96d19940 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,22 +1,22 @@ lockfileVersion: 5.3 specifiers: - '@logux/eslint-config': ^46.1.0 + '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.4 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.0 - '@typescript-eslint/eslint-plugin': ^5.7.0 - '@typescript-eslint/parser': ^5.7.0 + '@types/node': ^17.0.4 + '@typescript-eslint/eslint-plugin': ^5.8.0 + '@typescript-eslint/parser': ^5.8.0 c8: ^7.10.0 check-dts: ^0.6.5 clean-publish: ^3.4.4 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.4.1 + eslint: ^8.5.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.3 eslint-plugin-node: ^11.1.0 eslint-plugin-prefer-let: ^3.0.1 - eslint-plugin-promise: ^5.2.0 + eslint-plugin-promise: ^6.0.0 fs-extra: ^10.0.0 nanodelay: ^1.0.8 nanoid: ^3.1.30 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.1 devDependencies: - '@logux/eslint-config': 46.1.0_c1affbe72d0502c497cacc5a11eac21f + '@logux/eslint-config': 46.1.1_c17dd127f590f453c99768f3d4d62028 '@size-limit/preset-small-lib': 7.0.4_size-limit@7.0.4 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.0 - '@typescript-eslint/eslint-plugin': 5.7.0_915acdfead96f701b1277a1a723fc8d4 - '@typescript-eslint/parser': 5.7.0_eslint@8.4.1+typescript@4.5.4 + '@types/node': 17.0.4 + '@typescript-eslint/eslint-plugin': 5.8.0_836011a006f4f5d67178564baf2b6d34 + '@typescript-eslint/parser': 5.8.0_eslint@8.5.0+typescript@4.5.4 c8: 7.10.0 check-dts: 0.6.5_typescript@4.5.4 clean-publish: 3.4.4 concat-with-sourcemaps: 1.1.0 - eslint: 8.4.1 - eslint-config-standard: 16.0.3_79a23b4ffc45aed4cdeb891cd82eaee3 - eslint-plugin-import: 2.25.3_eslint@8.4.1 - eslint-plugin-node: 11.1.0_eslint@8.4.1 + eslint: 8.5.0 + eslint-config-standard: 16.0.3_4cecef3480376bac71ded249816d1e72 + eslint-plugin-import: 2.25.3_eslint@8.5.0 + eslint-plugin-node: 11.1.0_eslint@8.5.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 5.2.0_eslint@8.4.1 + eslint-plugin-promise: 6.0.0_eslint@8.5.0 fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.4 strip-ansi: 6.0.1 - ts-node: 10.4.0_cb9fa2b677905e47db2aeff929cdeb55 + ts-node: 10.4.0_d0eef7d48f2063e87802f700404a1b3b typescript: 4.5.4 uvu: 0.5.2 @@ -119,23 +119,23 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.0_c1affbe72d0502c497cacc5a11eac21f: - resolution: {integrity: sha512-7DikH6MvW2mc9DJHTmA9uGAPexBA69u21KNjCHqAbWPAqHD7XM++2BWBswMSJaWD3o2u+IEBFK6ZywNuPsNCbQ==} + /@logux/eslint-config/46.1.1_c17dd127f590f453c99768f3d4d62028: + resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: - eslint: ^8.1.0 + eslint: ^8.5.0 eslint-config-standard: ^16.0.3 - eslint-plugin-import: ^2.25.2 + eslint-plugin-import: ^2.25.3 eslint-plugin-node: ^11.1.0 - eslint-plugin-prefer-let: ^3.0.0 - eslint-plugin-promise: ^5.1.1 + eslint-plugin-prefer-let: ^3.0.1 + eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.4.1 - eslint-config-standard: 16.0.3_79a23b4ffc45aed4cdeb891cd82eaee3 - eslint-plugin-import: 2.25.3_eslint@8.4.1 - eslint-plugin-node: 11.1.0_eslint@8.4.1 + eslint: 8.5.0 + eslint-config-standard: 16.0.3_4cecef3480376bac71ded249816d1e72 + eslint-plugin-import: 2.25.3_eslint@8.5.0 + eslint-plugin-node: 11.1.0_eslint@8.5.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 5.2.0_eslint@8.4.1 + eslint-plugin-promise: 6.0.0_eslint@8.5.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.4 dependencies: - esbuild: 0.14.5 + esbuild: 0.14.8 nanoid: 3.1.30 size-limit: 7.0.4 dev: true @@ -209,11 +209,11 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.0 + '@types/node': 17.0.4 dev: true - /@types/istanbul-lib-coverage/2.0.3: - resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true /@types/json-schema/7.0.9: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.0: - resolution: {integrity: sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==} + /@types/node/17.0.4: + resolution: {integrity: sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.7.0_915acdfead96f701b1277a1a723fc8d4: - resolution: {integrity: sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==} + /@typescript-eslint/eslint-plugin/5.8.0_836011a006f4f5d67178564baf2b6d34: + resolution: {integrity: sha512-spu1UW7QuBn0nJ6+psnfCc3iVoQAifjKORgBngKOmC8U/1tbe2YJMzYQqDGYB4JCss7L8+RM2kKLb1B1Aw9BNA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,13 +243,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.7.0_eslint@8.4.1+typescript@4.5.4 - '@typescript-eslint/parser': 5.7.0_eslint@8.4.1+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.7.0 + '@typescript-eslint/experimental-utils': 5.8.0_eslint@8.5.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.8.0_eslint@8.5.0+typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.8.0 debug: 4.3.3 - eslint: 8.4.1 + eslint: 8.5.0 functional-red-black-tree: 1.0.1 - ignore: 5.1.9 + ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.5 tsutils: 3.21.0_typescript@4.5.4 @@ -258,26 +258,26 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.7.0_eslint@8.4.1+typescript@4.5.4: - resolution: {integrity: sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==} + /@typescript-eslint/experimental-utils/5.8.0_eslint@8.5.0+typescript@4.5.4: + resolution: {integrity: sha512-KN5FvNH71bhZ8fKtL+lhW7bjm7cxs1nt+hrDZWIqb6ViCffQcWyLunGrgvISgkRojIDcXIsH+xlFfI4RCDA0xA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '*' + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.7.0 - '@typescript-eslint/types': 5.7.0 - '@typescript-eslint/typescript-estree': 5.7.0_typescript@4.5.4 - eslint: 8.4.1 + '@typescript-eslint/scope-manager': 5.8.0 + '@typescript-eslint/types': 5.8.0 + '@typescript-eslint/typescript-estree': 5.8.0_typescript@4.5.4 + eslint: 8.5.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.4.1 + eslint-utils: 3.0.0_eslint@8.5.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser/5.7.0_eslint@8.4.1+typescript@4.5.4: - resolution: {integrity: sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==} + /@typescript-eslint/parser/5.8.0_eslint@8.5.0+typescript@4.5.4: + resolution: {integrity: sha512-Gleacp/ZhRtJRYs5/T8KQR3pAQjQI89Dn/k+OzyCKOsLiZH2/Vh60cFBTnFsHNI6WAD+lNUo/xGZ4NeA5u0Ipw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -286,31 +286,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.7.0 - '@typescript-eslint/types': 5.7.0 - '@typescript-eslint/typescript-estree': 5.7.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.8.0 + '@typescript-eslint/types': 5.8.0 + '@typescript-eslint/typescript-estree': 5.8.0_typescript@4.5.4 debug: 4.3.3 - eslint: 8.4.1 + eslint: 8.5.0 typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.7.0: - resolution: {integrity: sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==} + /@typescript-eslint/scope-manager/5.8.0: + resolution: {integrity: sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.7.0 - '@typescript-eslint/visitor-keys': 5.7.0 + '@typescript-eslint/types': 5.8.0 + '@typescript-eslint/visitor-keys': 5.8.0 dev: true - /@typescript-eslint/types/5.7.0: - resolution: {integrity: sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==} + /@typescript-eslint/types/5.8.0: + resolution: {integrity: sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.7.0_typescript@4.5.4: - resolution: {integrity: sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==} + /@typescript-eslint/typescript-estree/5.8.0_typescript@4.5.4: + resolution: {integrity: sha512-srfeZ3URdEcUsSLbkOFqS7WoxOqn8JNil2NSLO9O+I2/Uyc85+UlfpEvQHIpj5dVts7KKOZnftoJD/Fdv0L7nQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -318,8 +318,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.7.0 - '@typescript-eslint/visitor-keys': 5.7.0 + '@typescript-eslint/types': 5.8.0 + '@typescript-eslint/visitor-keys': 5.8.0 debug: 4.3.3 globby: 11.0.4 is-glob: 4.0.3 @@ -330,11 +330,11 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/5.7.0: - resolution: {integrity: sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==} + /@typescript-eslint/visitor-keys/5.8.0: + resolution: {integrity: sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.7.0 + '@typescript-eslint/types': 5.8.0 eslint-visitor-keys: 3.1.0 dev: true @@ -475,7 +475,7 @@ packages: foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.1 + istanbul-reports: 3.1.2 rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 8.1.0 @@ -722,7 +722,7 @@ packages: is-shared-array-buffer: 1.0.1 is-string: 1.0.7 is-weakref: 1.0.2 - object-inspect: 1.11.1 + object-inspect: 1.12.0 object-keys: 1.1.1 object.assign: 4.1.2 string.prototype.trimend: 1.0.4 @@ -739,164 +739,173 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.5: - resolution: {integrity: sha512-Sl6ysm7OAZZz+X3Mv3tOPhjMuSxNmztgoXH4ZZ3Yhbje5emEY6qiTnv3vBSljDlUl/yGaIjqC44qlj8s8G71xA==} + /esbuild-android-arm64/0.14.8: + resolution: {integrity: sha512-tAEoSHnPBSH0cCAFa/aYs3LPsoTY4SwsP6wDKi4PaelbQYNJjqNpAeweyJ8l98g1D6ZkLyqsHbkYj+209sezkA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.5: - resolution: {integrity: sha512-VHZl23sM9BOZXcLxk1vTYls8TCAY+/3llw9vHKIWAHDHzBBOlVv26ORK8gnStNMqTjCSGSMoq4T5jOZf2WrJPQ==} + /esbuild-darwin-64/0.14.8: + resolution: {integrity: sha512-t7p7WzTb+ybiD/irkMt5j/NzB+jY+8yPTsrXk5zCOH1O7DdthRnAUJ7pJPwImdL7jAGRbLtYRxUPgCHs/0qUPw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.5: - resolution: {integrity: sha512-ugPOLgEQPoPLSqAFBajaczt+lcbUZR+V2fby3572h5jf/kFV6UL8LAZ1Ze58hcbKwfvbh4C09kp0PhqPgXKwOg==} + /esbuild-darwin-arm64/0.14.8: + resolution: {integrity: sha512-5FeaT2zMUajKnBwUMSsjZev5iA38YHrDmXhkOCwZQIFUvhqojinqCrvv/X7dyxb1987bcY9KGwJ+EwDwd922HQ==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.5: - resolution: {integrity: sha512-uP0yOixSHF505o/Kzq9e4bvZblCZp9GGx+a7enLOVSuvIvLmtj2yhZLRPGfbVNkPJXktTKNRAnNGkXHl53M6sw==} + /esbuild-freebsd-64/0.14.8: + resolution: {integrity: sha512-pGHBLSf7ynfyDZXUtbq/GsA2VIwQlWXrUj1AMcE0id47mRdEUM8/1ZuqMGZx63hRnNgtK9zNJ8OIu2c7qq76Qw==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.5: - resolution: {integrity: sha512-M99NPu8hlirFo6Fgx0WfX6XxUFdGclUNv3MyyfDtTdNYbccMESwLSACGpE7HvJKWscdjaqajeMu2an9adGNfCw==} + /esbuild-freebsd-arm64/0.14.8: + resolution: {integrity: sha512-g4GgAnrx6Gh1BjKJjJWgPnOR4tW2FcAx9wFvyUjRsIjB35gT+aAFR+P/zStu5OG9LnbS8Pvjd4wS68QIXk+2dA==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.5: - resolution: {integrity: sha512-hfqln4yb/jf/vPvI/A6aCvpIzqF3PdDmrKiikTohEUuRtvEZz234krtNwEAw5ssCue4NX8BJqrMpCTAHOl3LQw==} + /esbuild-linux-32/0.14.8: + resolution: {integrity: sha512-wPfQJadF5vTzriw/B8Ide74PeAJlZW7czNx3NIUHkHlXb+En1SeIqNzl6jG9DuJUl57xD9Ucl9YJFEkFeX8eLg==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.5: - resolution: {integrity: sha512-T+OuYPlhytjj5DsvjUXizNjbV+/IrZiaDc9SNUfqiUOXHu0URFqchjhPVbBiBnWykCMJFB6pqNap2Oxth4iuYw==} + /esbuild-linux-64/0.14.8: + resolution: {integrity: sha512-+RNuLk9RhRDL2kG+KTEYl5cIgF6AGLkRnKKWEu9DpCZaickONEqrKyQSVn410Hj105DLdW6qvIXQQHPycJhExg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.5: - resolution: {integrity: sha512-5b10jKJ3lU4BUchOw9TgRResu8UZJf8qVjAzV5muHedonCfBzClGTT4KCNuOcLTJomH3wz6gNVJt1AxMglXnJg==} + /esbuild-linux-arm/0.14.8: + resolution: {integrity: sha512-HIct38SvUAIJbiTwV/PVQroimQo96TGtzRDAEZxTorB4vsAj1r8bd0keXExPU4RH7G0zIqC4loQQpWYL+nH4Vg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.5: - resolution: {integrity: sha512-ANOzoaH4kfbhEZT0EGY9g1tsZhDA+I0FRwBsj7D8pCU900pXF/l8YAOy5jWFQIb3vjG5+orFc5SqSzAKCisvTQ==} + /esbuild-linux-arm64/0.14.8: + resolution: {integrity: sha512-BtWoKNYul9UoxUvQUSdSrvSmJyFL1sGnNPTSqWCg1wMe4kmc8UY2yVsXSSkKO8N2jtHxlgFyz/XhvNBzEwGVcw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.5: - resolution: {integrity: sha512-sSmGfOUNNB2Nd3tzp1RHSxiJmM5/RUIEP5aAtH+PpOP7FPp15Jcfwq7UNBJ82KLN3SJcwhUeEfcCaUFBzbTKxg==} + /esbuild-linux-mips64le/0.14.8: + resolution: {integrity: sha512-0DxnCl9XTvaQtsX6Qa+Phr5i9b04INwwSv2RbQ2UWRLoQ/037iaFzbmuhgrcmaGOcRwPkCa+4Qo5EgI01MUgsQ==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.5: - resolution: {integrity: sha512-usfQrVVIQcpuc/U2NWc7/Ry+m622v+PjJ5eErNPdjWBPlcvD6kXaBTv94uQkVzZOHX3uYqprRrOjseed9ApSYA==} + /esbuild-linux-ppc64le/0.14.8: + resolution: {integrity: sha512-Uzr/OMj97Q0qoWLXCvXCKUY/z1SNI4iSZEuYylM5Nd71HGStL32XWq/MReJ0PYMvUMKKJicKSKw2jWM1uBQ84Q==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.5: - resolution: {integrity: sha512-Q5KpvPZcPnNEaTjrvuWqvEnlhI2jyi1wWwYunlEUAhx60spQOTy10sdYOA+s1M+LPb6kwvasrZZDmYyQlcVZeA==} + /esbuild-linux-s390x/0.14.8: + resolution: {integrity: sha512-vURka7aCA5DrRoOqOn6pXYwFlDSoQ4qnqam8AC0Ikn6tibutuhgar6M3Ek2DCuz9yqd396mngdYr5A8x2TPkww==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.8: + resolution: {integrity: sha512-tjyDak2/pp0VUAhBW6/ueuReMd5qLHNlisXl5pq0Xn0z+kH9urA/t1igm0JassWbdMz123td5ZEQWoD9KbtOAw==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.5: - resolution: {integrity: sha512-RZzRUu1RYKextJgXkHhAsuhLDvm73YP/wogpUG9MaAGvKTxnKAKRuaw2zJfnbz8iBqBQB2no2PmpVBNbqUTQrw==} + /esbuild-openbsd-64/0.14.8: + resolution: {integrity: sha512-zAKKV15fIyAuDDga5rQv0lW2ufBWj/OCjqjDBb3dJf5SfoAi/DMIHuzmkKQeDQ+oxt9Rp1D7ZOlOBVflutFTqQ==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.5: - resolution: {integrity: sha512-J2ffKsBBWscQlye+/giEgKsQCppwHHFqqt/sh+ojVF+DZy1ve6RpPGwXGcGF6IaZTAI9+Vk4eHleiQxb+PC9Yw==} + /esbuild-sunos-64/0.14.8: + resolution: {integrity: sha512-xV41Wa8imziM/2dbWZjLKQbIETRgo5dE0oc/uPsgaecJhsrdA0VkGa/V432LJSUYv967xHDQdoRRl5tr80+NnQ==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.5: - resolution: {integrity: sha512-OTZvuAc1JBnwmeT+hR1+Vmgz6LOD7DggpnwtKMAExruSLxUMl02Z3pyalJ7zKh3gJ/KBRM1JQZLSk4/mFWijeQ==} + /esbuild-windows-32/0.14.8: + resolution: {integrity: sha512-AxpdeLKQSyCZo7MzdOyV4OgEbEJcjnrS/2niAjbHESbjuS5P1DN/5vZoJ/JSWDVa/40OkBuHBhAXMx1HK3UDsg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.5: - resolution: {integrity: sha512-ZM9rlBDsPEeMVJ1wcpNMXUad9VzYOFeOBUXBi+16HZTvFPy2DkcC2ZWcrByP3IESToD5lvHdjSX/w8rxphjqig==} + /esbuild-windows-64/0.14.8: + resolution: {integrity: sha512-/3pllNoy8mrz/E1rYalwiwwhzJBrYQhEapwAteHZbFVhGzYuB8F80e8x5eA8dhFHxDiZh1VzK+hREwwSt8UTQA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.5: - resolution: {integrity: sha512-iK41mKG2LG0AKHE+9g/jDYU5ZQpJObt1uIPSGTiiiJKI5qbHdEck6Gaqq2tmBI933F2zB9yqZIX7IAdxwN/q4A==} + /esbuild-windows-arm64/0.14.8: + resolution: {integrity: sha512-lTm5naoNgaUvzIiax3XYIEebqwr3bIIEEtqUhzQ2UQ+JMBmvhr02w3sJIJqF3axTX6TgWrC1OtM7DYNvFG+aXA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.5: - resolution: {integrity: sha512-ofwgH4ITPXhkMo2AM39oXpSe5KIyWjxicdqYVy+tLa1lMgxzPCKwaepcrSRtYbgTUMXwquxB1C3xQYpUNaPAFA==} + /esbuild/0.14.8: + resolution: {integrity: sha512-stMsCBmxwaMpeK8GC/49L/cRGIwsHwoEN7Twk5zDTHlm/63c0KXFKzDC8iM2Mi3fyCKwS002TAH6IlAvqR6t3g==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.5 - esbuild-darwin-64: 0.14.5 - esbuild-darwin-arm64: 0.14.5 - esbuild-freebsd-64: 0.14.5 - esbuild-freebsd-arm64: 0.14.5 - esbuild-linux-32: 0.14.5 - esbuild-linux-64: 0.14.5 - esbuild-linux-arm: 0.14.5 - esbuild-linux-arm64: 0.14.5 - esbuild-linux-mips64le: 0.14.5 - esbuild-linux-ppc64le: 0.14.5 - esbuild-netbsd-64: 0.14.5 - esbuild-openbsd-64: 0.14.5 - esbuild-sunos-64: 0.14.5 - esbuild-windows-32: 0.14.5 - esbuild-windows-64: 0.14.5 - esbuild-windows-arm64: 0.14.5 + esbuild-android-arm64: 0.14.8 + esbuild-darwin-64: 0.14.8 + esbuild-darwin-arm64: 0.14.8 + esbuild-freebsd-64: 0.14.8 + esbuild-freebsd-arm64: 0.14.8 + esbuild-linux-32: 0.14.8 + esbuild-linux-64: 0.14.8 + esbuild-linux-arm: 0.14.8 + esbuild-linux-arm64: 0.14.8 + esbuild-linux-mips64le: 0.14.8 + esbuild-linux-ppc64le: 0.14.8 + esbuild-linux-s390x: 0.14.8 + esbuild-netbsd-64: 0.14.8 + esbuild-openbsd-64: 0.14.8 + esbuild-sunos-64: 0.14.8 + esbuild-windows-32: 0.14.8 + esbuild-windows-64: 0.14.8 + esbuild-windows-arm64: 0.14.8 dev: true /escalade/3.1.1: @@ -914,7 +923,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_79a23b4ffc45aed4cdeb891cd82eaee3: + /eslint-config-standard/16.0.3_4cecef3480376bac71ded249816d1e72: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -922,10 +931,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.4.1 - eslint-plugin-import: 2.25.3_eslint@8.4.1 - eslint-plugin-node: 11.1.0_eslint@8.4.1 - eslint-plugin-promise: 5.2.0_eslint@8.4.1 + eslint: 8.5.0 + eslint-plugin-import: 2.25.3_eslint@8.5.0 + eslint-plugin-node: 11.1.0_eslint@8.5.0 + eslint-plugin-promise: 6.0.0_eslint@8.5.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -944,18 +953,18 @@ packages: pkg-dir: 2.0.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.4.1: + /eslint-plugin-es/3.0.1_eslint@8.5.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.4.1 + eslint: 8.5.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.3_eslint@8.4.1: + /eslint-plugin-import/2.25.3_eslint@8.5.0: resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} engines: {node: '>=4'} peerDependencies: @@ -965,7 +974,7 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.4.1 + eslint: 8.5.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.1 has: 1.0.3 @@ -977,16 +986,16 @@ packages: tsconfig-paths: 3.12.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.4.1: + /eslint-plugin-node/11.1.0_eslint@8.5.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.4.1 - eslint-plugin-es: 3.0.1_eslint@8.4.1 + eslint: 8.5.0 + eslint-plugin-es: 3.0.1_eslint@8.5.0 eslint-utils: 2.1.0 - ignore: 5.1.9 + ignore: 5.2.0 minimatch: 3.0.4 resolve: 1.20.0 semver: 6.3.0 @@ -999,13 +1008,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/5.2.0_eslint@8.4.1: - resolution: {integrity: sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==} - engines: {node: ^10.12.0 || >=12.0.0} + /eslint-plugin-promise/6.0.0_eslint@8.5.0: + resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.4.1 + eslint: 8.5.0 dev: true /eslint-scope/5.1.1: @@ -1031,13 +1040,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.4.1: + /eslint-utils/3.0.0_eslint@8.5.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.4.1 + eslint: 8.5.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1056,8 +1065,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.4.1: - resolution: {integrity: sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==} + /eslint/8.5.0: + resolution: {integrity: sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1071,7 +1080,7 @@ packages: enquirer: 2.3.6 escape-string-regexp: 4.0.0 eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.4.1 + eslint-utils: 3.0.0_eslint@8.5.0 eslint-visitor-keys: 3.1.0 espree: 9.2.0 esquery: 1.4.0 @@ -1308,7 +1317,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.2.7 - ignore: 5.1.9 + ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -1366,8 +1375,8 @@ packages: engines: {node: '>= 4'} dev: true - /ignore/5.1.9: - resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} dev: true @@ -1532,8 +1541,8 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-reports/3.1.1: - resolution: {integrity: sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==} + /istanbul-reports/3.1.2: + resolution: {integrity: sha512-0gHxuT1NNC0aEIL1zbJ+MTgPbbHhU77eJPuU35WKA7TgXiSNlCAx4PENoMrH0Or6M2H80TaZcWKhM0IK6V8gRw==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -1705,8 +1714,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.11.1: - resolution: {integrity: sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==} + /object-inspect/1.12.0: + resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} dev: true /object-keys/1.1.1: @@ -1969,7 +1978,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 - object-inspect: 1.11.1 + object-inspect: 1.12.0 dev: true /signal-exit/3.0.6: @@ -2111,7 +2120,7 @@ packages: engines: {node: '>=6'} dev: true - /ts-node/10.4.0_cb9fa2b677905e47db2aeff929cdeb55: + /ts-node/10.4.0_d0eef7d48f2063e87802f700404a1b3b: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2130,7 +2139,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.0 + '@types/node': 17.0.4 acorn: 8.6.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2228,7 +2237,7 @@ packages: resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} engines: {node: '>=10.12.0'} dependencies: - '@types/istanbul-lib-coverage': 2.0.3 + '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 source-map: 0.7.3 dev: true From 424a203b0064f394b7f1bb490ea28f66900541a6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 30 Dec 2021 00:22:49 +1000 Subject: [PATCH 2473/3047] Update npm ignore --- .npmignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/.npmignore b/.npmignore index 357696a44..462619fde 100644 --- a/.npmignore +++ b/.npmignore @@ -1,10 +1,8 @@ -node_modules/ pnpm-lock.yaml .editorconfig coverage/ test/ -.travis.yml docs/ .github/ From 4b4c2673ed08966b81419cad3745c330f73c6760 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 30 Dec 2021 00:23:52 +1000 Subject: [PATCH 2474/3047] Update dependencies --- package.json | 12 +-- pnpm-lock.yaml | 270 ++++++++++++++++++++++++------------------------- 2 files changed, 141 insertions(+), 141 deletions(-) diff --git a/package.json b/package.json index f45140263..2f21ac8a8 100755 --- a/package.json +++ b/package.json @@ -75,13 +75,13 @@ }, "devDependencies": { "@logux/eslint-config": "^46.1.1", - "@size-limit/preset-small-lib": "^7.0.4", + "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.4", - "@typescript-eslint/eslint-plugin": "^5.8.0", - "@typescript-eslint/parser": "^5.8.0", + "@types/node": "^17.0.5", + "@typescript-eslint/eslint-plugin": "^5.8.1", + "@typescript-eslint/parser": "^5.8.1", "c8": "^7.10.0", - "check-dts": "^0.6.5", + "check-dts": "^0.6.6", "clean-publish": "^3.4.4", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.5.0", @@ -95,7 +95,7 @@ "nanospy": "^0.4.0", "postcss-parser-tests": "^8.3.7", "simple-git-hooks": "^2.7.0", - "size-limit": "^7.0.4", + "size-limit": "^7.0.5", "strip-ansi": "^6.0.1", "ts-node": "^10.4.0", "typescript": "^4.5.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c96d19940..4b10b65ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,13 +2,13 @@ lockfileVersion: 5.3 specifiers: '@logux/eslint-config': ^46.1.1 - '@size-limit/preset-small-lib': ^7.0.4 + '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.4 - '@typescript-eslint/eslint-plugin': ^5.8.0 - '@typescript-eslint/parser': ^5.8.0 + '@types/node': ^17.0.5 + '@typescript-eslint/eslint-plugin': ^5.8.1 + '@typescript-eslint/parser': ^5.8.1 c8: ^7.10.0 - check-dts: ^0.6.5 + check-dts: ^0.6.6 clean-publish: ^3.4.4 concat-with-sourcemaps: ^1.1.0 eslint: ^8.5.0 @@ -24,7 +24,7 @@ specifiers: picocolors: ^1.0.0 postcss-parser-tests: ^8.3.7 simple-git-hooks: ^2.7.0 - size-limit: ^7.0.4 + size-limit: ^7.0.5 source-map-js: ^1.0.1 strip-ansi: ^6.0.1 ts-node: ^10.4.0 @@ -38,13 +38,13 @@ dependencies: devDependencies: '@logux/eslint-config': 46.1.1_c17dd127f590f453c99768f3d4d62028 - '@size-limit/preset-small-lib': 7.0.4_size-limit@7.0.4 + '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.4 - '@typescript-eslint/eslint-plugin': 5.8.0_836011a006f4f5d67178564baf2b6d34 - '@typescript-eslint/parser': 5.8.0_eslint@8.5.0+typescript@4.5.4 + '@types/node': 17.0.5 + '@typescript-eslint/eslint-plugin': 5.8.1_3a47348159e115370aa4cba56aba33b6 + '@typescript-eslint/parser': 5.8.1_eslint@8.5.0+typescript@4.5.4 c8: 7.10.0 - check-dts: 0.6.5_typescript@4.5.4 + check-dts: 0.6.6_typescript@4.5.4 clean-publish: 3.4.4 concat-with-sourcemaps: 1.1.0 eslint: 8.5.0 @@ -58,9 +58,9 @@ devDependencies: nanospy: 0.4.0 postcss-parser-tests: 8.3.7 simple-git-hooks: 2.7.0 - size-limit: 7.0.4 + size-limit: 7.0.5 strip-ansi: 6.0.1 - ts-node: 10.4.0_d0eef7d48f2063e87802f700404a1b3b + ts-node: 10.4.0_bad060d5f9aca5284661d88d739ba15b typescript: 4.5.4 uvu: 0.5.2 @@ -159,35 +159,35 @@ packages: fastq: 1.13.0 dev: true - /@size-limit/esbuild/7.0.4_size-limit@7.0.4: - resolution: {integrity: sha512-gfkr96LQ8zCWKDGTfnBed8K4kmQccB/cQxnqK7bMis/X0qSpeMFwDG9WO9JrjDgNRVjbncB26Qtnain58KC2Xw==} + /@size-limit/esbuild/7.0.5_size-limit@7.0.5: + resolution: {integrity: sha512-ec/XfgTHcfXFflEDgs83gs3XMfB8sn4BISZM7CPHCS72tNkcjVwNRxrKWisb11JZ2kN4glBgCmsXZpoSaEGzXg==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: - size-limit: 7.0.4 + size-limit: 7.0.5 dependencies: - esbuild: 0.14.8 + esbuild: 0.14.9 nanoid: 3.1.30 - size-limit: 7.0.4 + size-limit: 7.0.5 dev: true - /@size-limit/file/7.0.4_size-limit@7.0.4: - resolution: {integrity: sha512-/UfiOp8bDIdmNs0c8IQgGKlByo1esoayZ6+Pr/LQCJPZWPyQWVeGTo+J/+aYa9+5+r6ezvmAF5aR7VVt+rvW2Q==} + /@size-limit/file/7.0.5_size-limit@7.0.5: + resolution: {integrity: sha512-DqyuUkmCSHwML6GVmeRr0v6Ih/P3pwmCu6RDWh2QxdDSec1ZnShmFUmcC6rLQDX7KW5aCjK3cs5FNd22Eaqapw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: - size-limit: 7.0.4 + size-limit: 7.0.5 dependencies: semver: 7.3.5 - size-limit: 7.0.4 + size-limit: 7.0.5 dev: true - /@size-limit/preset-small-lib/7.0.4_size-limit@7.0.4: - resolution: {integrity: sha512-FS3qDDfcks3ZNKciGYxhSfiyVIQ64N6oZZABsWneHvZjOpR6KUjwPVboX2rBZGKT2an1KHs5CkHoM+oscxGWEw==} + /@size-limit/preset-small-lib/7.0.5_size-limit@7.0.5: + resolution: {integrity: sha512-cWwXDCx9BEpHIjbpHlhpS0JBt+J1U5LCaHHyBhAxevOX7W0aX7nCJwPUmd5liGHq9ui5VyWOtV3lhxce96Qd8A==} peerDependencies: - size-limit: 7.0.4 + size-limit: 7.0.5 dependencies: - '@size-limit/esbuild': 7.0.4_size-limit@7.0.4 - '@size-limit/file': 7.0.4_size-limit@7.0.4 - size-limit: 7.0.4 + '@size-limit/esbuild': 7.0.5_size-limit@7.0.5 + '@size-limit/file': 7.0.5_size-limit@7.0.5 + size-limit: 7.0.5 dev: true /@tsconfig/node10/1.0.8: @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.4 + '@types/node': 17.0.5 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.4: - resolution: {integrity: sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==} + /@types/node/17.0.5: + resolution: {integrity: sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.8.0_836011a006f4f5d67178564baf2b6d34: - resolution: {integrity: sha512-spu1UW7QuBn0nJ6+psnfCc3iVoQAifjKORgBngKOmC8U/1tbe2YJMzYQqDGYB4JCss7L8+RM2kKLb1B1Aw9BNA==} + /@typescript-eslint/eslint-plugin/5.8.1_3a47348159e115370aa4cba56aba33b6: + resolution: {integrity: sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,9 +243,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.8.0_eslint@8.5.0+typescript@4.5.4 - '@typescript-eslint/parser': 5.8.0_eslint@8.5.0+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.8.0 + '@typescript-eslint/experimental-utils': 5.8.1_eslint@8.5.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.8.1_eslint@8.5.0+typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.8.1 debug: 4.3.3 eslint: 8.5.0 functional-red-black-tree: 1.0.1 @@ -258,16 +258,16 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.8.0_eslint@8.5.0+typescript@4.5.4: - resolution: {integrity: sha512-KN5FvNH71bhZ8fKtL+lhW7bjm7cxs1nt+hrDZWIqb6ViCffQcWyLunGrgvISgkRojIDcXIsH+xlFfI4RCDA0xA==} + /@typescript-eslint/experimental-utils/5.8.1_eslint@8.5.0+typescript@4.5.4: + resolution: {integrity: sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.8.0 - '@typescript-eslint/types': 5.8.0 - '@typescript-eslint/typescript-estree': 5.8.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.8.1 + '@typescript-eslint/types': 5.8.1 + '@typescript-eslint/typescript-estree': 5.8.1_typescript@4.5.4 eslint: 8.5.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.5.0 @@ -276,8 +276,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/5.8.0_eslint@8.5.0+typescript@4.5.4: - resolution: {integrity: sha512-Gleacp/ZhRtJRYs5/T8KQR3pAQjQI89Dn/k+OzyCKOsLiZH2/Vh60cFBTnFsHNI6WAD+lNUo/xGZ4NeA5u0Ipw==} + /@typescript-eslint/parser/5.8.1_eslint@8.5.0+typescript@4.5.4: + resolution: {integrity: sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -286,9 +286,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.8.0 - '@typescript-eslint/types': 5.8.0 - '@typescript-eslint/typescript-estree': 5.8.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.8.1 + '@typescript-eslint/types': 5.8.1 + '@typescript-eslint/typescript-estree': 5.8.1_typescript@4.5.4 debug: 4.3.3 eslint: 8.5.0 typescript: 4.5.4 @@ -296,21 +296,21 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.8.0: - resolution: {integrity: sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg==} + /@typescript-eslint/scope-manager/5.8.1: + resolution: {integrity: sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.8.0 - '@typescript-eslint/visitor-keys': 5.8.0 + '@typescript-eslint/types': 5.8.1 + '@typescript-eslint/visitor-keys': 5.8.1 dev: true - /@typescript-eslint/types/5.8.0: - resolution: {integrity: sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg==} + /@typescript-eslint/types/5.8.1: + resolution: {integrity: sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.8.0_typescript@4.5.4: - resolution: {integrity: sha512-srfeZ3URdEcUsSLbkOFqS7WoxOqn8JNil2NSLO9O+I2/Uyc85+UlfpEvQHIpj5dVts7KKOZnftoJD/Fdv0L7nQ==} + /@typescript-eslint/typescript-estree/5.8.1_typescript@4.5.4: + resolution: {integrity: sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -318,8 +318,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.8.0 - '@typescript-eslint/visitor-keys': 5.8.0 + '@typescript-eslint/types': 5.8.1 + '@typescript-eslint/visitor-keys': 5.8.1 debug: 4.3.3 globby: 11.0.4 is-glob: 4.0.3 @@ -330,20 +330,20 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/5.8.0: - resolution: {integrity: sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug==} + /@typescript-eslint/visitor-keys/5.8.1: + resolution: {integrity: sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.8.0 + '@typescript-eslint/types': 5.8.1 eslint-visitor-keys: 3.1.0 dev: true - /acorn-jsx/5.3.2_acorn@8.6.0: + /acorn-jsx/5.3.2_acorn@8.7.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.6.0 + acorn: 8.7.0 dev: true /acorn-walk/8.2.0: @@ -351,8 +351,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/8.6.0: - resolution: {integrity: sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==} + /acorn/8.7.0: + resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -512,15 +512,15 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.5_typescript@4.5.4: - resolution: {integrity: sha512-/ETEH8AdxxXDXsFyzw4aiXUiO423m1ndErSSCTmE31az2IZP4DIb0qwHbVHEHiDo1z4QY2xTD0fLGn2s5UJ1tQ==} + /check-dts/0.6.6_typescript@4.5.4: + resolution: {integrity: sha512-2KzynoH1f8wVhZXUeqxeW2dOOFliktitYlyyOsLfZBk5K5n1U1B3uzJLFiJfwqlwoT1Ug7RNbi8xmMpUKKmwhg==} engines: {node: '>=12.16.0'} hasBin: true peerDependencies: typescript: '>=4.0.0' dependencies: fast-glob: 3.2.7 - nanospinner: 0.5.0 + nanospinner: 0.6.0 picocolors: 1.0.0 typescript: 4.5.4 vfile-location: 4.0.1 @@ -739,173 +739,173 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.8: - resolution: {integrity: sha512-tAEoSHnPBSH0cCAFa/aYs3LPsoTY4SwsP6wDKi4PaelbQYNJjqNpAeweyJ8l98g1D6ZkLyqsHbkYj+209sezkA==} + /esbuild-android-arm64/0.14.9: + resolution: {integrity: sha512-VpSCuUR07G4Re/5QzqtdxS5ZgxkCRyzu4Kf5SH1/EkXzRGeoWQt8xirkOMK58pfmg/FlS/fQNgwl3Txej4LoVg==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.8: - resolution: {integrity: sha512-t7p7WzTb+ybiD/irkMt5j/NzB+jY+8yPTsrXk5zCOH1O7DdthRnAUJ7pJPwImdL7jAGRbLtYRxUPgCHs/0qUPw==} + /esbuild-darwin-64/0.14.9: + resolution: {integrity: sha512-F/RcRHMG5ccAL8n9VIy8ZC4D0IHZrN/1IhHQbY4qPXrMlh42FucR0TW4lr3vdHF3caaId1jdDSQQJ7jXR+ZC5Q==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.8: - resolution: {integrity: sha512-5FeaT2zMUajKnBwUMSsjZev5iA38YHrDmXhkOCwZQIFUvhqojinqCrvv/X7dyxb1987bcY9KGwJ+EwDwd922HQ==} + /esbuild-darwin-arm64/0.14.9: + resolution: {integrity: sha512-3ue+1T4FR5TaAu4/V1eFMG8Uwn0pgAwQZb/WwL1X78d5Cy8wOVQ67KNH1lsjU+y/9AcwMKZ9x0GGNxBB4a1Rbw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.8: - resolution: {integrity: sha512-pGHBLSf7ynfyDZXUtbq/GsA2VIwQlWXrUj1AMcE0id47mRdEUM8/1ZuqMGZx63hRnNgtK9zNJ8OIu2c7qq76Qw==} + /esbuild-freebsd-64/0.14.9: + resolution: {integrity: sha512-0YEjWt6ijaf5Y3Q50YS1lZxuWZWMV/T7atQEuQnF8ioq5jamrVr8j1TZ9+rxcLgH1lBMsXj8IwW+6BleXredEg==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.8: - resolution: {integrity: sha512-g4GgAnrx6Gh1BjKJjJWgPnOR4tW2FcAx9wFvyUjRsIjB35gT+aAFR+P/zStu5OG9LnbS8Pvjd4wS68QIXk+2dA==} + /esbuild-freebsd-arm64/0.14.9: + resolution: {integrity: sha512-82w5qMgEeYvf8+vX/2KE5TOZf8rv8VK4TFiK6lDzdgdwwmBU5C8kdT3rO5Llan2K2LKndrou1eyi/fHwFcwPJQ==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.8: - resolution: {integrity: sha512-wPfQJadF5vTzriw/B8Ide74PeAJlZW7czNx3NIUHkHlXb+En1SeIqNzl6jG9DuJUl57xD9Ucl9YJFEkFeX8eLg==} + /esbuild-linux-32/0.14.9: + resolution: {integrity: sha512-eu8J8HNpco7Mkd7T7djQRzGBeuve41kbXRxFHOwwbZXMNQojXjBqLuradi5i/Vsw+CA4G/yVpmJI2S75Cit2mQ==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.8: - resolution: {integrity: sha512-+RNuLk9RhRDL2kG+KTEYl5cIgF6AGLkRnKKWEu9DpCZaickONEqrKyQSVn410Hj105DLdW6qvIXQQHPycJhExg==} + /esbuild-linux-64/0.14.9: + resolution: {integrity: sha512-WoEI+R6/PLZAxS7XagfQMFgRtLUi5cjqqU9VCfo3tnWmAXh/wt8QtUfCVVCcXVwZLS/RNvI19CtfjlrJU61nOg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.8: - resolution: {integrity: sha512-HIct38SvUAIJbiTwV/PVQroimQo96TGtzRDAEZxTorB4vsAj1r8bd0keXExPU4RH7G0zIqC4loQQpWYL+nH4Vg==} + /esbuild-linux-arm/0.14.9: + resolution: {integrity: sha512-d3k1ZPREjaKYyhsS8x3jvc4ekjIZ8SmuihP60mrN1f6p5y07NKWw9i0OWD1p6hy+7g6cjMWq00tstMIikGB9Yg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.8: - resolution: {integrity: sha512-BtWoKNYul9UoxUvQUSdSrvSmJyFL1sGnNPTSqWCg1wMe4kmc8UY2yVsXSSkKO8N2jtHxlgFyz/XhvNBzEwGVcw==} + /esbuild-linux-arm64/0.14.9: + resolution: {integrity: sha512-joUE0yQgWMDkQqBx3+6SdNCVZ10F1O4+WM94moghvhdTzkYpECIc/WvfqMF/w0V8Hecw3QJ7vugO7jsFlXXd4Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.8: - resolution: {integrity: sha512-0DxnCl9XTvaQtsX6Qa+Phr5i9b04INwwSv2RbQ2UWRLoQ/037iaFzbmuhgrcmaGOcRwPkCa+4Qo5EgI01MUgsQ==} + /esbuild-linux-mips64le/0.14.9: + resolution: {integrity: sha512-ZAuheiDRo2c4rxx8GUTEwPvos0zUwCYjP9K2WfCSmDL6m3RpaObCQhZghrDuoIUwvc/D6SWuABsKE9VzogsltQ==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.8: - resolution: {integrity: sha512-Uzr/OMj97Q0qoWLXCvXCKUY/z1SNI4iSZEuYylM5Nd71HGStL32XWq/MReJ0PYMvUMKKJicKSKw2jWM1uBQ84Q==} + /esbuild-linux-ppc64le/0.14.9: + resolution: {integrity: sha512-Pm8FeG5l314k3a2mbu3SAc5E2eLFuGUsGiSlw8V6xtA4whxJ7rit7951w9jBhz+1Vqqtqprg2IYTng3j2CGhVw==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.8: - resolution: {integrity: sha512-vURka7aCA5DrRoOqOn6pXYwFlDSoQ4qnqam8AC0Ikn6tibutuhgar6M3Ek2DCuz9yqd396mngdYr5A8x2TPkww==} + /esbuild-linux-s390x/0.14.9: + resolution: {integrity: sha512-G8FNZygV82N1/LOfPD8ZX7Mn1dPpKKPrZc93ebSJ8/VgNIafOAhV5vaeK1lhcx6ZSu+jJU/UyQQMG1CIvHRIaw==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.8: - resolution: {integrity: sha512-tjyDak2/pp0VUAhBW6/ueuReMd5qLHNlisXl5pq0Xn0z+kH9urA/t1igm0JassWbdMz123td5ZEQWoD9KbtOAw==} + /esbuild-netbsd-64/0.14.9: + resolution: {integrity: sha512-b7vPrn5XN0GRtNAQ3w+gq8AwUfWSRBkcPAdA5UUT5rkrw7wKFyMqi2/zREBc/Knu5YOsLmZPQSoM8QL6qy79cg==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.8: - resolution: {integrity: sha512-zAKKV15fIyAuDDga5rQv0lW2ufBWj/OCjqjDBb3dJf5SfoAi/DMIHuzmkKQeDQ+oxt9Rp1D7ZOlOBVflutFTqQ==} + /esbuild-openbsd-64/0.14.9: + resolution: {integrity: sha512-w95Rt/vmVhZWfzZmeoMIHxbFiOFDmxC7GEdnCbDTXX2vlwKu+CIDIKOgWW+R1T2JqTNo5tu9dRkngKZMfbUo/A==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.8: - resolution: {integrity: sha512-xV41Wa8imziM/2dbWZjLKQbIETRgo5dE0oc/uPsgaecJhsrdA0VkGa/V432LJSUYv967xHDQdoRRl5tr80+NnQ==} + /esbuild-sunos-64/0.14.9: + resolution: {integrity: sha512-mzgmQZAVGo+uLkQXTY0viqVSEQKesmR5OEMMq1jM/2jucbZUcyaq8dVKRIWJJEzwNgZ6MpeOpshUtOzGxxy8ag==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.8: - resolution: {integrity: sha512-AxpdeLKQSyCZo7MzdOyV4OgEbEJcjnrS/2niAjbHESbjuS5P1DN/5vZoJ/JSWDVa/40OkBuHBhAXMx1HK3UDsg==} + /esbuild-windows-32/0.14.9: + resolution: {integrity: sha512-sYHEJLwdDJpjjSUyIGqPC1GRXl0Z/YT1K85Tcrv4iqZEXFR0rT7sTV+E0XC911FbTJHfuAdUJixkwAQeLMdrUg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.8: - resolution: {integrity: sha512-/3pllNoy8mrz/E1rYalwiwwhzJBrYQhEapwAteHZbFVhGzYuB8F80e8x5eA8dhFHxDiZh1VzK+hREwwSt8UTQA==} + /esbuild-windows-64/0.14.9: + resolution: {integrity: sha512-xJTpyFzpH51LGlVR2C3P+Gpnjujsx5kEtJj5V/x8TyD94VW+EpszyND/pay15CIF64pWywyQt2jmGUDl6kzkEw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.8: - resolution: {integrity: sha512-lTm5naoNgaUvzIiax3XYIEebqwr3bIIEEtqUhzQ2UQ+JMBmvhr02w3sJIJqF3axTX6TgWrC1OtM7DYNvFG+aXA==} + /esbuild-windows-arm64/0.14.9: + resolution: {integrity: sha512-NKPPsYVlHqdF0yMuMJrjuAzqS/BHrMXZ8TN1Du+Pgi8KkmxzNXRPDHQV0NPPJ+Z7Lp09joEHSz1zrvQRs1j6jw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.8: - resolution: {integrity: sha512-stMsCBmxwaMpeK8GC/49L/cRGIwsHwoEN7Twk5zDTHlm/63c0KXFKzDC8iM2Mi3fyCKwS002TAH6IlAvqR6t3g==} + /esbuild/0.14.9: + resolution: {integrity: sha512-uuT3kFsfUvzNW6I2RKKIHuCvutY/U9KFcAP6emUm98WvBhyhEr5vGkZLeN3r3vXfoykl+7xekAH8Ky09LXBd0Q==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.8 - esbuild-darwin-64: 0.14.8 - esbuild-darwin-arm64: 0.14.8 - esbuild-freebsd-64: 0.14.8 - esbuild-freebsd-arm64: 0.14.8 - esbuild-linux-32: 0.14.8 - esbuild-linux-64: 0.14.8 - esbuild-linux-arm: 0.14.8 - esbuild-linux-arm64: 0.14.8 - esbuild-linux-mips64le: 0.14.8 - esbuild-linux-ppc64le: 0.14.8 - esbuild-linux-s390x: 0.14.8 - esbuild-netbsd-64: 0.14.8 - esbuild-openbsd-64: 0.14.8 - esbuild-sunos-64: 0.14.8 - esbuild-windows-32: 0.14.8 - esbuild-windows-64: 0.14.8 - esbuild-windows-arm64: 0.14.8 + esbuild-android-arm64: 0.14.9 + esbuild-darwin-64: 0.14.9 + esbuild-darwin-arm64: 0.14.9 + esbuild-freebsd-64: 0.14.9 + esbuild-freebsd-arm64: 0.14.9 + esbuild-linux-32: 0.14.9 + esbuild-linux-64: 0.14.9 + esbuild-linux-arm: 0.14.9 + esbuild-linux-arm64: 0.14.9 + esbuild-linux-mips64le: 0.14.9 + esbuild-linux-ppc64le: 0.14.9 + esbuild-linux-s390x: 0.14.9 + esbuild-netbsd-64: 0.14.9 + esbuild-openbsd-64: 0.14.9 + esbuild-sunos-64: 0.14.9 + esbuild-windows-32: 0.14.9 + esbuild-windows-64: 0.14.9 + esbuild-windows-arm64: 0.14.9 dev: true /escalade/3.1.1: @@ -1116,8 +1116,8 @@ packages: resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.6.0 - acorn-jsx: 5.3.2_acorn@8.6.0 + acorn: 8.7.0 + acorn-jsx: 5.3.2_acorn@8.7.0 eslint-visitor-keys: 3.1.0 dev: true @@ -1694,8 +1694,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /nanospinner/0.5.0: - resolution: {integrity: sha512-VaEzZRHgdgvru4qr5Oe7SjalSGQsoCZrl42FEnAYHp8R+ghcok6u8Yo5U37kD+ABOjRh1IUOA64qqff+TznDfg==} + /nanospinner/0.6.0: + resolution: {integrity: sha512-G2QQwVJListXbtsBW5r5kJs8WXybsO9/SQxzcvSmPRSIOQOeR0v/ETI9hncOna0tzWscdjjcCZUVCJoR4eJlag==} dependencies: picocolors: 1.0.0 dev: true @@ -1991,8 +1991,8 @@ packages: requiresBuild: true dev: true - /size-limit/7.0.4: - resolution: {integrity: sha512-IkY30erk6psU6UCg/R0crNUIWIQsTTVv1/tMtY0ifOtq6Y2F2cUC3Z0zXNAmKcncnl9HJjUIQhw2WNYRlDiv0Q==} + /size-limit/7.0.5: + resolution: {integrity: sha512-dve+Vaq/a6H7QZhFbozAUBKNO9ZnZkPX3EF1ETI8yv3YCMdC7e63HmVZDXKB//o3FCTHqtZQ0p3ZtOwN/PSiqQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} hasBin: true dependencies: @@ -2002,7 +2002,7 @@ packages: globby: 11.0.4 lilconfig: 2.0.4 mkdirp: 1.0.4 - nanospinner: 0.5.0 + nanospinner: 0.6.0 picocolors: 1.0.0 dev: true @@ -2120,7 +2120,7 @@ packages: engines: {node: '>=6'} dev: true - /ts-node/10.4.0_d0eef7d48f2063e87802f700404a1b3b: + /ts-node/10.4.0_bad060d5f9aca5284661d88d739ba15b: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2139,8 +2139,8 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.4 - acorn: 8.6.0 + '@types/node': 17.0.5 + acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 @@ -2249,8 +2249,8 @@ packages: vfile: 5.2.0 dev: true - /vfile-message/3.0.2: - resolution: {integrity: sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==} + /vfile-message/3.1.0: + resolution: {integrity: sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g==} dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.0 @@ -2262,7 +2262,7 @@ packages: '@types/unist': 2.0.6 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.0 - vfile-message: 3.0.2 + vfile-message: 3.1.0 dev: true /which-boxed-primitive/1.0.2: From c7f6b10ab4737086b7cdcecf491f79e1d065916b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 5 Jan 2022 07:20:55 +0300 Subject: [PATCH 2475/3047] Update dependencies and clean npm ignore --- .npmignore | 4 - package.json | 16 +- pnpm-lock.yaml | 397 +++++++++++++++++++++++++------------------------ 3 files changed, 213 insertions(+), 204 deletions(-) diff --git a/.npmignore b/.npmignore index 462619fde..de9010b49 100644 --- a/.npmignore +++ b/.npmignore @@ -1,9 +1,5 @@ -pnpm-lock.yaml - -.editorconfig coverage/ test/ docs/ -.github/ tsconfig.json diff --git a/package.json b/package.json index 2f21ac8a8..0a88c14fb 100755 --- a/package.json +++ b/package.json @@ -77,16 +77,16 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.5", - "@typescript-eslint/eslint-plugin": "^5.8.1", - "@typescript-eslint/parser": "^5.8.1", - "c8": "^7.10.0", + "@types/node": "^17.0.8", + "@typescript-eslint/eslint-plugin": "^5.9.0", + "@typescript-eslint/parser": "^5.9.0", + "c8": "^7.11.0", "check-dts": "^0.6.6", - "clean-publish": "^3.4.4", + "clean-publish": "^3.4.5", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.5.0", + "eslint": "^8.6.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.0", @@ -99,7 +99,7 @@ "strip-ansi": "^6.0.1", "ts-node": "^10.4.0", "typescript": "^4.5.4", - "uvu": "^0.5.2" + "uvu": "^0.5.3" }, "c8": { "exclude": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b10b65ea..92779c776 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,16 +4,16 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.5 - '@typescript-eslint/eslint-plugin': ^5.8.1 - '@typescript-eslint/parser': ^5.8.1 - c8: ^7.10.0 + '@types/node': ^17.0.8 + '@typescript-eslint/eslint-plugin': ^5.9.0 + '@typescript-eslint/parser': ^5.9.0 + c8: ^7.11.0 check-dts: ^0.6.6 - clean-publish: ^3.4.4 + clean-publish: ^3.4.5 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.5.0 + eslint: ^8.6.0 eslint-config-standard: ^16.0.3 - eslint-plugin-import: ^2.25.3 + eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 @@ -29,7 +29,7 @@ specifiers: strip-ansi: ^6.0.1 ts-node: ^10.4.0 typescript: ^4.5.4 - uvu: ^0.5.2 + uvu: ^0.5.3 dependencies: nanoid: 3.1.30 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.1 devDependencies: - '@logux/eslint-config': 46.1.1_c17dd127f590f453c99768f3d4d62028 + '@logux/eslint-config': 46.1.1_d1222171c29616668e681fe85aa8127f '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.5 - '@typescript-eslint/eslint-plugin': 5.8.1_3a47348159e115370aa4cba56aba33b6 - '@typescript-eslint/parser': 5.8.1_eslint@8.5.0+typescript@4.5.4 - c8: 7.10.0 + '@types/node': 17.0.8 + '@typescript-eslint/eslint-plugin': 5.9.0_bd2fd93dbcc607ad2f21b784bccfe0c8 + '@typescript-eslint/parser': 5.9.0_eslint@8.6.0+typescript@4.5.4 + c8: 7.11.0 check-dts: 0.6.6_typescript@4.5.4 - clean-publish: 3.4.4 + clean-publish: 3.4.5 concat-with-sourcemaps: 1.1.0 - eslint: 8.5.0 - eslint-config-standard: 16.0.3_4cecef3480376bac71ded249816d1e72 - eslint-plugin-import: 2.25.3_eslint@8.5.0 - eslint-plugin-node: 11.1.0_eslint@8.5.0 + eslint: 8.6.0 + eslint-config-standard: 16.0.3_8d3cc733693a55bff97313a767012510 + eslint-plugin-import: 2.25.4_eslint@8.6.0 + eslint-plugin-node: 11.1.0_eslint@8.6.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.5.0 + eslint-plugin-promise: 6.0.0_eslint@8.6.0 fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 @@ -60,9 +60,9 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 - ts-node: 10.4.0_bad060d5f9aca5284661d88d739ba15b + ts-node: 10.4.0_faf01e1d5a40372a98081522dcafc186 typescript: 4.5.4 - uvu: 0.5.2 + uvu: 0.5.3 packages: @@ -88,7 +88,7 @@ packages: dependencies: ajv: 6.12.6 debug: 4.3.3 - espree: 9.2.0 + espree: 9.3.0 globals: 13.12.0 ignore: 4.0.6 import-fresh: 3.3.0 @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_c17dd127f590f453c99768f3d4d62028: + /@logux/eslint-config/46.1.1_d1222171c29616668e681fe85aa8127f: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.5.0 - eslint-config-standard: 16.0.3_4cecef3480376bac71ded249816d1e72 - eslint-plugin-import: 2.25.3_eslint@8.5.0 - eslint-plugin-node: 11.1.0_eslint@8.5.0 + eslint: 8.6.0 + eslint-config-standard: 16.0.3_8d3cc733693a55bff97313a767012510 + eslint-plugin-import: 2.25.4_eslint@8.6.0 + eslint-plugin-node: 11.1.0_eslint@8.6.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.5.0 + eslint-plugin-promise: 6.0.0_eslint@8.6.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.5 dependencies: - esbuild: 0.14.9 + esbuild: 0.14.10 nanoid: 3.1.30 size-limit: 7.0.5 dev: true @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.5 + '@types/node': 17.0.8 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.5: - resolution: {integrity: sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==} + /@types/node/17.0.8: + resolution: {integrity: sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.8.1_3a47348159e115370aa4cba56aba33b6: - resolution: {integrity: sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==} + /@typescript-eslint/eslint-plugin/5.9.0_bd2fd93dbcc607ad2f21b784bccfe0c8: + resolution: {integrity: sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,11 +243,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.8.1_eslint@8.5.0+typescript@4.5.4 - '@typescript-eslint/parser': 5.8.1_eslint@8.5.0+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.8.1 + '@typescript-eslint/experimental-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.9.0 + '@typescript-eslint/type-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 debug: 4.3.3 - eslint: 8.5.0 + eslint: 8.6.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -258,26 +259,26 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.8.1_eslint@8.5.0+typescript@4.5.4: - resolution: {integrity: sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==} + /@typescript-eslint/experimental-utils/5.9.0_eslint@8.6.0+typescript@4.5.4: + resolution: {integrity: sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.8.1 - '@typescript-eslint/types': 5.8.1 - '@typescript-eslint/typescript-estree': 5.8.1_typescript@4.5.4 - eslint: 8.5.0 + '@typescript-eslint/scope-manager': 5.9.0 + '@typescript-eslint/types': 5.9.0 + '@typescript-eslint/typescript-estree': 5.9.0_typescript@4.5.4 + eslint: 8.6.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.5.0 + eslint-utils: 3.0.0_eslint@8.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser/5.8.1_eslint@8.5.0+typescript@4.5.4: - resolution: {integrity: sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==} + /@typescript-eslint/parser/5.9.0_eslint@8.6.0+typescript@4.5.4: + resolution: {integrity: sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -286,31 +287,50 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.8.1 - '@typescript-eslint/types': 5.8.1 - '@typescript-eslint/typescript-estree': 5.8.1_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.9.0 + '@typescript-eslint/types': 5.9.0 + '@typescript-eslint/typescript-estree': 5.9.0_typescript@4.5.4 debug: 4.3.3 - eslint: 8.5.0 + eslint: 8.6.0 typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.8.1: - resolution: {integrity: sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==} + /@typescript-eslint/scope-manager/5.9.0: + resolution: {integrity: sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.8.1 - '@typescript-eslint/visitor-keys': 5.8.1 + '@typescript-eslint/types': 5.9.0 + '@typescript-eslint/visitor-keys': 5.9.0 dev: true - /@typescript-eslint/types/5.8.1: - resolution: {integrity: sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==} + /@typescript-eslint/type-utils/5.9.0_eslint@8.6.0+typescript@4.5.4: + resolution: {integrity: sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/experimental-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 + debug: 4.3.3 + eslint: 8.6.0 + tsutils: 3.21.0_typescript@4.5.4 + typescript: 4.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.9.0: + resolution: {integrity: sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.8.1_typescript@4.5.4: - resolution: {integrity: sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==} + /@typescript-eslint/typescript-estree/5.9.0_typescript@4.5.4: + resolution: {integrity: sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -318,8 +338,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.8.1 - '@typescript-eslint/visitor-keys': 5.8.1 + '@typescript-eslint/types': 5.9.0 + '@typescript-eslint/visitor-keys': 5.9.0 debug: 4.3.3 globby: 11.0.4 is-glob: 4.0.3 @@ -330,11 +350,11 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/5.8.1: - resolution: {integrity: sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==} + /@typescript-eslint/visitor-keys/5.9.0: + resolution: {integrity: sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.8.1 + '@typescript-eslint/types': 5.9.0 eslint-visitor-keys: 3.1.0 dev: true @@ -400,7 +420,7 @@ packages: engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /arg/4.1.3: @@ -464,8 +484,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /c8/7.10.0: - resolution: {integrity: sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA==} + /c8/7.11.0: + resolution: {integrity: sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -475,7 +495,7 @@ packages: foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.2 + istanbul-reports: 3.1.3 rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 8.1.0 @@ -545,8 +565,8 @@ packages: resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==} dev: true - /clean-publish/3.4.4: - resolution: {integrity: sha512-eCWBBLbaOBqLtxQrjBDSI1tSmx6tKckV2H0C9/je0eQg2QOGGnjE1XKc01V8M3vKe7bJuCut5hF/yUwLGLZoVA==} + /clean-publish/3.4.5: + resolution: {integrity: sha512-wxtaEqCy/B7lch+bpTPmx9wI8owTODa619UOVA1XfyNaM2bjwv1SkR1IJNDA6rtf89bjiz6UkpfU5HcEL8YJIw==} engines: {node: ^12.0.0 || ^14.0.0 || >= 16.0.0} hasBin: true dependencies: @@ -739,173 +759,173 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.9: - resolution: {integrity: sha512-VpSCuUR07G4Re/5QzqtdxS5ZgxkCRyzu4Kf5SH1/EkXzRGeoWQt8xirkOMK58pfmg/FlS/fQNgwl3Txej4LoVg==} + /esbuild-android-arm64/0.14.10: + resolution: {integrity: sha512-vzkTafHKoiMX4uIN1kBnE/HXYLpNT95EgGanVk6DHGeYgDolU0NBxjO7yZpq4ZGFPOx8384eAdDrBYhO11TAlQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.9: - resolution: {integrity: sha512-F/RcRHMG5ccAL8n9VIy8ZC4D0IHZrN/1IhHQbY4qPXrMlh42FucR0TW4lr3vdHF3caaId1jdDSQQJ7jXR+ZC5Q==} + /esbuild-darwin-64/0.14.10: + resolution: {integrity: sha512-DJwzFVB95ZV7C3PQbf052WqaUuuMFXJeZJ0LKdnP1w+QOU0rlbKfX0tzuhoS//rOXUj1TFIwRuRsd0FX6skR7A==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.9: - resolution: {integrity: sha512-3ue+1T4FR5TaAu4/V1eFMG8Uwn0pgAwQZb/WwL1X78d5Cy8wOVQ67KNH1lsjU+y/9AcwMKZ9x0GGNxBB4a1Rbw==} + /esbuild-darwin-arm64/0.14.10: + resolution: {integrity: sha512-RNaaoZDg3nsqs5z56vYCjk/VJ76npf752W0rOaCl5lO5TsgV9zecfdYgt7dtUrIx8b7APhVaNYud+tGsDOVC9g==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.9: - resolution: {integrity: sha512-0YEjWt6ijaf5Y3Q50YS1lZxuWZWMV/T7atQEuQnF8ioq5jamrVr8j1TZ9+rxcLgH1lBMsXj8IwW+6BleXredEg==} + /esbuild-freebsd-64/0.14.10: + resolution: {integrity: sha512-10B3AzW894u6bGZZhWiJOHw1uEHb4AFbUuBdyml1Ht0vIqd+KqWW+iY/yMwQAzILr2WJZqEhbOXRkJtY8aRqOw==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.9: - resolution: {integrity: sha512-82w5qMgEeYvf8+vX/2KE5TOZf8rv8VK4TFiK6lDzdgdwwmBU5C8kdT3rO5Llan2K2LKndrou1eyi/fHwFcwPJQ==} + /esbuild-freebsd-arm64/0.14.10: + resolution: {integrity: sha512-mSQrKB7UaWvuryBTCo9leOfY2uEUSimAvcKIaUWbk5Hth9Sg+Try+qNA/NibPgs/vHkX0KFo/Rce6RPea+P15g==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.9: - resolution: {integrity: sha512-eu8J8HNpco7Mkd7T7djQRzGBeuve41kbXRxFHOwwbZXMNQojXjBqLuradi5i/Vsw+CA4G/yVpmJI2S75Cit2mQ==} + /esbuild-linux-32/0.14.10: + resolution: {integrity: sha512-lktF09JgJLZ63ANYHIPdYe339PDuVn19Q/FcGKkXWf+jSPkn5xkYzAabboNGZNUgNqSJ/vY7VrOn6UrBbJjgYA==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.9: - resolution: {integrity: sha512-WoEI+R6/PLZAxS7XagfQMFgRtLUi5cjqqU9VCfo3tnWmAXh/wt8QtUfCVVCcXVwZLS/RNvI19CtfjlrJU61nOg==} + /esbuild-linux-64/0.14.10: + resolution: {integrity: sha512-K+gCQz2oLIIBI8ZM77e9sYD5/DwEpeYCrOQ2SYXx+R4OU2CT9QjJDi4/OpE7ko4AcYMlMW7qrOCuLSgAlEj4Wg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.9: - resolution: {integrity: sha512-d3k1ZPREjaKYyhsS8x3jvc4ekjIZ8SmuihP60mrN1f6p5y07NKWw9i0OWD1p6hy+7g6cjMWq00tstMIikGB9Yg==} + /esbuild-linux-arm/0.14.10: + resolution: {integrity: sha512-BYa60dZ/KPmNKYxtHa3LSEdfKWHcm/RzP0MjB4AeBPhjS0D6/okhaBesZIY9kVIGDyeenKsJNOmnVt4+dhNnvQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.9: - resolution: {integrity: sha512-joUE0yQgWMDkQqBx3+6SdNCVZ10F1O4+WM94moghvhdTzkYpECIc/WvfqMF/w0V8Hecw3QJ7vugO7jsFlXXd4Q==} + /esbuild-linux-arm64/0.14.10: + resolution: {integrity: sha512-+qocQuQvcp5wo/V+OLXxqHPc+gxHttJEvbU/xrCGE03vIMqraL4wMua8JQx0SWEnJCWP+Nhf//v8OSwz1Xr5kA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.9: - resolution: {integrity: sha512-ZAuheiDRo2c4rxx8GUTEwPvos0zUwCYjP9K2WfCSmDL6m3RpaObCQhZghrDuoIUwvc/D6SWuABsKE9VzogsltQ==} + /esbuild-linux-mips64le/0.14.10: + resolution: {integrity: sha512-nmUd2xoBXpGo4NJCEWoaBj+n4EtDoLEvEYc8Z3aSJrY0Oa6s04czD1flmhd0I/d6QEU8b7GQ9U0g/rtBfhtxBg==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.9: - resolution: {integrity: sha512-Pm8FeG5l314k3a2mbu3SAc5E2eLFuGUsGiSlw8V6xtA4whxJ7rit7951w9jBhz+1Vqqtqprg2IYTng3j2CGhVw==} + /esbuild-linux-ppc64le/0.14.10: + resolution: {integrity: sha512-vsOWZjm0rZix7HSmqwPph9arRVCyPtUpcURdayQDuIhMG2/UxJxpbdRaa//w4zYqcJzAWwuyH2PAlyy0ZNuxqQ==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.9: - resolution: {integrity: sha512-G8FNZygV82N1/LOfPD8ZX7Mn1dPpKKPrZc93ebSJ8/VgNIafOAhV5vaeK1lhcx6ZSu+jJU/UyQQMG1CIvHRIaw==} + /esbuild-linux-s390x/0.14.10: + resolution: {integrity: sha512-knArKKZm0ypIYWOWyOT7+accVwbVV1LZnl2FWWy05u9Tyv5oqJ2F5+X2Vqe/gqd61enJXQWqoufXopvG3zULOg==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.9: - resolution: {integrity: sha512-b7vPrn5XN0GRtNAQ3w+gq8AwUfWSRBkcPAdA5UUT5rkrw7wKFyMqi2/zREBc/Knu5YOsLmZPQSoM8QL6qy79cg==} + /esbuild-netbsd-64/0.14.10: + resolution: {integrity: sha512-6Gg8neVcLeyq0yt9bZpReb8ntZ8LBEjthxrcYWVrBElcltnDjIy1hrzsujt0+sC2rL+TlSsE9dzgyuvlDdPp2w==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.9: - resolution: {integrity: sha512-w95Rt/vmVhZWfzZmeoMIHxbFiOFDmxC7GEdnCbDTXX2vlwKu+CIDIKOgWW+R1T2JqTNo5tu9dRkngKZMfbUo/A==} + /esbuild-openbsd-64/0.14.10: + resolution: {integrity: sha512-9rkHZzp10zI90CfKbFrwmQjqZaeDmyQ6s9/hvCwRkbOCHuto6RvMYH9ghQpcr5cUxD5OQIA+sHXi0zokRNXjcg==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.9: - resolution: {integrity: sha512-mzgmQZAVGo+uLkQXTY0viqVSEQKesmR5OEMMq1jM/2jucbZUcyaq8dVKRIWJJEzwNgZ6MpeOpshUtOzGxxy8ag==} + /esbuild-sunos-64/0.14.10: + resolution: {integrity: sha512-mEU+pqkhkhbwpJj5DiN3vL0GUFR/yrL3qj8ER1amIVyRibKbj02VM1QaIuk1sy5DRVIKiFXXgCaHvH3RNWCHIw==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.9: - resolution: {integrity: sha512-sYHEJLwdDJpjjSUyIGqPC1GRXl0Z/YT1K85Tcrv4iqZEXFR0rT7sTV+E0XC911FbTJHfuAdUJixkwAQeLMdrUg==} + /esbuild-windows-32/0.14.10: + resolution: {integrity: sha512-Z5DieUL1N6s78dOSdL95KWf8Y89RtPGxIoMF+LEy8ChDsX+pZpz6uAVCn+YaWpqQXO+2TnrcbgBIoprq2Mco1g==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.9: - resolution: {integrity: sha512-xJTpyFzpH51LGlVR2C3P+Gpnjujsx5kEtJj5V/x8TyD94VW+EpszyND/pay15CIF64pWywyQt2jmGUDl6kzkEw==} + /esbuild-windows-64/0.14.10: + resolution: {integrity: sha512-LE5Mm62y0Bilu7RDryBhHIX8rK3at5VwJ6IGM3BsASidCfOBTzqcs7Yy0/Vkq39VKeTmy9/66BAfVoZRNznoDw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.9: - resolution: {integrity: sha512-NKPPsYVlHqdF0yMuMJrjuAzqS/BHrMXZ8TN1Du+Pgi8KkmxzNXRPDHQV0NPPJ+Z7Lp09joEHSz1zrvQRs1j6jw==} + /esbuild-windows-arm64/0.14.10: + resolution: {integrity: sha512-OJOyxDtabvcUYTc+O4dR0JMzLBz6G9+gXIHA7Oc5d5Fv1xiYa0nUeo8+W5s2e6ZkPRdIwOseYoL70rZz80S5BA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.9: - resolution: {integrity: sha512-uuT3kFsfUvzNW6I2RKKIHuCvutY/U9KFcAP6emUm98WvBhyhEr5vGkZLeN3r3vXfoykl+7xekAH8Ky09LXBd0Q==} + /esbuild/0.14.10: + resolution: {integrity: sha512-ibZb+NwFqBwHHJlpnFMtg4aNmVK+LUtYMFC9CuKs6lDCBEvCHpqCFZFEirpqt1jOugwKGx8gALNGvX56lQyfew==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.9 - esbuild-darwin-64: 0.14.9 - esbuild-darwin-arm64: 0.14.9 - esbuild-freebsd-64: 0.14.9 - esbuild-freebsd-arm64: 0.14.9 - esbuild-linux-32: 0.14.9 - esbuild-linux-64: 0.14.9 - esbuild-linux-arm: 0.14.9 - esbuild-linux-arm64: 0.14.9 - esbuild-linux-mips64le: 0.14.9 - esbuild-linux-ppc64le: 0.14.9 - esbuild-linux-s390x: 0.14.9 - esbuild-netbsd-64: 0.14.9 - esbuild-openbsd-64: 0.14.9 - esbuild-sunos-64: 0.14.9 - esbuild-windows-32: 0.14.9 - esbuild-windows-64: 0.14.9 - esbuild-windows-arm64: 0.14.9 + esbuild-android-arm64: 0.14.10 + esbuild-darwin-64: 0.14.10 + esbuild-darwin-arm64: 0.14.10 + esbuild-freebsd-64: 0.14.10 + esbuild-freebsd-arm64: 0.14.10 + esbuild-linux-32: 0.14.10 + esbuild-linux-64: 0.14.10 + esbuild-linux-arm: 0.14.10 + esbuild-linux-arm64: 0.14.10 + esbuild-linux-mips64le: 0.14.10 + esbuild-linux-ppc64le: 0.14.10 + esbuild-linux-s390x: 0.14.10 + esbuild-netbsd-64: 0.14.10 + esbuild-openbsd-64: 0.14.10 + esbuild-sunos-64: 0.14.10 + esbuild-windows-32: 0.14.10 + esbuild-windows-64: 0.14.10 + esbuild-windows-arm64: 0.14.10 dev: true /escalade/3.1.1: @@ -923,7 +943,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_4cecef3480376bac71ded249816d1e72: + /eslint-config-standard/16.0.3_8d3cc733693a55bff97313a767012510: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -931,41 +951,40 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.5.0 - eslint-plugin-import: 2.25.3_eslint@8.5.0 - eslint-plugin-node: 11.1.0_eslint@8.5.0 - eslint-plugin-promise: 6.0.0_eslint@8.5.0 + eslint: 8.6.0 + eslint-plugin-import: 2.25.4_eslint@8.6.0 + eslint-plugin-node: 11.1.0_eslint@8.6.0 + eslint-plugin-promise: 6.0.0_eslint@8.6.0 dev: true /eslint-import-resolver-node/0.3.6: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: debug: 3.2.7 - resolve: 1.20.0 + resolve: 1.21.0 dev: true - /eslint-module-utils/2.7.1: - resolution: {integrity: sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==} + /eslint-module-utils/2.7.2: + resolution: {integrity: sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==} engines: {node: '>=4'} dependencies: debug: 3.2.7 find-up: 2.1.0 - pkg-dir: 2.0.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.5.0: + /eslint-plugin-es/3.0.1_eslint@8.6.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.5.0 + eslint: 8.6.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.3_eslint@8.5.0: - resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} + /eslint-plugin-import/2.25.4_eslint@8.6.0: + resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 @@ -974,30 +993,30 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.5.0 + eslint: 8.6.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.1 + eslint-module-utils: 2.7.2 has: 1.0.3 is-core-module: 2.8.0 is-glob: 4.0.3 minimatch: 3.0.4 object.values: 1.1.5 - resolve: 1.20.0 + resolve: 1.21.0 tsconfig-paths: 3.12.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.5.0: + /eslint-plugin-node/11.1.0_eslint@8.6.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.5.0 - eslint-plugin-es: 3.0.1_eslint@8.5.0 + eslint: 8.6.0 + eslint-plugin-es: 3.0.1_eslint@8.6.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.0.4 - resolve: 1.20.0 + resolve: 1.21.0 semver: 6.3.0 dev: true @@ -1008,13 +1027,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.5.0: + /eslint-plugin-promise/6.0.0_eslint@8.6.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.5.0 + eslint: 8.6.0 dev: true /eslint-scope/5.1.1: @@ -1040,13 +1059,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.5.0: + /eslint-utils/3.0.0_eslint@8.6.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.5.0 + eslint: 8.6.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1065,8 +1084,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.5.0: - resolution: {integrity: sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==} + /eslint/8.6.0: + resolution: {integrity: sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1080,9 +1099,9 @@ packages: enquirer: 2.3.6 escape-string-regexp: 4.0.0 eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.5.0 + eslint-utils: 3.0.0_eslint@8.6.0 eslint-visitor-keys: 3.1.0 - espree: 9.2.0 + espree: 9.3.0 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -1112,8 +1131,8 @@ packages: - supports-color dev: true - /espree/9.2.0: - resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} + /espree/9.3.0: + resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.7.0 @@ -1232,7 +1251,7 @@ packages: resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.9 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -1322,8 +1341,8 @@ packages: slash: 3.0.0 dev: true - /graceful-fs/4.2.8: - resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} + /graceful-fs/4.2.9: + resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} dev: true /has-bigints/1.0.1: @@ -1541,8 +1560,8 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-reports/3.1.2: - resolution: {integrity: sha512-0gHxuT1NNC0aEIL1zbJ+MTgPbbHhU77eJPuU35WKA7TgXiSNlCAx4PENoMrH0Or6M2H80TaZcWKhM0IK6V8gRw==} + /istanbul-reports/3.1.3: + resolution: {integrity: sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -1576,7 +1595,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.9 dev: true /kleur/4.1.4: @@ -1644,7 +1663,7 @@ packages: engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /mimic-fn/2.1.0: @@ -1839,18 +1858,11 @@ packages: /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picomatch/2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pkg-dir/2.0.0: - resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} - engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - dev: true - /postcss-parser-tests/8.3.7: resolution: {integrity: sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q==} dependencies: @@ -1881,7 +1893,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /regexpp/3.2.0: @@ -1904,11 +1916,13 @@ packages: engines: {node: '>=4'} dev: true - /resolve/1.20.0: - resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} + /resolve/1.21.0: + resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} + hasBin: true dependencies: is-core-module: 2.8.0 path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 dev: true /restore-cursor/3.1.0: @@ -1937,9 +1951,9 @@ packages: queue-microtask: 1.2.3 dev: true - /sade/1.7.4: - resolution: {integrity: sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==} - engines: {node: '>= 6'} + /sade/1.8.0: + resolution: {integrity: sha512-NRfCA8AVYuAA7Hu8bs18od6J4BdcXXwOv6OJuNgwbw8LcLK8JKwaM3WckLZ+MGyPJUS/ivVgK3twltrOIJJnug==} + engines: {node: '>=6'} dependencies: mri: 1.2.0 dev: true @@ -2095,6 +2109,11 @@ packages: has-flag: 4.0.0 dev: true + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -2115,12 +2134,7 @@ packages: is-number: 7.0.0 dev: true - /totalist/2.0.0: - resolution: {integrity: sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==} - engines: {node: '>=6'} - dev: true - - /ts-node/10.4.0_bad060d5f9aca5284661d88d739ba15b: + /ts-node/10.4.0_faf01e1d5a40372a98081522dcafc186: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2139,7 +2153,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.5 + '@types/node': 17.0.8 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2217,16 +2231,15 @@ packages: punycode: 2.1.1 dev: true - /uvu/0.5.2: - resolution: {integrity: sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==} + /uvu/0.5.3: + resolution: {integrity: sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==} engines: {node: '>=8'} hasBin: true dependencies: dequal: 2.0.2 diff: 5.0.0 kleur: 4.1.4 - sade: 1.7.4 - totalist: 2.0.0 + sade: 1.8.0 dev: true /v8-compile-cache/2.3.0: @@ -2246,7 +2259,7 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.2.0 + vfile: 5.2.1 dev: true /vfile-message/3.1.0: @@ -2256,8 +2269,8 @@ packages: unist-util-stringify-position: 3.0.0 dev: true - /vfile/5.2.0: - resolution: {integrity: sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA==} + /vfile/5.2.1: + resolution: {integrity: sha512-vXW5XKbELM6mLj88kmkJ+gjFGZ/2gTmpdqPDjs3y+qbvI5i7md7rba/+pbYEawa7t22W7ynywPV6lUUAS1WiYg==} dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 From 3636eaf9b749c64c5dbfbaa56d45bc22b3169ff9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 18 Jan 2022 15:32:47 +0100 Subject: [PATCH 2476/3047] Update dependencies --- package.json | 10 +- pnpm-lock.yaml | 398 +++++++++++++++++++++++-------------------------- 2 files changed, 194 insertions(+), 214 deletions(-) diff --git a/package.json b/package.json index 0a88c14fb..d626671d6 100755 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.1.30", + "nanoid": "^3.2.0", "picocolors": "^1.0.0", "source-map-js": "^1.0.1" }, @@ -77,14 +77,14 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.8", - "@typescript-eslint/eslint-plugin": "^5.9.0", - "@typescript-eslint/parser": "^5.9.0", + "@types/node": "^17.0.9", + "@typescript-eslint/eslint-plugin": "^5.10.0", + "@typescript-eslint/parser": "^5.10.0", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^3.4.5", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.6.0", + "eslint": "^8.7.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92779c776..1fcf03b6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,14 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.8 - '@typescript-eslint/eslint-plugin': ^5.9.0 - '@typescript-eslint/parser': ^5.9.0 + '@types/node': ^17.0.9 + '@typescript-eslint/eslint-plugin': ^5.10.0 + '@typescript-eslint/parser': ^5.10.0 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^3.4.5 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.6.0 + eslint: ^8.7.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 @@ -19,7 +19,7 @@ specifiers: eslint-plugin-promise: ^6.0.0 fs-extra: ^10.0.0 nanodelay: ^1.0.8 - nanoid: ^3.1.30 + nanoid: ^3.2.0 nanospy: ^0.4.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.3.7 @@ -32,27 +32,27 @@ specifiers: uvu: ^0.5.3 dependencies: - nanoid: 3.1.30 + nanoid: 3.2.0 picocolors: 1.0.0 source-map-js: 1.0.1 devDependencies: - '@logux/eslint-config': 46.1.1_d1222171c29616668e681fe85aa8127f + '@logux/eslint-config': 46.1.1_1939207b661bc1aefcd22fa1c63831b1 '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.8 - '@typescript-eslint/eslint-plugin': 5.9.0_bd2fd93dbcc607ad2f21b784bccfe0c8 - '@typescript-eslint/parser': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@types/node': 17.0.9 + '@typescript-eslint/eslint-plugin': 5.10.0_3b6b276e93ead7cf6063f183a5e18d1f + '@typescript-eslint/parser': 5.10.0_eslint@8.7.0+typescript@4.5.4 c8: 7.11.0 check-dts: 0.6.6_typescript@4.5.4 clean-publish: 3.4.5 concat-with-sourcemaps: 1.1.0 - eslint: 8.6.0 - eslint-config-standard: 16.0.3_8d3cc733693a55bff97313a767012510 - eslint-plugin-import: 2.25.4_eslint@8.6.0 - eslint-plugin-node: 11.1.0_eslint@8.6.0 + eslint: 8.7.0 + eslint-config-standard: 16.0.3_40550cad9de7815574d4dc194ce0e930 + eslint-plugin-import: 2.25.4_eslint@8.7.0 + eslint-plugin-node: 11.1.0_eslint@8.7.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.6.0 + eslint-plugin-promise: 6.0.0_eslint@8.7.0 fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 - ts-node: 10.4.0_faf01e1d5a40372a98081522dcafc186 + ts-node: 10.4.0_58ff8c2ecf784f4683a8548a58a2b611 typescript: 4.5.4 uvu: 0.5.3 @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_d1222171c29616668e681fe85aa8127f: + /@logux/eslint-config/46.1.1_1939207b661bc1aefcd22fa1c63831b1: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.6.0 - eslint-config-standard: 16.0.3_8d3cc733693a55bff97313a767012510 - eslint-plugin-import: 2.25.4_eslint@8.6.0 - eslint-plugin-node: 11.1.0_eslint@8.6.0 + eslint: 8.7.0 + eslint-config-standard: 16.0.3_40550cad9de7815574d4dc194ce0e930 + eslint-plugin-import: 2.25.4_eslint@8.7.0 + eslint-plugin-node: 11.1.0_eslint@8.7.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.6.0 + eslint-plugin-promise: 6.0.0_eslint@8.7.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,8 +165,8 @@ packages: peerDependencies: size-limit: 7.0.5 dependencies: - esbuild: 0.14.10 - nanoid: 3.1.30 + esbuild: 0.14.11 + nanoid: 3.2.0 size-limit: 7.0.5 dev: true @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.8 + '@types/node': 17.0.9 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.8: - resolution: {integrity: sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==} + /@types/node/17.0.9: + resolution: {integrity: sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.9.0_bd2fd93dbcc607ad2f21b784bccfe0c8: - resolution: {integrity: sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==} + /@typescript-eslint/eslint-plugin/5.10.0_3b6b276e93ead7cf6063f183a5e18d1f: + resolution: {integrity: sha512-XXVKnMsq2fuu9K2KsIxPUGqb6xAImz8MEChClbXmE3VbveFtBUU5bzM6IPVWqzyADIgdkS2Ws/6Xo7W2TeZWjQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,12 +243,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 - '@typescript-eslint/parser': 5.9.0_eslint@8.6.0+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.9.0 - '@typescript-eslint/type-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.10.0_eslint@8.7.0+typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.10.0 + '@typescript-eslint/type-utils': 5.10.0_eslint@8.7.0+typescript@4.5.4 + '@typescript-eslint/utils': 5.10.0_eslint@8.7.0+typescript@4.5.4 debug: 4.3.3 - eslint: 8.6.0 + eslint: 8.7.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -259,26 +259,8 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.9.0_eslint@8.6.0+typescript@4.5.4: - resolution: {integrity: sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.9.0 - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/typescript-estree': 5.9.0_typescript@4.5.4 - eslint: 8.6.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/5.9.0_eslint@8.6.0+typescript@4.5.4: - resolution: {integrity: sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==} + /@typescript-eslint/parser/5.10.0_eslint@8.7.0+typescript@4.5.4: + resolution: {integrity: sha512-pJB2CCeHWtwOAeIxv8CHVGJhI5FNyJAIpx5Pt72YkK3QfEzt6qAlXZuyaBmyfOdM62qU0rbxJzNToPTVeJGrQw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -287,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.9.0 - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/typescript-estree': 5.9.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.10.0 + '@typescript-eslint/types': 5.10.0 + '@typescript-eslint/typescript-estree': 5.10.0_typescript@4.5.4 debug: 4.3.3 - eslint: 8.6.0 + eslint: 8.7.0 typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.9.0: - resolution: {integrity: sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==} + /@typescript-eslint/scope-manager/5.10.0: + resolution: {integrity: sha512-tgNgUgb4MhqK6DoKn3RBhyZ9aJga7EQrw+2/OiDk5hKf3pTVZWyqBi7ukP+Z0iEEDMF5FDa64LqODzlfE4O/Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/visitor-keys': 5.9.0 + '@typescript-eslint/types': 5.10.0 + '@typescript-eslint/visitor-keys': 5.10.0 dev: true - /@typescript-eslint/type-utils/5.9.0_eslint@8.6.0+typescript@4.5.4: - resolution: {integrity: sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==} + /@typescript-eslint/type-utils/5.10.0_eslint@8.7.0+typescript@4.5.4: + resolution: {integrity: sha512-TzlyTmufJO5V886N+hTJBGIfnjQDQ32rJYxPaeiyWKdjsv2Ld5l8cbS7pxim4DeNs62fKzRSt8Q14Evs4JnZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -315,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 5.9.0_eslint@8.6.0+typescript@4.5.4 + '@typescript-eslint/utils': 5.10.0_eslint@8.7.0+typescript@4.5.4 debug: 4.3.3 - eslint: 8.6.0 + eslint: 8.7.0 tsutils: 3.21.0_typescript@4.5.4 typescript: 4.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.9.0: - resolution: {integrity: sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==} + /@typescript-eslint/types/5.10.0: + resolution: {integrity: sha512-wUljCgkqHsMZbw60IbOqT/puLfyqqD5PquGiBo1u1IS3PLxdi3RDGlyf032IJyh+eQoGhz9kzhtZa+VC4eWTlQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.9.0_typescript@4.5.4: - resolution: {integrity: sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==} + /@typescript-eslint/typescript-estree/5.10.0_typescript@4.5.4: + resolution: {integrity: sha512-x+7e5IqfwLwsxTdliHRtlIYkgdtYXzE0CkFeV6ytAqq431ZyxCFzNMNR5sr3WOlIG/ihVZr9K/y71VHTF/DUQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -338,10 +320,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.9.0 - '@typescript-eslint/visitor-keys': 5.9.0 + '@typescript-eslint/types': 5.10.0 + '@typescript-eslint/visitor-keys': 5.10.0 debug: 4.3.3 - globby: 11.0.4 + globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.5 tsutils: 3.21.0_typescript@4.5.4 @@ -350,12 +332,30 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/5.9.0: - resolution: {integrity: sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==} + /@typescript-eslint/utils/5.10.0_eslint@8.7.0+typescript@4.5.4: + resolution: {integrity: sha512-IGYwlt1CVcFoE2ueW4/ioEwybR60RAdGeiJX/iDAw0t5w0wK3S7QncDwpmsM70nKgGTuVchEWB8lwZwHqPAWRg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.10.0 + '@typescript-eslint/types': 5.10.0 + '@typescript-eslint/typescript-estree': 5.10.0_typescript@4.5.4 + eslint: 8.7.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.7.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.10.0: + resolution: {integrity: sha512-GMxj0K1uyrFLPKASLmZzCuSddmjZVbVj3Ouy5QVuIGKZopxvOr24JsS7gruz6C3GExE01mublZ3mIBOaon9zuQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.9.0 - eslint-visitor-keys: 3.1.0 + '@typescript-eslint/types': 5.10.0 + eslint-visitor-keys: 3.2.0 dev: true /acorn-jsx/5.3.2_acorn@8.7.0: @@ -386,11 +386,6 @@ packages: uri-js: 4.4.1 dev: true - /ansi-colors/4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - /ansi-regex/4.1.0: resolution: {integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==} engines: {node: '>=6'} @@ -498,7 +493,7 @@ packages: istanbul-reports: 3.1.3 rimraf: 3.0.2 test-exclude: 6.0.0 - v8-to-istanbul: 8.1.0 + v8-to-istanbul: 8.1.1 yargs: 16.2.0 yargs-parser: 20.2.9 dev: true @@ -539,15 +534,15 @@ packages: peerDependencies: typescript: '>=4.0.0' dependencies: - fast-glob: 3.2.7 + fast-glob: 3.2.11 nanospinner: 0.6.0 picocolors: 1.0.0 typescript: 4.5.4 vfile-location: 4.0.1 dev: true - /chokidar/3.5.2: - resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.2 @@ -571,9 +566,9 @@ packages: hasBin: true dependencies: cross-spawn: 7.0.3 - fast-glob: 3.2.7 + fast-glob: 3.2.11 fs-extra: 10.0.0 - hosted-git-info: 4.0.2 + hosted-git-info: 4.1.0 lilconfig: 2.0.4 dev: true @@ -717,13 +712,6 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.1 - dev: true - /es-abstract/1.19.1: resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} engines: {node: '>= 0.4'} @@ -759,173 +747,173 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.10: - resolution: {integrity: sha512-vzkTafHKoiMX4uIN1kBnE/HXYLpNT95EgGanVk6DHGeYgDolU0NBxjO7yZpq4ZGFPOx8384eAdDrBYhO11TAlQ==} + /esbuild-android-arm64/0.14.11: + resolution: {integrity: sha512-6iHjgvMnC/SzDH8TefL+/3lgCjYWwAd1LixYfmz/TBPbDQlxcuSkX0yiQgcJB9k+ibZ54yjVXziIwGdlc+6WNw==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.10: - resolution: {integrity: sha512-DJwzFVB95ZV7C3PQbf052WqaUuuMFXJeZJ0LKdnP1w+QOU0rlbKfX0tzuhoS//rOXUj1TFIwRuRsd0FX6skR7A==} + /esbuild-darwin-64/0.14.11: + resolution: {integrity: sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.10: - resolution: {integrity: sha512-RNaaoZDg3nsqs5z56vYCjk/VJ76npf752W0rOaCl5lO5TsgV9zecfdYgt7dtUrIx8b7APhVaNYud+tGsDOVC9g==} + /esbuild-darwin-arm64/0.14.11: + resolution: {integrity: sha512-Jj0ieWLREPBYr/TZJrb2GFH8PVzDqiQWavo1pOFFShrcmHWDBDrlDxPzEZ67NF/Un3t6sNNmeI1TUS/fe1xARg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.10: - resolution: {integrity: sha512-10B3AzW894u6bGZZhWiJOHw1uEHb4AFbUuBdyml1Ht0vIqd+KqWW+iY/yMwQAzILr2WJZqEhbOXRkJtY8aRqOw==} + /esbuild-freebsd-64/0.14.11: + resolution: {integrity: sha512-C5sT3/XIztxxz/zwDjPRHyzj/NJFOnakAanXuyfLDwhwupKPd76/PPHHyJx6Po6NI6PomgVp/zi6GRB8PfrOTA==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.10: - resolution: {integrity: sha512-mSQrKB7UaWvuryBTCo9leOfY2uEUSimAvcKIaUWbk5Hth9Sg+Try+qNA/NibPgs/vHkX0KFo/Rce6RPea+P15g==} + /esbuild-freebsd-arm64/0.14.11: + resolution: {integrity: sha512-y3Llu4wbs0bk4cwjsdAtVOesXb6JkdfZDLKMt+v1U3tOEPBdSu6w8796VTksJgPfqvpX22JmPLClls0h5p+L9w==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.10: - resolution: {integrity: sha512-lktF09JgJLZ63ANYHIPdYe339PDuVn19Q/FcGKkXWf+jSPkn5xkYzAabboNGZNUgNqSJ/vY7VrOn6UrBbJjgYA==} + /esbuild-linux-32/0.14.11: + resolution: {integrity: sha512-Cg3nVsxArjyLke9EuwictFF3Sva+UlDTwHIuIyx8qpxRYAOUTmxr2LzYrhHyTcGOleLGXUXYsnUVwKqnKAgkcg==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.10: - resolution: {integrity: sha512-K+gCQz2oLIIBI8ZM77e9sYD5/DwEpeYCrOQ2SYXx+R4OU2CT9QjJDi4/OpE7ko4AcYMlMW7qrOCuLSgAlEj4Wg==} + /esbuild-linux-64/0.14.11: + resolution: {integrity: sha512-oeR6dIrrojr8DKVrxtH3xl4eencmjsgI6kPkDCRIIFwv4p+K7ySviM85K66BN01oLjzthpUMvBVfWSJkBLeRbg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.10: - resolution: {integrity: sha512-BYa60dZ/KPmNKYxtHa3LSEdfKWHcm/RzP0MjB4AeBPhjS0D6/okhaBesZIY9kVIGDyeenKsJNOmnVt4+dhNnvQ==} + /esbuild-linux-arm/0.14.11: + resolution: {integrity: sha512-vcwskfD9g0tojux/ZaTJptJQU3a7YgTYsptK1y6LQ/rJmw7U5QJvboNawqM98Ca3ToYEucfCRGbl66OTNtp6KQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.10: - resolution: {integrity: sha512-+qocQuQvcp5wo/V+OLXxqHPc+gxHttJEvbU/xrCGE03vIMqraL4wMua8JQx0SWEnJCWP+Nhf//v8OSwz1Xr5kA==} + /esbuild-linux-arm64/0.14.11: + resolution: {integrity: sha512-+e6ZCgTFQYZlmg2OqLkg1jHLYtkNDksxWDBWNtI4XG4WxuOCUErLqfEt9qWjvzK3XBcCzHImrajkUjO+rRkbMg==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.10: - resolution: {integrity: sha512-nmUd2xoBXpGo4NJCEWoaBj+n4EtDoLEvEYc8Z3aSJrY0Oa6s04czD1flmhd0I/d6QEU8b7GQ9U0g/rtBfhtxBg==} + /esbuild-linux-mips64le/0.14.11: + resolution: {integrity: sha512-Rrs99L+p54vepmXIb87xTG6ukrQv+CzrM8eoeR+r/OFL2Rg8RlyEtCeshXJ2+Q66MXZOgPJaokXJZb9snq28bw==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.10: - resolution: {integrity: sha512-vsOWZjm0rZix7HSmqwPph9arRVCyPtUpcURdayQDuIhMG2/UxJxpbdRaa//w4zYqcJzAWwuyH2PAlyy0ZNuxqQ==} + /esbuild-linux-ppc64le/0.14.11: + resolution: {integrity: sha512-JyzziGAI0D30Vyzt0HDihp4s1IUtJ3ssV2zx9O/c+U/dhUHVP2TmlYjzCfCr2Q6mwXTeloDcLS4qkyvJtYptdQ==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.10: - resolution: {integrity: sha512-knArKKZm0ypIYWOWyOT7+accVwbVV1LZnl2FWWy05u9Tyv5oqJ2F5+X2Vqe/gqd61enJXQWqoufXopvG3zULOg==} + /esbuild-linux-s390x/0.14.11: + resolution: {integrity: sha512-DoThrkzunZ1nfRGoDN6REwmo8ZZWHd2ztniPVIR5RMw/Il9wiWEYBahb8jnMzQaSOxBsGp0PbyJeVLTUatnlcw==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.10: - resolution: {integrity: sha512-6Gg8neVcLeyq0yt9bZpReb8ntZ8LBEjthxrcYWVrBElcltnDjIy1hrzsujt0+sC2rL+TlSsE9dzgyuvlDdPp2w==} + /esbuild-netbsd-64/0.14.11: + resolution: {integrity: sha512-12luoRQz+6eihKYh1zjrw0CBa2aw3twIiHV/FAfjh2NEBDgJQOY4WCEUEN+Rgon7xmLh4XUxCQjnwrvf8zhACw==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.10: - resolution: {integrity: sha512-9rkHZzp10zI90CfKbFrwmQjqZaeDmyQ6s9/hvCwRkbOCHuto6RvMYH9ghQpcr5cUxD5OQIA+sHXi0zokRNXjcg==} + /esbuild-openbsd-64/0.14.11: + resolution: {integrity: sha512-l18TZDjmvwW6cDeR4fmizNoxndyDHamGOOAenwI4SOJbzlJmwfr0jUgjbaXCUuYVOA964siw+Ix+A+bhALWg8Q==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.10: - resolution: {integrity: sha512-mEU+pqkhkhbwpJj5DiN3vL0GUFR/yrL3qj8ER1amIVyRibKbj02VM1QaIuk1sy5DRVIKiFXXgCaHvH3RNWCHIw==} + /esbuild-sunos-64/0.14.11: + resolution: {integrity: sha512-bmYzDtwASBB8c+0/HVOAiE9diR7+8zLm/i3kEojUH2z0aIs6x/S4KiTuT5/0VKJ4zk69kXel1cNWlHBMkmavQg==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.10: - resolution: {integrity: sha512-Z5DieUL1N6s78dOSdL95KWf8Y89RtPGxIoMF+LEy8ChDsX+pZpz6uAVCn+YaWpqQXO+2TnrcbgBIoprq2Mco1g==} + /esbuild-windows-32/0.14.11: + resolution: {integrity: sha512-J1Ys5hMid8QgdY00OBvIolXgCQn1ARhYtxPnG6ESWNTty3ashtc4+As5nTrsErnv8ZGUcWZe4WzTP/DmEVX1UQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.10: - resolution: {integrity: sha512-LE5Mm62y0Bilu7RDryBhHIX8rK3at5VwJ6IGM3BsASidCfOBTzqcs7Yy0/Vkq39VKeTmy9/66BAfVoZRNznoDw==} + /esbuild-windows-64/0.14.11: + resolution: {integrity: sha512-h9FmMskMuGeN/9G9+LlHPAoiQk9jlKDUn9yA0MpiGzwLa82E7r1b1u+h2a+InprbSnSLxDq/7p5YGtYVO85Mlg==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.10: - resolution: {integrity: sha512-OJOyxDtabvcUYTc+O4dR0JMzLBz6G9+gXIHA7Oc5d5Fv1xiYa0nUeo8+W5s2e6ZkPRdIwOseYoL70rZz80S5BA==} + /esbuild-windows-arm64/0.14.11: + resolution: {integrity: sha512-dZp7Krv13KpwKklt9/1vBFBMqxEQIO6ri7Azf8C+ob4zOegpJmha2XY9VVWP/OyQ0OWk6cEeIzMJwInRZrzBUQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.10: - resolution: {integrity: sha512-ibZb+NwFqBwHHJlpnFMtg4aNmVK+LUtYMFC9CuKs6lDCBEvCHpqCFZFEirpqt1jOugwKGx8gALNGvX56lQyfew==} + /esbuild/0.14.11: + resolution: {integrity: sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.10 - esbuild-darwin-64: 0.14.10 - esbuild-darwin-arm64: 0.14.10 - esbuild-freebsd-64: 0.14.10 - esbuild-freebsd-arm64: 0.14.10 - esbuild-linux-32: 0.14.10 - esbuild-linux-64: 0.14.10 - esbuild-linux-arm: 0.14.10 - esbuild-linux-arm64: 0.14.10 - esbuild-linux-mips64le: 0.14.10 - esbuild-linux-ppc64le: 0.14.10 - esbuild-linux-s390x: 0.14.10 - esbuild-netbsd-64: 0.14.10 - esbuild-openbsd-64: 0.14.10 - esbuild-sunos-64: 0.14.10 - esbuild-windows-32: 0.14.10 - esbuild-windows-64: 0.14.10 - esbuild-windows-arm64: 0.14.10 + esbuild-android-arm64: 0.14.11 + esbuild-darwin-64: 0.14.11 + esbuild-darwin-arm64: 0.14.11 + esbuild-freebsd-64: 0.14.11 + esbuild-freebsd-arm64: 0.14.11 + esbuild-linux-32: 0.14.11 + esbuild-linux-64: 0.14.11 + esbuild-linux-arm: 0.14.11 + esbuild-linux-arm64: 0.14.11 + esbuild-linux-mips64le: 0.14.11 + esbuild-linux-ppc64le: 0.14.11 + esbuild-linux-s390x: 0.14.11 + esbuild-netbsd-64: 0.14.11 + esbuild-openbsd-64: 0.14.11 + esbuild-sunos-64: 0.14.11 + esbuild-windows-32: 0.14.11 + esbuild-windows-64: 0.14.11 + esbuild-windows-arm64: 0.14.11 dev: true /escalade/3.1.1: @@ -943,7 +931,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_8d3cc733693a55bff97313a767012510: + /eslint-config-standard/16.0.3_40550cad9de7815574d4dc194ce0e930: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -951,10 +939,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.6.0 - eslint-plugin-import: 2.25.4_eslint@8.6.0 - eslint-plugin-node: 11.1.0_eslint@8.6.0 - eslint-plugin-promise: 6.0.0_eslint@8.6.0 + eslint: 8.7.0 + eslint-plugin-import: 2.25.4_eslint@8.7.0 + eslint-plugin-node: 11.1.0_eslint@8.7.0 + eslint-plugin-promise: 6.0.0_eslint@8.7.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -972,18 +960,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.6.0: + /eslint-plugin-es/3.0.1_eslint@8.7.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.6.0 + eslint: 8.7.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.6.0: + /eslint-plugin-import/2.25.4_eslint@8.7.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -993,11 +981,11 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.6.0 + eslint: 8.7.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.2 has: 1.0.3 - is-core-module: 2.8.0 + is-core-module: 2.8.1 is-glob: 4.0.3 minimatch: 3.0.4 object.values: 1.1.5 @@ -1005,14 +993,14 @@ packages: tsconfig-paths: 3.12.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.6.0: + /eslint-plugin-node/11.1.0_eslint@8.7.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.6.0 - eslint-plugin-es: 3.0.1_eslint@8.6.0 + eslint: 8.7.0 + eslint-plugin-es: 3.0.1_eslint@8.7.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.0.4 @@ -1027,13 +1015,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.6.0: + /eslint-plugin-promise/6.0.0_eslint@8.7.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.6.0 + eslint: 8.7.0 dev: true /eslint-scope/5.1.1: @@ -1059,13 +1047,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.6.0: + /eslint-utils/3.0.0_eslint@8.7.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.6.0 + eslint: 8.7.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1079,13 +1067,13 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.1.0: - resolution: {integrity: sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==} + /eslint-visitor-keys/3.2.0: + resolution: {integrity: sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.6.0: - resolution: {integrity: sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==} + /eslint/8.7.0: + resolution: {integrity: sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1096,11 +1084,10 @@ packages: cross-spawn: 7.0.3 debug: 4.3.3 doctrine: 3.0.0 - enquirer: 2.3.6 escape-string-regexp: 4.0.0 eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.6.0 - eslint-visitor-keys: 3.1.0 + eslint-utils: 3.0.0_eslint@8.7.0 + eslint-visitor-keys: 3.2.0 espree: 9.3.0 esquery: 1.4.0 esutils: 2.0.3 @@ -1109,7 +1096,7 @@ packages: functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 globals: 13.12.0 - ignore: 4.0.6 + ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 @@ -1120,9 +1107,7 @@ packages: minimatch: 3.0.4 natural-compare: 1.4.0 optionator: 0.9.1 - progress: 2.0.3 regexpp: 3.2.0 - semver: 7.3.5 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -1137,7 +1122,7 @@ packages: dependencies: acorn: 8.7.0 acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.1.0 + eslint-visitor-keys: 3.2.0 dev: true /esquery/1.4.0: @@ -1173,9 +1158,9 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -1329,13 +1314,13 @@ packages: type-fest: 0.20.2 dev: true - /globby/11.0.4: - resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.7 + fast-glob: 3.2.11 ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 @@ -1378,8 +1363,8 @@ packages: function-bind: 1.1.1 dev: true - /hosted-git-info/4.0.2: - resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 @@ -1463,8 +1448,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module/2.8.0: - resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} + /is-core-module/2.8.1: + resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} dependencies: has: 1.0.3 dev: true @@ -1708,8 +1693,8 @@ packages: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} dev: true - /nanoid/3.1.30: - resolution: {integrity: sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==} + /nanoid/3.2.0: + resolution: {integrity: sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1875,11 +1860,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /progress/2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - dev: true - /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -1920,7 +1900,7 @@ packages: resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} hasBin: true dependencies: - is-core-module: 2.8.0 + is-core-module: 2.8.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -1951,8 +1931,8 @@ packages: queue-microtask: 1.2.3 dev: true - /sade/1.8.0: - resolution: {integrity: sha512-NRfCA8AVYuAA7Hu8bs18od6J4BdcXXwOv6OJuNgwbw8LcLK8JKwaM3WckLZ+MGyPJUS/ivVgK3twltrOIJJnug==} + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} dependencies: mri: 1.2.0 @@ -2011,9 +1991,9 @@ packages: hasBin: true dependencies: bytes-iec: 3.1.1 - chokidar: 3.5.2 + chokidar: 3.5.3 ci-job-number: 1.2.2 - globby: 11.0.4 + globby: 11.1.0 lilconfig: 2.0.4 mkdirp: 1.0.4 nanospinner: 0.6.0 @@ -2134,7 +2114,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.4.0_faf01e1d5a40372a98081522dcafc186: + /ts-node/10.4.0_58ff8c2ecf784f4683a8548a58a2b611: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2153,7 +2133,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.8 + '@types/node': 17.0.9 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2239,15 +2219,15 @@ packages: dequal: 2.0.2 diff: 5.0.0 kleur: 4.1.4 - sade: 1.8.0 + sade: 1.8.1 dev: true /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /v8-to-istanbul/8.1.0: - resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} + /v8-to-istanbul/8.1.1: + resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} engines: {node: '>=10.12.0'} dependencies: '@types/istanbul-lib-coverage': 2.0.4 @@ -2259,7 +2239,7 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.2.1 + vfile: 5.3.0 dev: true /vfile-message/3.1.0: @@ -2269,8 +2249,8 @@ packages: unist-util-stringify-position: 3.0.0 dev: true - /vfile/5.2.1: - resolution: {integrity: sha512-vXW5XKbELM6mLj88kmkJ+gjFGZ/2gTmpdqPDjs3y+qbvI5i7md7rba/+pbYEawa7t22W7ynywPV6lUUAS1WiYg==} + /vfile/5.3.0: + resolution: {integrity: sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ==} dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 From 3f641adca5ccb98f7c0a458e57a61b681613c754 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 27 Jan 2022 17:33:52 +0100 Subject: [PATCH 2477/3047] Update dependencies --- package.json | 12 +-- pnpm-lock.yaml | 285 ++++++++++++++++++++++++------------------------- 2 files changed, 144 insertions(+), 153 deletions(-) diff --git a/package.json b/package.json index d626671d6..e06a5b64d 100755 --- a/package.json +++ b/package.json @@ -71,18 +71,18 @@ "dependencies": { "nanoid": "^3.2.0", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "devDependencies": { "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.9", - "@typescript-eslint/eslint-plugin": "^5.10.0", - "@typescript-eslint/parser": "^5.10.0", + "@types/node": "^17.0.12", + "@typescript-eslint/eslint-plugin": "^5.10.1", + "@typescript-eslint/parser": "^5.10.1", "c8": "^7.11.0", "check-dts": "^0.6.6", - "clean-publish": "^3.4.5", + "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.7.0", "eslint-config-standard": "^16.0.3", @@ -98,7 +98,7 @@ "size-limit": "^7.0.5", "strip-ansi": "^6.0.1", "ts-node": "^10.4.0", - "typescript": "^4.5.4", + "typescript": "^4.5.5", "uvu": "^0.5.3" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1fcf03b6c..40c1ddb77 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,12 +4,12 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.9 - '@typescript-eslint/eslint-plugin': ^5.10.0 - '@typescript-eslint/parser': ^5.10.0 + '@types/node': ^17.0.12 + '@typescript-eslint/eslint-plugin': ^5.10.1 + '@typescript-eslint/parser': ^5.10.1 c8: ^7.11.0 check-dts: ^0.6.6 - clean-publish: ^3.4.5 + clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 eslint: ^8.7.0 eslint-config-standard: ^16.0.3 @@ -25,27 +25,27 @@ specifiers: postcss-parser-tests: ^8.3.7 simple-git-hooks: ^2.7.0 size-limit: ^7.0.5 - source-map-js: ^1.0.1 + source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.4.0 - typescript: ^4.5.4 + typescript: ^4.5.5 uvu: ^0.5.3 dependencies: nanoid: 3.2.0 picocolors: 1.0.0 - source-map-js: 1.0.1 + source-map-js: 1.0.2 devDependencies: '@logux/eslint-config': 46.1.1_1939207b661bc1aefcd22fa1c63831b1 '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.9 - '@typescript-eslint/eslint-plugin': 5.10.0_3b6b276e93ead7cf6063f183a5e18d1f - '@typescript-eslint/parser': 5.10.0_eslint@8.7.0+typescript@4.5.4 + '@types/node': 17.0.12 + '@typescript-eslint/eslint-plugin': 5.10.1_0f442f6b60390429061d5d9b6bcaaba6 + '@typescript-eslint/parser': 5.10.1_eslint@8.7.0+typescript@4.5.5 c8: 7.11.0 - check-dts: 0.6.6_typescript@4.5.4 - clean-publish: 3.4.5 + check-dts: 0.6.6_typescript@4.5.5 + clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 eslint: 8.7.0 eslint-config-standard: 16.0.3_40550cad9de7815574d4dc194ce0e930 @@ -60,8 +60,8 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 - ts-node: 10.4.0_58ff8c2ecf784f4683a8548a58a2b611 - typescript: 4.5.4 + ts-node: 10.4.0_a4f631dedb43a025ec8d07f05ba12686 + typescript: 4.5.5 uvu: 0.5.3 packages: @@ -99,8 +99,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.9.2: - resolution: {integrity: sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==} + /@humanwhocodes/config-array/0.9.3: + resolution: {integrity: sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.5 dependencies: - esbuild: 0.14.11 + esbuild: 0.14.14 nanoid: 3.2.0 size-limit: 7.0.5 dev: true @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.9 + '@types/node': 17.0.12 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.9: - resolution: {integrity: sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ==} + /@types/node/17.0.12: + resolution: {integrity: sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.10.0_3b6b276e93ead7cf6063f183a5e18d1f: - resolution: {integrity: sha512-XXVKnMsq2fuu9K2KsIxPUGqb6xAImz8MEChClbXmE3VbveFtBUU5bzM6IPVWqzyADIgdkS2Ws/6Xo7W2TeZWjQ==} + /@typescript-eslint/eslint-plugin/5.10.1_0f442f6b60390429061d5d9b6bcaaba6: + resolution: {integrity: sha512-xN3CYqFlyE/qOcy978/L0xLR2HlcAGIyIK5sMOasxaaAPfQRj/MmMV6OC3I7NZO84oEUdWCOju34Z9W8E0pFDQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,24 +243,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.10.0_eslint@8.7.0+typescript@4.5.4 - '@typescript-eslint/scope-manager': 5.10.0 - '@typescript-eslint/type-utils': 5.10.0_eslint@8.7.0+typescript@4.5.4 - '@typescript-eslint/utils': 5.10.0_eslint@8.7.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.10.1_eslint@8.7.0+typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.10.1 + '@typescript-eslint/type-utils': 5.10.1_eslint@8.7.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.10.1_eslint@8.7.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.7.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.4 - typescript: 4.5.4 + tsutils: 3.21.0_typescript@4.5.5 + typescript: 4.5.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.10.0_eslint@8.7.0+typescript@4.5.4: - resolution: {integrity: sha512-pJB2CCeHWtwOAeIxv8CHVGJhI5FNyJAIpx5Pt72YkK3QfEzt6qAlXZuyaBmyfOdM62qU0rbxJzNToPTVeJGrQw==} + /@typescript-eslint/parser/5.10.1_eslint@8.7.0+typescript@4.5.5: + resolution: {integrity: sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.10.0 - '@typescript-eslint/types': 5.10.0 - '@typescript-eslint/typescript-estree': 5.10.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.10.1 + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.5.5 debug: 4.3.3 eslint: 8.7.0 - typescript: 4.5.4 + typescript: 4.5.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.10.0: - resolution: {integrity: sha512-tgNgUgb4MhqK6DoKn3RBhyZ9aJga7EQrw+2/OiDk5hKf3pTVZWyqBi7ukP+Z0iEEDMF5FDa64LqODzlfE4O/Dg==} + /@typescript-eslint/scope-manager/5.10.1: + resolution: {integrity: sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.10.0 - '@typescript-eslint/visitor-keys': 5.10.0 + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/visitor-keys': 5.10.1 dev: true - /@typescript-eslint/type-utils/5.10.0_eslint@8.7.0+typescript@4.5.4: - resolution: {integrity: sha512-TzlyTmufJO5V886N+hTJBGIfnjQDQ32rJYxPaeiyWKdjsv2Ld5l8cbS7pxim4DeNs62fKzRSt8Q14Evs4JnZyQ==} + /@typescript-eslint/type-utils/5.10.1_eslint@8.7.0+typescript@4.5.5: + resolution: {integrity: sha512-AfVJkV8uck/UIoDqhu+ptEdBoQATON9GXnhOpPLzkQRJcSChkvD//qsz9JVffl2goxX+ybs5klvacE9vmrQyCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.10.0_eslint@8.7.0+typescript@4.5.4 + '@typescript-eslint/utils': 5.10.1_eslint@8.7.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.7.0 - tsutils: 3.21.0_typescript@4.5.4 - typescript: 4.5.4 + tsutils: 3.21.0_typescript@4.5.5 + typescript: 4.5.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.10.0: - resolution: {integrity: sha512-wUljCgkqHsMZbw60IbOqT/puLfyqqD5PquGiBo1u1IS3PLxdi3RDGlyf032IJyh+eQoGhz9kzhtZa+VC4eWTlQ==} + /@typescript-eslint/types/5.10.1: + resolution: {integrity: sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.10.0_typescript@4.5.4: - resolution: {integrity: sha512-x+7e5IqfwLwsxTdliHRtlIYkgdtYXzE0CkFeV6ytAqq431ZyxCFzNMNR5sr3WOlIG/ihVZr9K/y71VHTF/DUQA==} + /@typescript-eslint/typescript-estree/5.10.1_typescript@4.5.5: + resolution: {integrity: sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,28 +320,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.10.0 - '@typescript-eslint/visitor-keys': 5.10.0 + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/visitor-keys': 5.10.1 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.4 - typescript: 4.5.4 + tsutils: 3.21.0_typescript@4.5.5 + typescript: 4.5.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.10.0_eslint@8.7.0+typescript@4.5.4: - resolution: {integrity: sha512-IGYwlt1CVcFoE2ueW4/ioEwybR60RAdGeiJX/iDAw0t5w0wK3S7QncDwpmsM70nKgGTuVchEWB8lwZwHqPAWRg==} + /@typescript-eslint/utils/5.10.1_eslint@8.7.0+typescript@4.5.5: + resolution: {integrity: sha512-RRmlITiUbLuTRtn/gcPRi4202niF+q7ylFLCKu4c+O/PcpRvZ/nAUwQ2G00bZgpWkhrNLNnvhZLbDn8Ml0qsQw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.10.0 - '@typescript-eslint/types': 5.10.0 - '@typescript-eslint/typescript-estree': 5.10.0_typescript@4.5.4 + '@typescript-eslint/scope-manager': 5.10.1 + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.5.5 eslint: 8.7.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.7.0 @@ -350,11 +350,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.10.0: - resolution: {integrity: sha512-GMxj0K1uyrFLPKASLmZzCuSddmjZVbVj3Ouy5QVuIGKZopxvOr24JsS7gruz6C3GExE01mublZ3mIBOaon9zuQ==} + /@typescript-eslint/visitor-keys/5.10.1: + resolution: {integrity: sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.10.0 + '@typescript-eslint/types': 5.10.1 eslint-visitor-keys: 3.2.0 dev: true @@ -527,7 +527,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.6_typescript@4.5.4: + /check-dts/0.6.6_typescript@4.5.5: resolution: {integrity: sha512-2KzynoH1f8wVhZXUeqxeW2dOOFliktitYlyyOsLfZBk5K5n1U1B3uzJLFiJfwqlwoT1Ug7RNbi8xmMpUKKmwhg==} engines: {node: '>=12.16.0'} hasBin: true @@ -537,7 +537,7 @@ packages: fast-glob: 3.2.11 nanospinner: 0.6.0 picocolors: 1.0.0 - typescript: 4.5.4 + typescript: 4.5.5 vfile-location: 4.0.1 dev: true @@ -560,16 +560,14 @@ packages: resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==} dev: true - /clean-publish/3.4.5: - resolution: {integrity: sha512-wxtaEqCy/B7lch+bpTPmx9wI8owTODa619UOVA1XfyNaM2bjwv1SkR1IJNDA6rtf89bjiz6UkpfU5HcEL8YJIw==} - engines: {node: ^12.0.0 || ^14.0.0 || >= 16.0.0} + /clean-publish/4.0.0: + resolution: {integrity: sha512-PcOxJSnPgncx/ANmgPw8hj9DDtdLHTxIc6Vh/yXCX7IA9w1oUSx2POL0Vno/7omhyrKxMKTpnRh2wlzwH5zaCw==} hasBin: true dependencies: cross-spawn: 7.0.3 fast-glob: 3.2.11 - fs-extra: 10.0.0 - hosted-git-info: 4.1.0 lilconfig: 2.0.4 + micromatch: 4.0.4 dev: true /cli-cursor/3.1.0: @@ -747,173 +745,173 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.11: - resolution: {integrity: sha512-6iHjgvMnC/SzDH8TefL+/3lgCjYWwAd1LixYfmz/TBPbDQlxcuSkX0yiQgcJB9k+ibZ54yjVXziIwGdlc+6WNw==} + /esbuild-android-arm64/0.14.14: + resolution: {integrity: sha512-be/Uw6DdpQiPfula1J4bdmA+wtZ6T3BRCZsDMFB5X+k0Gp8TIh9UvmAcqvKNnbRAafSaXG3jPCeXxDKqnc8hFQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.11: - resolution: {integrity: sha512-olq84ikh6TiBcrs3FnM4eR5VPPlcJcdW8BnUz/lNoEWYifYQ+Po5DuYV1oz1CTFMw4k6bQIZl8T3yxL+ZT2uvQ==} + /esbuild-darwin-64/0.14.14: + resolution: {integrity: sha512-BEexYmjWafcISK8cT6O98E3TfcLuZL8DKuubry6G54n2+bD4GkoRD6HYUOnCkfl2p7jodA+s4369IjSFSWjtHg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.11: - resolution: {integrity: sha512-Jj0ieWLREPBYr/TZJrb2GFH8PVzDqiQWavo1pOFFShrcmHWDBDrlDxPzEZ67NF/Un3t6sNNmeI1TUS/fe1xARg==} + /esbuild-darwin-arm64/0.14.14: + resolution: {integrity: sha512-tnBKm41pDOB1GtZ8q/w26gZlLLRzVmP8fdsduYjvM+yFD7E2DLG4KbPAqFMWm4Md9B+DitBglP57FY7AznxbTg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.11: - resolution: {integrity: sha512-C5sT3/XIztxxz/zwDjPRHyzj/NJFOnakAanXuyfLDwhwupKPd76/PPHHyJx6Po6NI6PomgVp/zi6GRB8PfrOTA==} + /esbuild-freebsd-64/0.14.14: + resolution: {integrity: sha512-Q9Rx6sgArOHalQtNwAaIzJ6dnQ8A+I7f/RsQsdkS3JrdzmnlFo8JEVofTmwVQLoIop7OKUqIVOGP4PoQcwfVMA==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.11: - resolution: {integrity: sha512-y3Llu4wbs0bk4cwjsdAtVOesXb6JkdfZDLKMt+v1U3tOEPBdSu6w8796VTksJgPfqvpX22JmPLClls0h5p+L9w==} + /esbuild-freebsd-arm64/0.14.14: + resolution: {integrity: sha512-TJvq0OpLM7BkTczlyPIphcvnwrQwQDG1HqxzoYePWn26SMUAlt6wrLnEvxdbXAvNvDLVzG83kA+JimjK7aRNBA==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.11: - resolution: {integrity: sha512-Cg3nVsxArjyLke9EuwictFF3Sva+UlDTwHIuIyx8qpxRYAOUTmxr2LzYrhHyTcGOleLGXUXYsnUVwKqnKAgkcg==} + /esbuild-linux-32/0.14.14: + resolution: {integrity: sha512-h/CrK9Baimt5VRbu8gqibWV7e1P9l+mkanQgyOgv0Ng3jHT1NVFC9e6rb1zbDdaJVmuhWX5xVliUA5bDDCcJeg==} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.11: - resolution: {integrity: sha512-oeR6dIrrojr8DKVrxtH3xl4eencmjsgI6kPkDCRIIFwv4p+K7ySviM85K66BN01oLjzthpUMvBVfWSJkBLeRbg==} + /esbuild-linux-64/0.14.14: + resolution: {integrity: sha512-IC+wAiIg/egp5OhQp4W44D9PcBOH1b621iRn1OXmlLzij9a/6BGr9NMIL4CRwz4j2kp3WNZu5sT473tYdynOuQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.11: - resolution: {integrity: sha512-vcwskfD9g0tojux/ZaTJptJQU3a7YgTYsptK1y6LQ/rJmw7U5QJvboNawqM98Ca3ToYEucfCRGbl66OTNtp6KQ==} + /esbuild-linux-arm/0.14.14: + resolution: {integrity: sha512-gxpOaHOPwp7zSmcKYsHrtxabScMqaTzfSQioAMUaB047YiMuDBzqVcKBG8OuESrYkGrL9DDljXr/mQNg7pbdaQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.11: - resolution: {integrity: sha512-+e6ZCgTFQYZlmg2OqLkg1jHLYtkNDksxWDBWNtI4XG4WxuOCUErLqfEt9qWjvzK3XBcCzHImrajkUjO+rRkbMg==} + /esbuild-linux-arm64/0.14.14: + resolution: {integrity: sha512-6QVul3RI4M5/VxVIRF/I5F+7BaxzR3DfNGoqEVSCZqUbgzHExPn+LXr5ly1C7af2Kw4AHpo+wDqx8A4ziP9avw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.11: - resolution: {integrity: sha512-Rrs99L+p54vepmXIb87xTG6ukrQv+CzrM8eoeR+r/OFL2Rg8RlyEtCeshXJ2+Q66MXZOgPJaokXJZb9snq28bw==} + /esbuild-linux-mips64le/0.14.14: + resolution: {integrity: sha512-4Jl5/+xoINKbA4cesH3f4R+q0vltAztZ6Jm8YycS8lNhN1pgZJBDxWfI6HUMIAdkKlIpR1PIkA9aXQgZ8sxFAg==} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.11: - resolution: {integrity: sha512-JyzziGAI0D30Vyzt0HDihp4s1IUtJ3ssV2zx9O/c+U/dhUHVP2TmlYjzCfCr2Q6mwXTeloDcLS4qkyvJtYptdQ==} + /esbuild-linux-ppc64le/0.14.14: + resolution: {integrity: sha512-BitW37GxeebKxqYNl4SVuSdnIJAzH830Lr6Mkq3pBHXtzQay0vK+IeOR/Ele1GtNVJ+/f8wYM53tcThkv5SC5w==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.11: - resolution: {integrity: sha512-DoThrkzunZ1nfRGoDN6REwmo8ZZWHd2ztniPVIR5RMw/Il9wiWEYBahb8jnMzQaSOxBsGp0PbyJeVLTUatnlcw==} + /esbuild-linux-s390x/0.14.14: + resolution: {integrity: sha512-vLj6p76HOZG3wfuTr5MyO3qW5iu8YdhUNxuY+tx846rPo7GcKtYSPMusQjeVEfZlJpSYoR+yrNBBxq+qVF9zrw==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.11: - resolution: {integrity: sha512-12luoRQz+6eihKYh1zjrw0CBa2aw3twIiHV/FAfjh2NEBDgJQOY4WCEUEN+Rgon7xmLh4XUxCQjnwrvf8zhACw==} + /esbuild-netbsd-64/0.14.14: + resolution: {integrity: sha512-fn8looXPQhpVqUyCBWUuPjesH+yGIyfbIQrLKG05rr1Kgm3rZD/gaYrd3Wpmf5syVZx70pKZPvdHp8OTA+y7cQ==} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.11: - resolution: {integrity: sha512-l18TZDjmvwW6cDeR4fmizNoxndyDHamGOOAenwI4SOJbzlJmwfr0jUgjbaXCUuYVOA964siw+Ix+A+bhALWg8Q==} + /esbuild-openbsd-64/0.14.14: + resolution: {integrity: sha512-HdAnJ399pPff3SKbd8g+P4o5znseni5u5n5rJ6Z7ouqOdgbOwHe2ofZbMow17WMdNtz1IyOZk2Wo9Ve6/lZ4Rg==} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.11: - resolution: {integrity: sha512-bmYzDtwASBB8c+0/HVOAiE9diR7+8zLm/i3kEojUH2z0aIs6x/S4KiTuT5/0VKJ4zk69kXel1cNWlHBMkmavQg==} + /esbuild-sunos-64/0.14.14: + resolution: {integrity: sha512-bmDHa99ulsGnYlh/xjBEfxoGuC8CEG5OWvlgD+pF7bKKiVTbtxqVCvOGEZeoDXB+ja6AvHIbPxrEE32J+m5nqQ==} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.11: - resolution: {integrity: sha512-J1Ys5hMid8QgdY00OBvIolXgCQn1ARhYtxPnG6ESWNTty3ashtc4+As5nTrsErnv8ZGUcWZe4WzTP/DmEVX1UQ==} + /esbuild-windows-32/0.14.14: + resolution: {integrity: sha512-6tVooQcxJCNenPp5GHZBs/RLu31q4B+BuF4MEoRxswT+Eq2JGF0ZWDRQwNKB8QVIo3t6Svc5wNGez+CwKNQjBg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.11: - resolution: {integrity: sha512-h9FmMskMuGeN/9G9+LlHPAoiQk9jlKDUn9yA0MpiGzwLa82E7r1b1u+h2a+InprbSnSLxDq/7p5YGtYVO85Mlg==} + /esbuild-windows-64/0.14.14: + resolution: {integrity: sha512-kl3BdPXh0/RD/dad41dtzj2itMUR4C6nQbXQCyYHHo4zoUoeIXhpCrSl7BAW1nv5EFL8stT1V+TQVXGZca5A2A==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.11: - resolution: {integrity: sha512-dZp7Krv13KpwKklt9/1vBFBMqxEQIO6ri7Azf8C+ob4zOegpJmha2XY9VVWP/OyQ0OWk6cEeIzMJwInRZrzBUQ==} + /esbuild-windows-arm64/0.14.14: + resolution: {integrity: sha512-dCm1wTOm6HIisLanmybvRKvaXZZo4yEVrHh1dY0v582GThXJOzuXGja1HIQgV09RpSHYRL3m4KoUBL00l6SWEg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.11: - resolution: {integrity: sha512-xZvPtVj6yecnDeFb3KjjCM6i7B5TCAQZT77kkW/CpXTMnd6VLnRPKrUB1XHI1pSq6a4Zcy3BGueQ8VljqjDGCg==} + /esbuild/0.14.14: + resolution: {integrity: sha512-aiK4ddv+uui0k52OqSHu4xxu+SzOim7Rlz4i25pMEiC8rlnGU0HJ9r+ZMfdWL5bzifg+nhnn7x4NSWTeehYblg==} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.11 - esbuild-darwin-64: 0.14.11 - esbuild-darwin-arm64: 0.14.11 - esbuild-freebsd-64: 0.14.11 - esbuild-freebsd-arm64: 0.14.11 - esbuild-linux-32: 0.14.11 - esbuild-linux-64: 0.14.11 - esbuild-linux-arm: 0.14.11 - esbuild-linux-arm64: 0.14.11 - esbuild-linux-mips64le: 0.14.11 - esbuild-linux-ppc64le: 0.14.11 - esbuild-linux-s390x: 0.14.11 - esbuild-netbsd-64: 0.14.11 - esbuild-openbsd-64: 0.14.11 - esbuild-sunos-64: 0.14.11 - esbuild-windows-32: 0.14.11 - esbuild-windows-64: 0.14.11 - esbuild-windows-arm64: 0.14.11 + esbuild-android-arm64: 0.14.14 + esbuild-darwin-64: 0.14.14 + esbuild-darwin-arm64: 0.14.14 + esbuild-freebsd-64: 0.14.14 + esbuild-freebsd-arm64: 0.14.14 + esbuild-linux-32: 0.14.14 + esbuild-linux-64: 0.14.14 + esbuild-linux-arm: 0.14.14 + esbuild-linux-arm64: 0.14.14 + esbuild-linux-mips64le: 0.14.14 + esbuild-linux-ppc64le: 0.14.14 + esbuild-linux-s390x: 0.14.14 + esbuild-netbsd-64: 0.14.14 + esbuild-openbsd-64: 0.14.14 + esbuild-sunos-64: 0.14.14 + esbuild-windows-32: 0.14.14 + esbuild-windows-64: 0.14.14 + esbuild-windows-arm64: 0.14.14 dev: true /escalade/3.1.1: @@ -949,7 +947,7 @@ packages: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: debug: 3.2.7 - resolve: 1.21.0 + resolve: 1.22.0 dev: true /eslint-module-utils/2.7.2: @@ -989,7 +987,7 @@ packages: is-glob: 4.0.3 minimatch: 3.0.4 object.values: 1.1.5 - resolve: 1.21.0 + resolve: 1.22.0 tsconfig-paths: 3.12.0 dev: true @@ -1004,7 +1002,7 @@ packages: eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.0.4 - resolve: 1.21.0 + resolve: 1.22.0 semver: 6.3.0 dev: true @@ -1078,7 +1076,7 @@ packages: hasBin: true dependencies: '@eslint/eslintrc': 1.0.5 - '@humanwhocodes/config-array': 0.9.2 + '@humanwhocodes/config-array': 0.9.3 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1216,12 +1214,12 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.4 + flatted: 3.2.5 rimraf: 3.0.2 dev: true - /flatted/3.2.4: - resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==} + /flatted/3.2.5: + resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true /foreground-child/2.0.0: @@ -1363,13 +1361,6 @@ packages: function-bind: 1.1.1 dev: true - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -1896,8 +1887,8 @@ packages: engines: {node: '>=4'} dev: true - /resolve/1.21.0: - resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} + /resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: is-core-module: 2.8.1 @@ -2005,8 +1996,8 @@ packages: engines: {node: '>=8'} dev: true - /source-map-js/1.0.1: - resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==} + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} dev: false @@ -2114,7 +2105,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.4.0_58ff8c2ecf784f4683a8548a58a2b611: + /ts-node/10.4.0_a4f631dedb43a025ec8d07f05ba12686: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2133,14 +2124,14 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.9 + '@types/node': 17.0.12 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.5.4 + typescript: 4.5.5 yn: 3.1.1 dev: true @@ -2157,14 +2148,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.5.4: + /tsutils/3.21.0_typescript@4.5.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.5.4 + typescript: 4.5.5 dev: true /type-check/0.4.0: @@ -2179,8 +2170,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.5.4: - resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==} + /typescript/4.5.5: + resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} engines: {node: '>=4.2.0'} hasBin: true dev: true From 700c84975f4a393c096a9a5cda251de872335079 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 27 Jan 2022 17:34:10 +0100 Subject: [PATCH 2478/3047] Fix coverage reporter --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index e06a5b64d..0189a43af 100755 --- a/package.json +++ b/package.json @@ -107,6 +107,7 @@ "lib/map-generator.js" ], "lines": 100, + "reporter": "lcov", "check-coverage": true }, "simple-git-hooks": { From 2035231c41590e69ffe00dd629fbc62995881c72 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 31 Jan 2022 00:43:45 +0100 Subject: [PATCH 2479/3047] Throws error on NoWorkResult.root access --- lib/no-work-result.js | 9 ++++++--- test/lazy-result.test.ts | 4 ++-- test/no-work-result.test.ts | 12 +++--------- test/processor.test.ts | 10 +++++++++- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/no-work-result.js b/lib/no-work-result.js index 3dacb3a3c..8bab6f5a4 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -78,9 +78,12 @@ class NoWorkResult { this.error = error } - this._root = root - - return root + if (this.error) { + throw this.error + } else { + this._root = root + return root + } } get messages() { diff --git a/test/lazy-result.test.ts b/test/lazy-result.test.ts index 588cc3583..c3a5e7281 100755 --- a/test/lazy-result.test.ts +++ b/test/lazy-result.test.ts @@ -1,6 +1,6 @@ -import mozilla from 'source-map-js' -import { test } from 'uvu' import { is, equal, type } from 'uvu/assert' +import { test } from 'uvu' +import mozilla from 'source-map-js' import LazyResult from '../lib/lazy-result.js' import Processor from '../lib/processor.js' diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index bbb85a8cc..bffcda294 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -3,7 +3,6 @@ import { test } from 'uvu' import mozilla from 'source-map-js' import { spy } from 'nanospy' -import { CssSyntaxError } from '../lib/postcss.js' import NoWorkResult from '../lib/no-work-result.js' import Processor from '../lib/processor.js' @@ -29,7 +28,9 @@ test('has sync() method', () => { test('throws error on sync()', () => { let noWorkResult = new NoWorkResult(processor, 'a {', { from: '/a.css' }) - noWorkResult.root + try { + noWorkResult.root + } catch {} throws(() => noWorkResult.sync(), 'AAA') }) @@ -43,13 +44,6 @@ test('returns cached root on second access', async () => { not.throws(() => result.sync()) }) -test('contains css syntax errors', () => { - let result = new NoWorkResult(processor, 'a {', { from: '/a.css' }) - result.root - // @ts-expect-error - instance(result.error, CssSyntaxError) -}) - test('contains css', () => { let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) is(result.css, 'a {}') diff --git a/test/processor.test.ts b/test/processor.test.ts index 767e33e7c..23234ac38 100755 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -536,7 +536,9 @@ test('without plugins parses CSS only on root access', async () => { test('catches error with empty processor', async () => { let noWorkResult = new Processor().process('a {') - noWorkResult.root + try { + noWorkResult.root + } catch {} let err = await catchError(async () => await noWorkResult) @@ -547,6 +549,12 @@ test('catches error with empty processor', async () => { instance(err, CssSyntaxError) }) +test('throws an error on root access on no plugins mode', () => { + throws(() => { + postcss().process('// invalid', { from: 'a' }).root + }, 'Unknown word') +}) + test('supports plugins returning processors', () => { let warn = spyOn(console, 'warn', () => {}) let a = (): void => {} From 989361ea4eaa68a54336e6258c65bcaae759f910 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 31 Jan 2022 01:07:53 +0100 Subject: [PATCH 2480/3047] Update dependencies --- package.json | 4 +- pnpm-lock.yaml | 116 ++++++++++++++++++++++++------------------------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/package.json b/package.json index 0189a43af..8a7a63c68 100755 --- a/package.json +++ b/package.json @@ -77,14 +77,14 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.12", + "@types/node": "^17.0.13", "@typescript-eslint/eslint-plugin": "^5.10.1", "@typescript-eslint/parser": "^5.10.1", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.7.0", + "eslint": "^8.8.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40c1ddb77..ee2b41e0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,14 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.12 + '@types/node': ^17.0.13 '@typescript-eslint/eslint-plugin': ^5.10.1 '@typescript-eslint/parser': ^5.10.1 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.7.0 + eslint: ^8.8.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.1_1939207b661bc1aefcd22fa1c63831b1 + '@logux/eslint-config': 46.1.1_78f08d0053c073645909d39bd7f54d5e '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.12 - '@typescript-eslint/eslint-plugin': 5.10.1_0f442f6b60390429061d5d9b6bcaaba6 - '@typescript-eslint/parser': 5.10.1_eslint@8.7.0+typescript@4.5.5 + '@types/node': 17.0.13 + '@typescript-eslint/eslint-plugin': 5.10.1_5bb2413551d07429e4087fb9ca3ae3ea + '@typescript-eslint/parser': 5.10.1_eslint@8.8.0+typescript@4.5.5 c8: 7.11.0 check-dts: 0.6.6_typescript@4.5.5 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.7.0 - eslint-config-standard: 16.0.3_40550cad9de7815574d4dc194ce0e930 - eslint-plugin-import: 2.25.4_eslint@8.7.0 - eslint-plugin-node: 11.1.0_eslint@8.7.0 + eslint: 8.8.0 + eslint-config-standard: 16.0.3_3fa03ca42f6626059a4867a76f65b153 + eslint-plugin-import: 2.25.4_eslint@8.8.0 + eslint-plugin-node: 11.1.0_eslint@8.8.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.7.0 + eslint-plugin-promise: 6.0.0_eslint@8.8.0 fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 - ts-node: 10.4.0_a4f631dedb43a025ec8d07f05ba12686 + ts-node: 10.4.0_40146b36d18138e3202fbb722e5f65e4 typescript: 4.5.5 uvu: 0.5.3 @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_1939207b661bc1aefcd22fa1c63831b1: + /@logux/eslint-config/46.1.1_78f08d0053c073645909d39bd7f54d5e: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.7.0 - eslint-config-standard: 16.0.3_40550cad9de7815574d4dc194ce0e930 - eslint-plugin-import: 2.25.4_eslint@8.7.0 - eslint-plugin-node: 11.1.0_eslint@8.7.0 + eslint: 8.8.0 + eslint-config-standard: 16.0.3_3fa03ca42f6626059a4867a76f65b153 + eslint-plugin-import: 2.25.4_eslint@8.8.0 + eslint-plugin-node: 11.1.0_eslint@8.8.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.7.0 + eslint-plugin-promise: 6.0.0_eslint@8.8.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.12 + '@types/node': 17.0.13 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,15 +224,15 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.12: - resolution: {integrity: sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==} + /@types/node/17.0.13: + resolution: {integrity: sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.10.1_0f442f6b60390429061d5d9b6bcaaba6: + /@typescript-eslint/eslint-plugin/5.10.1_5bb2413551d07429e4087fb9ca3ae3ea: resolution: {integrity: sha512-xN3CYqFlyE/qOcy978/L0xLR2HlcAGIyIK5sMOasxaaAPfQRj/MmMV6OC3I7NZO84oEUdWCOju34Z9W8E0pFDQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -243,12 +243,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.10.1_eslint@8.7.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.10.1_eslint@8.8.0+typescript@4.5.5 '@typescript-eslint/scope-manager': 5.10.1 - '@typescript-eslint/type-utils': 5.10.1_eslint@8.7.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.10.1_eslint@8.7.0+typescript@4.5.5 + '@typescript-eslint/type-utils': 5.10.1_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.10.1_eslint@8.8.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.7.0 + eslint: 8.8.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -259,7 +259,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.10.1_eslint@8.7.0+typescript@4.5.5: + /@typescript-eslint/parser/5.10.1_eslint@8.8.0+typescript@4.5.5: resolution: {integrity: sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -273,7 +273,7 @@ packages: '@typescript-eslint/types': 5.10.1 '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.5.5 debug: 4.3.3 - eslint: 8.7.0 + eslint: 8.8.0 typescript: 4.5.5 transitivePeerDependencies: - supports-color @@ -287,7 +287,7 @@ packages: '@typescript-eslint/visitor-keys': 5.10.1 dev: true - /@typescript-eslint/type-utils/5.10.1_eslint@8.7.0+typescript@4.5.5: + /@typescript-eslint/type-utils/5.10.1_eslint@8.8.0+typescript@4.5.5: resolution: {integrity: sha512-AfVJkV8uck/UIoDqhu+ptEdBoQATON9GXnhOpPLzkQRJcSChkvD//qsz9JVffl2goxX+ybs5klvacE9vmrQyCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -297,9 +297,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.10.1_eslint@8.7.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.10.1_eslint@8.8.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.7.0 + eslint: 8.8.0 tsutils: 3.21.0_typescript@4.5.5 typescript: 4.5.5 transitivePeerDependencies: @@ -332,7 +332,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.10.1_eslint@8.7.0+typescript@4.5.5: + /@typescript-eslint/utils/5.10.1_eslint@8.8.0+typescript@4.5.5: resolution: {integrity: sha512-RRmlITiUbLuTRtn/gcPRi4202niF+q7ylFLCKu4c+O/PcpRvZ/nAUwQ2G00bZgpWkhrNLNnvhZLbDn8Ml0qsQw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -342,9 +342,9 @@ packages: '@typescript-eslint/scope-manager': 5.10.1 '@typescript-eslint/types': 5.10.1 '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.5.5 - eslint: 8.7.0 + eslint: 8.8.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.7.0 + eslint-utils: 3.0.0_eslint@8.8.0 transitivePeerDependencies: - supports-color - typescript @@ -929,7 +929,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_40550cad9de7815574d4dc194ce0e930: + /eslint-config-standard/16.0.3_3fa03ca42f6626059a4867a76f65b153: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -937,10 +937,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.7.0 - eslint-plugin-import: 2.25.4_eslint@8.7.0 - eslint-plugin-node: 11.1.0_eslint@8.7.0 - eslint-plugin-promise: 6.0.0_eslint@8.7.0 + eslint: 8.8.0 + eslint-plugin-import: 2.25.4_eslint@8.8.0 + eslint-plugin-node: 11.1.0_eslint@8.8.0 + eslint-plugin-promise: 6.0.0_eslint@8.8.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -950,26 +950,26 @@ packages: resolve: 1.22.0 dev: true - /eslint-module-utils/2.7.2: - resolution: {integrity: sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==} + /eslint-module-utils/2.7.3: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} dependencies: debug: 3.2.7 find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.7.0: + /eslint-plugin-es/3.0.1_eslint@8.8.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.7.0 + eslint: 8.8.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.7.0: + /eslint-plugin-import/2.25.4_eslint@8.8.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -979,9 +979,9 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.7.0 + eslint: 8.8.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.2 + eslint-module-utils: 2.7.3 has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 @@ -991,14 +991,14 @@ packages: tsconfig-paths: 3.12.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.7.0: + /eslint-plugin-node/11.1.0_eslint@8.8.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.7.0 - eslint-plugin-es: 3.0.1_eslint@8.7.0 + eslint: 8.8.0 + eslint-plugin-es: 3.0.1_eslint@8.8.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.0.4 @@ -1013,13 +1013,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.7.0: + /eslint-plugin-promise/6.0.0_eslint@8.8.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.7.0 + eslint: 8.8.0 dev: true /eslint-scope/5.1.1: @@ -1045,13 +1045,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.7.0: + /eslint-utils/3.0.0_eslint@8.8.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.7.0 + eslint: 8.8.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1070,8 +1070,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.7.0: - resolution: {integrity: sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==} + /eslint/8.8.0: + resolution: {integrity: sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1084,7 +1084,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.7.0 + eslint-utils: 3.0.0_eslint@8.8.0 eslint-visitor-keys: 3.2.0 espree: 9.3.0 esquery: 1.4.0 @@ -2105,7 +2105,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.4.0_a4f631dedb43a025ec8d07f05ba12686: + /ts-node/10.4.0_40146b36d18138e3202fbb722e5f65e4: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2124,7 +2124,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.12 + '@types/node': 17.0.13 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 From 4f5346e05b46647d61f2312868da23dbe5c9f458 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 31 Jan 2022 23:33:24 +0100 Subject: [PATCH 2481/3047] Clean up code --- test/parse.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/parse.test.ts b/test/parse.test.ts index c6f5328ac..7513ebf26 100755 --- a/test/parse.test.ts +++ b/test/parse.test.ts @@ -1,8 +1,8 @@ +import { equal, is, match, not, throws } from 'uvu/assert' import { testPath, jsonify, eachTest } from 'postcss-parser-tests' import { readFileSync } from 'fs' import { resolve } from 'path' import { test } from 'uvu' -import { equal, is, match, not, throws } from 'uvu/assert' import { Declaration, AtRule, parse, Root, Rule } from '../lib/postcss.js' @@ -21,15 +21,15 @@ eachTest((name, css, json) => { test('parses UTF-8 BOM', () => { let css = parse('\uFEFF@host { a {\f} }') - is(css.nodes[0].raws.before, '') + equal(css.nodes[0].raws.before, '') }) -test('should has true at `hasBOM` property', () => { +test('should has true at hasBOM property', () => { let css = parse('\uFEFF@host { a {\f} }') is(css.first?.source?.input.hasBOM, true) }) -test('should has false at `hasBOM` property', () => { +test('should has false at hasBOM property', () => { let css = parse('@host { a {\f} }') is(css.first?.source?.input.hasBOM, false) }) From dc4187de575f476398fe9b5b5ede6ccc0e4c4f27 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 31 Jan 2022 23:33:40 +0100 Subject: [PATCH 2482/3047] Fix changing declaration meaning by comment removing --- lib/parser.js | 20 ++++---------------- package.json | 2 +- pnpm-lock.yaml | 20 +++++++++++--------- 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index eb8fc41c6..73a398abf 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -401,32 +401,20 @@ class Parser { let value = '' let clean = true let next, prev - let pattern = /^([#.|])?(\w)+/i for (let i = 0; i < length; i += 1) { token = tokens[i] type = token[0] - - if (type === 'comment' && node.type === 'rule') { + if (type === 'space' && i === length - 1) { + clean = false + } else if (type === 'comment') { prev = tokens[i - 1] next = tokens[i + 1] - - if ( - prev[0] !== 'space' && - next[0] !== 'space' && - pattern.test(prev[1]) && - pattern.test(next[1]) - ) { + if (prev && next && prev[0] !== 'space' && next[0] !== 'space') { value += token[1] } else { clean = false } - - continue - } - - if (type === 'comment' || (type === 'space' && i === length - 1)) { - clean = false } else { value += token[1] } diff --git a/package.json b/package.json index 8a7a63c68..0a6fa0061 100755 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "nanospy": "^0.4.0", - "postcss-parser-tests": "^8.3.7", + "postcss-parser-tests": "postcss/postcss-parser-tests", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.5", "strip-ansi": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee2b41e0c..1ecda2122 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ specifiers: nanoid: ^3.2.0 nanospy: ^0.4.0 picocolors: ^1.0.0 - postcss-parser-tests: ^8.3.7 + postcss-parser-tests: postcss/postcss-parser-tests simple-git-hooks: ^2.7.0 size-limit: ^7.0.5 source-map-js: ^1.0.2 @@ -56,7 +56,7 @@ devDependencies: fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 - postcss-parser-tests: 8.3.7 + postcss-parser-tests: github.com/postcss/postcss-parser-tests/657dce203667e6be1effcbfa776b5efc709660af simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 @@ -1839,13 +1839,6 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss-parser-tests/8.3.7: - resolution: {integrity: sha512-Y7AKzPFgxJb3ayi2/YT2hyAPdLsQ9pj3G4Il4Y6P/pPonISoSpkKFTgJOqL6bqjGfNep/zvUnfW9KoMGwxFc+Q==} - dependencies: - picocolors: 1.0.0 - spinnies: 0.5.1 - dev: true - /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2321,3 +2314,12 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + github.com/postcss/postcss-parser-tests/657dce203667e6be1effcbfa776b5efc709660af: + resolution: {tarball: https://codeload.github.com/postcss/postcss-parser-tests/tar.gz/657dce203667e6be1effcbfa776b5efc709660af} + name: postcss-parser-tests + version: 8.3.7 + dependencies: + picocolors: 1.0.0 + spinnies: 0.5.1 + dev: true From 373b6c51fc23e7214d92844ec2a42fa11dcab0e4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Feb 2022 00:03:44 +0100 Subject: [PATCH 2483/3047] Fix GitHub version in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0a6fa0061..9bff2ee06 100755 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "nanospy": "^0.4.0", - "postcss-parser-tests": "postcss/postcss-parser-tests", + "postcss-parser-tests": "github:postcss/postcss-parser-tests", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.5", "strip-ansi": "^6.0.1", From be42a7c250947165a9d0127cd1a06d8c01550e3f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Feb 2022 00:03:54 +0100 Subject: [PATCH 2484/3047] Fix empty custom property parsing --- lib/parser.js | 32 +++++++++++++++++++++----------- pnpm-lock.yaml | 8 ++++---- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 73a398abf..a9f8dad40 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -139,10 +139,12 @@ class Parser { if (brackets.length > 0) this.unclosedBracket(bracket) if (end && colon) { - while (tokens.length) { - token = tokens[tokens.length - 1][0] - if (token !== 'space' && token !== 'comment') break - this.tokenizer.back(tokens.pop()) + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0] + if (token !== 'space' && token !== 'comment') break + this.tokenizer.back(tokens.pop()) + } } this.decl(tokens, customProperty) } else { @@ -208,7 +210,15 @@ class Parser { node.raws.before += node.prop[0] node.prop = node.prop.slice(1) } - let firstSpaces = this.spacesAndCommentsFromStart(tokens) + + let firstSpaces = [] + let next + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + firstSpaces.push(tokens.shift()) + } + this.precheckMissedSemicolon(tokens) for (let i = tokens.length - 1; i >= 0; i--) { @@ -242,12 +252,12 @@ class Parser { } let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment') - this.raw(node, 'value', tokens) + if (hasWord) { - node.raws.between += firstSpaces - } else { - node.value = firstSpaces + node.value + node.raws.between += firstSpaces.map(i => i[1]).join('') + firstSpaces = [] } + this.raw(node, 'value', firstSpaces.concat(tokens), customProperty) if (node.value.includes(':') && !customProperty) { this.checkMissedSemicolon(tokens) @@ -395,7 +405,7 @@ class Parser { if (node.type !== 'comment') this.semicolon = false } - raw(node, prop, tokens) { + raw(node, prop, tokens, customProperty) { let token, type let length = tokens.length let value = '' @@ -405,7 +415,7 @@ class Parser { for (let i = 0; i < length; i += 1) { token = tokens[i] type = token[0] - if (type === 'space' && i === length - 1) { + if (type === 'space' && i === length - 1 && !customProperty) { clean = false } else if (type === 'comment') { prev = tokens[i - 1] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ecda2122..4d87d2672 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ specifiers: nanoid: ^3.2.0 nanospy: ^0.4.0 picocolors: ^1.0.0 - postcss-parser-tests: postcss/postcss-parser-tests + postcss-parser-tests: github:postcss/postcss-parser-tests simple-git-hooks: ^2.7.0 size-limit: ^7.0.5 source-map-js: ^1.0.2 @@ -56,7 +56,7 @@ devDependencies: fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 - postcss-parser-tests: github.com/postcss/postcss-parser-tests/657dce203667e6be1effcbfa776b5efc709660af + postcss-parser-tests: github.com/postcss/postcss-parser-tests/d4ba86c442a321f39bab897e0e047038527633d3 simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 @@ -2315,8 +2315,8 @@ packages: engines: {node: '>=10'} dev: true - github.com/postcss/postcss-parser-tests/657dce203667e6be1effcbfa776b5efc709660af: - resolution: {tarball: https://codeload.github.com/postcss/postcss-parser-tests/tar.gz/657dce203667e6be1effcbfa776b5efc709660af} + github.com/postcss/postcss-parser-tests/d4ba86c442a321f39bab897e0e047038527633d3: + resolution: {tarball: https://codeload.github.com/postcss/postcss-parser-tests/tar.gz/d4ba86c442a321f39bab897e0e047038527633d3} name: postcss-parser-tests version: 8.3.7 dependencies: From 8206d3ebc645b9e1b2436b1d77e76b57a87c3fe9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Feb 2022 00:10:23 +0100 Subject: [PATCH 2485/3047] Update dependencies --- package.json | 4 +-- pnpm-lock.yaml | 72 +++++++++++++++++++++++++------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 9bff2ee06..4d2fa70e3 100755 --- a/package.json +++ b/package.json @@ -78,8 +78,8 @@ "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", "@types/node": "^17.0.13", - "@typescript-eslint/eslint-plugin": "^5.10.1", - "@typescript-eslint/parser": "^5.10.1", + "@typescript-eslint/eslint-plugin": "^5.10.2", + "@typescript-eslint/parser": "^5.10.2", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d87d2672..a8073cf75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,8 +5,8 @@ specifiers: '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 '@types/node': ^17.0.13 - '@typescript-eslint/eslint-plugin': ^5.10.1 - '@typescript-eslint/parser': ^5.10.1 + '@typescript-eslint/eslint-plugin': ^5.10.2 + '@typescript-eslint/parser': ^5.10.2 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 @@ -41,8 +41,8 @@ devDependencies: '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 '@types/node': 17.0.13 - '@typescript-eslint/eslint-plugin': 5.10.1_5bb2413551d07429e4087fb9ca3ae3ea - '@typescript-eslint/parser': 5.10.1_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/eslint-plugin': 5.10.2_2595c2126aec4d4b6e944b931dabb4c2 + '@typescript-eslint/parser': 5.10.2_eslint@8.8.0+typescript@4.5.5 c8: 7.11.0 check-dts: 0.6.6_typescript@4.5.5 clean-publish: 4.0.0 @@ -232,8 +232,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.10.1_5bb2413551d07429e4087fb9ca3ae3ea: - resolution: {integrity: sha512-xN3CYqFlyE/qOcy978/L0xLR2HlcAGIyIK5sMOasxaaAPfQRj/MmMV6OC3I7NZO84oEUdWCOju34Z9W8E0pFDQ==} + /@typescript-eslint/eslint-plugin/5.10.2_2595c2126aec4d4b6e944b931dabb4c2: + resolution: {integrity: sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,10 +243,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.10.1_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/scope-manager': 5.10.1 - '@typescript-eslint/type-utils': 5.10.1_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.10.1_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.10.2_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.10.2 + '@typescript-eslint/type-utils': 5.10.2_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.10.2_eslint@8.8.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.8.0 functional-red-black-tree: 1.0.1 @@ -259,8 +259,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.10.1_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==} + /@typescript-eslint/parser/5.10.2_eslint@8.8.0+typescript@4.5.5: + resolution: {integrity: sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,9 +269,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.10.1 - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.10.2 + '@typescript-eslint/types': 5.10.2 + '@typescript-eslint/typescript-estree': 5.10.2_typescript@4.5.5 debug: 4.3.3 eslint: 8.8.0 typescript: 4.5.5 @@ -279,16 +279,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.10.1: - resolution: {integrity: sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==} + /@typescript-eslint/scope-manager/5.10.2: + resolution: {integrity: sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/visitor-keys': 5.10.1 + '@typescript-eslint/types': 5.10.2 + '@typescript-eslint/visitor-keys': 5.10.2 dev: true - /@typescript-eslint/type-utils/5.10.1_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-AfVJkV8uck/UIoDqhu+ptEdBoQATON9GXnhOpPLzkQRJcSChkvD//qsz9JVffl2goxX+ybs5klvacE9vmrQyCw==} + /@typescript-eslint/type-utils/5.10.2_eslint@8.8.0+typescript@4.5.5: + resolution: {integrity: sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,7 +297,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.10.1_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.10.2_eslint@8.8.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.8.0 tsutils: 3.21.0_typescript@4.5.5 @@ -306,13 +306,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.10.1: - resolution: {integrity: sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==} + /@typescript-eslint/types/5.10.2: + resolution: {integrity: sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.10.1_typescript@4.5.5: - resolution: {integrity: sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==} + /@typescript-eslint/typescript-estree/5.10.2_typescript@4.5.5: + resolution: {integrity: sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,8 +320,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/visitor-keys': 5.10.1 + '@typescript-eslint/types': 5.10.2 + '@typescript-eslint/visitor-keys': 5.10.2 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -332,16 +332,16 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.10.1_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-RRmlITiUbLuTRtn/gcPRi4202niF+q7ylFLCKu4c+O/PcpRvZ/nAUwQ2G00bZgpWkhrNLNnvhZLbDn8Ml0qsQw==} + /@typescript-eslint/utils/5.10.2_eslint@8.8.0+typescript@4.5.5: + resolution: {integrity: sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.10.1 - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.10.2 + '@typescript-eslint/types': 5.10.2 + '@typescript-eslint/typescript-estree': 5.10.2_typescript@4.5.5 eslint: 8.8.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.8.0 @@ -350,11 +350,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.10.1: - resolution: {integrity: sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==} + /@typescript-eslint/visitor-keys/5.10.2: + resolution: {integrity: sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/types': 5.10.2 eslint-visitor-keys: 3.2.0 dev: true From b5d9bc060c0d455dd5b2ff4cc94c02a404d681fd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Feb 2022 12:21:01 +0100 Subject: [PATCH 2486/3047] Move to released version of postcss-parser-tests --- package.json | 2 +- pnpm-lock.yaml | 109 ++++--------------------------------------------- 2 files changed, 9 insertions(+), 102 deletions(-) diff --git a/package.json b/package.json index 4d2fa70e3..71cf2302e 100755 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "nanospy": "^0.4.0", - "postcss-parser-tests": "github:postcss/postcss-parser-tests", + "postcss-parser-tests": "^8.4.0", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.5", "strip-ansi": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8073cf75..98212131e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ specifiers: nanoid: ^3.2.0 nanospy: ^0.4.0 picocolors: ^1.0.0 - postcss-parser-tests: github:postcss/postcss-parser-tests + postcss-parser-tests: ^8.4.0 simple-git-hooks: ^2.7.0 size-limit: ^7.0.5 source-map-js: ^1.0.2 @@ -56,7 +56,7 @@ devDependencies: fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.4.0 - postcss-parser-tests: github.com/postcss/postcss-parser-tests/d4ba86c442a321f39bab897e0e047038527633d3 + postcss-parser-tests: 8.4.0 simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 @@ -386,23 +386,11 @@ packages: uri-js: 4.4.1 dev: true - /ansi-regex/4.1.0: - resolution: {integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==} - engines: {node: '>=6'} - dev: true - /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -510,15 +498,6 @@ packages: engines: {node: '>=6'} dev: true - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -570,13 +549,6 @@ packages: micromatch: 4.0.4 dev: true - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -585,12 +557,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -598,10 +564,6 @@ packages: color-name: 1.1.4 dev: true - /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true - /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true @@ -919,11 +881,6 @@ packages: engines: {node: '>=6'} dev: true - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} - engines: {node: '>=0.8.0'} - dev: true - /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1332,11 +1289,6 @@ packages: resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} dev: true - /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} - engines: {node: '>=4'} - dev: true - /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1642,11 +1594,6 @@ packages: picomatch: 2.3.1 dev: true - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: @@ -1743,13 +1690,6 @@ packages: wrappy: 1.0.2 dev: true - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -1839,6 +1779,12 @@ packages: engines: {node: '>=8.6'} dev: true + /postcss-parser-tests/8.4.0: + resolution: {integrity: sha512-ETlKYAGwwVRMZCKO+mKJOEPpky/Q0oMr55ZBs5snMCALe+IFiuIWppohUddx1bWhmlCX1NQviggkQUU3zEEDcg==} + dependencies: + picocolors: 1.0.0 + dev: true + /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -1889,14 +1835,6 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.6 - dev: true - /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -2004,14 +1942,6 @@ packages: engines: {node: '>= 8'} dev: true - /spinnies/0.5.1: - resolution: {integrity: sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A==} - dependencies: - chalk: 2.4.2 - cli-cursor: 3.1.0 - strip-ansi: 5.2.0 - dev: true - /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2035,13 +1965,6 @@ packages: define-properties: 1.1.3 dev: true - /strip-ansi/5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - dependencies: - ansi-regex: 4.1.0 - dev: true - /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -2059,13 +1982,6 @@ packages: engines: {node: '>=8'} dev: true - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -2314,12 +2230,3 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - - github.com/postcss/postcss-parser-tests/d4ba86c442a321f39bab897e0e047038527633d3: - resolution: {tarball: https://codeload.github.com/postcss/postcss-parser-tests/tar.gz/d4ba86c442a321f39bab897e0e047038527633d3} - name: postcss-parser-tests - version: 8.3.7 - dependencies: - picocolors: 1.0.0 - spinnies: 0.5.1 - dev: true From d058a5c33d13299846dd0d5f27a55f06d0718b2f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Feb 2022 12:24:05 +0100 Subject: [PATCH 2487/3047] Update dependencies --- package.json | 2 +- pnpm-lock.yaml | 149 ++++++++++++++++++++++++++++--------------------- 2 files changed, 85 insertions(+), 66 deletions(-) diff --git a/package.json b/package.json index 71cf2302e..1bcef7dd4 100755 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.5", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.13", + "@types/node": "^17.0.14", "@typescript-eslint/eslint-plugin": "^5.10.2", "@typescript-eslint/parser": "^5.10.2", "c8": "^7.11.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98212131e..c6362b26f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,7 +4,7 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.5 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.13 + '@types/node': ^17.0.14 '@typescript-eslint/eslint-plugin': ^5.10.2 '@typescript-eslint/parser': ^5.10.2 c8: ^7.11.0 @@ -40,7 +40,7 @@ devDependencies: '@logux/eslint-config': 46.1.1_78f08d0053c073645909d39bd7f54d5e '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.13 + '@types/node': 17.0.14 '@typescript-eslint/eslint-plugin': 5.10.2_2595c2126aec4d4b6e944b931dabb4c2 '@typescript-eslint/parser': 5.10.2_eslint@8.8.0+typescript@4.5.5 c8: 7.11.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.5 strip-ansi: 6.0.1 - ts-node: 10.4.0_40146b36d18138e3202fbb722e5f65e4 + ts-node: 10.4.0_43d2036524ce97aa8076ce68340fa9ec typescript: 4.5.5 uvu: 0.5.3 @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.5 dependencies: - esbuild: 0.14.14 + esbuild: 0.14.16 nanoid: 3.2.0 size-limit: 7.0.5 dev: true @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.13 + '@types/node': 17.0.14 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,8 +224,8 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.13: - resolution: {integrity: sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==} + /@types/node/17.0.14: + resolution: {integrity: sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng==} dev: true /@types/unist/2.0.6: @@ -707,173 +707,192 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.14: - resolution: {integrity: sha512-be/Uw6DdpQiPfula1J4bdmA+wtZ6T3BRCZsDMFB5X+k0Gp8TIh9UvmAcqvKNnbRAafSaXG3jPCeXxDKqnc8hFQ==} + /esbuild-android-arm64/0.14.16: + resolution: {integrity: sha512-9qRiUXiV0qIa4Dfv+GLKsk/HHOq3U9qh8yZK9iX0awlzLPFb38NJrNTGtb/TeI6AyyZqsGgwLm/JeJ1UtEN9Aw==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.14.14: - resolution: {integrity: sha512-BEexYmjWafcISK8cT6O98E3TfcLuZL8DKuubry6G54n2+bD4GkoRD6HYUOnCkfl2p7jodA+s4369IjSFSWjtHg==} + /esbuild-darwin-64/0.14.16: + resolution: {integrity: sha512-1Xa86DpTJFRffA7go0pqUdC0ggxxGxjsrnrvA2nHBVHNf9Ix/cgGuPfxZwf3fRZxDDAT2RdqF5SRZzLYvUCtZQ==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.14.14: - resolution: {integrity: sha512-tnBKm41pDOB1GtZ8q/w26gZlLLRzVmP8fdsduYjvM+yFD7E2DLG4KbPAqFMWm4Md9B+DitBglP57FY7AznxbTg==} + /esbuild-darwin-arm64/0.14.16: + resolution: {integrity: sha512-a0Tp0tec/s5hYT6OiJ2zvfH/6IfXFCH406yqFfXe5u8Nfo6l6IG33L7nqCYCEPnBLF7oYfZk6Re0VDwpgK18kQ==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.14.14: - resolution: {integrity: sha512-Q9Rx6sgArOHalQtNwAaIzJ6dnQ8A+I7f/RsQsdkS3JrdzmnlFo8JEVofTmwVQLoIop7OKUqIVOGP4PoQcwfVMA==} + /esbuild-freebsd-64/0.14.16: + resolution: {integrity: sha512-FqEdOphRS5kJ8MFqQ21Y0yducmwcFHmpkceLkup1kpsGChr3PGO7DfzXmF5fECNnMxRpk/jgk7e6nV4zXTau/A==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.14.14: - resolution: {integrity: sha512-TJvq0OpLM7BkTczlyPIphcvnwrQwQDG1HqxzoYePWn26SMUAlt6wrLnEvxdbXAvNvDLVzG83kA+JimjK7aRNBA==} + /esbuild-freebsd-arm64/0.14.16: + resolution: {integrity: sha512-4Au4zR0//Df1v6FuWJEMZFRzaF69FvxHgSmKjikq7x6Ect+h4TbJKkblC3eDrfTA8L6l5bB1vhh0dbKq4zBy5Q==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.14.14: - resolution: {integrity: sha512-h/CrK9Baimt5VRbu8gqibWV7e1P9l+mkanQgyOgv0Ng3jHT1NVFC9e6rb1zbDdaJVmuhWX5xVliUA5bDDCcJeg==} + /esbuild-linux-32/0.14.16: + resolution: {integrity: sha512-HundAiQCa0ut7PXq3lmRZY7H3/OYh27wkJ97S7jjCgWmcd5To6Bs8UBVB7I4Qi9lNk/Yty0INnqq9on1WR8JUA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.14.14: - resolution: {integrity: sha512-IC+wAiIg/egp5OhQp4W44D9PcBOH1b621iRn1OXmlLzij9a/6BGr9NMIL4CRwz4j2kp3WNZu5sT473tYdynOuQ==} + /esbuild-linux-64/0.14.16: + resolution: {integrity: sha512-fG8MgVmQknIuYCHFOq+9iKLyygjPun+VkNH9ZIdRQrSzb3CFdEkNm+Suq5w8W+WjA/P0OIdrQ/mXXCoHCQTWSQ==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.14.14: - resolution: {integrity: sha512-gxpOaHOPwp7zSmcKYsHrtxabScMqaTzfSQioAMUaB047YiMuDBzqVcKBG8OuESrYkGrL9DDljXr/mQNg7pbdaQ==} + /esbuild-linux-arm/0.14.16: + resolution: {integrity: sha512-0NDVeuvWska0d4Rd8R3+lWEyKaIbAxDuRAeeU6a2xaUXrTG2IPhGNLWc4NbVMbnkGqRqKB4PLdk/YaTUZjKFHQ==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.14: - resolution: {integrity: sha512-6QVul3RI4M5/VxVIRF/I5F+7BaxzR3DfNGoqEVSCZqUbgzHExPn+LXr5ly1C7af2Kw4AHpo+wDqx8A4ziP9avw==} + /esbuild-linux-arm64/0.14.16: + resolution: {integrity: sha512-7WF1rHsPVXhme2B6ceZZABxFwCiZfMRIJO7yRiLahIdDkwfhSTR6M0a6OwO/NsLJH9fax5GdwBOIBoG5Hkz4gA==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.14: - resolution: {integrity: sha512-4Jl5/+xoINKbA4cesH3f4R+q0vltAztZ6Jm8YycS8lNhN1pgZJBDxWfI6HUMIAdkKlIpR1PIkA9aXQgZ8sxFAg==} + /esbuild-linux-mips64le/0.14.16: + resolution: {integrity: sha512-RLNaTRdcQ81QckeIjbk1hCrgmrL6VoZBsYT8ak9ObNQzXEJNMlxOBixaF6rhW8UUYRpTpFuoYHeNya8xY884/A==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.14.14: - resolution: {integrity: sha512-BitW37GxeebKxqYNl4SVuSdnIJAzH830Lr6Mkq3pBHXtzQay0vK+IeOR/Ele1GtNVJ+/f8wYM53tcThkv5SC5w==} + /esbuild-linux-ppc64le/0.14.16: + resolution: {integrity: sha512-ky0Ii2Jmyc00FzGT2audU0UmnBVrVevYmKW10DXLPcHGhbhzJdFRemXLvvzhDM8WD9IMJK3uV6ifJzkKrv8IQA==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-s390x/0.14.14: - resolution: {integrity: sha512-vLj6p76HOZG3wfuTr5MyO3qW5iu8YdhUNxuY+tx846rPo7GcKtYSPMusQjeVEfZlJpSYoR+yrNBBxq+qVF9zrw==} + /esbuild-linux-s390x/0.14.16: + resolution: {integrity: sha512-DuW9MPGJAzUUBPI/olMkMMepCasTbPN1Xr2cKZZEEDIibcdRnuFrMYVk3G3I8/Qb6SZBNTSnZMAyhvYFrwAkqw==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.14.14: - resolution: {integrity: sha512-fn8looXPQhpVqUyCBWUuPjesH+yGIyfbIQrLKG05rr1Kgm3rZD/gaYrd3Wpmf5syVZx70pKZPvdHp8OTA+y7cQ==} + /esbuild-netbsd-64/0.14.16: + resolution: {integrity: sha512-l8+mnz8iVsV0iL5v5JCuP0UTv2LwO1ORdJ/scMkGUl8WrC6cBmUrrHhg+pwREqjbD8TxjfUJVM1Vvt5E8SaTsg==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.14.14: - resolution: {integrity: sha512-HdAnJ399pPff3SKbd8g+P4o5znseni5u5n5rJ6Z7ouqOdgbOwHe2ofZbMow17WMdNtz1IyOZk2Wo9Ve6/lZ4Rg==} + /esbuild-openbsd-64/0.14.16: + resolution: {integrity: sha512-8SbZNAV902FmcGnc+j86HWY8PyTD1H7T39RsPXXS5IC1psi3yzFr2d8NoOxb6cQd5XUVHmHT1naJsbtEAyKIPA==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.14.14: - resolution: {integrity: sha512-bmDHa99ulsGnYlh/xjBEfxoGuC8CEG5OWvlgD+pF7bKKiVTbtxqVCvOGEZeoDXB+ja6AvHIbPxrEE32J+m5nqQ==} + /esbuild-sunos-64/0.14.16: + resolution: {integrity: sha512-pMhe4uOaGjA/5YgeNoB0PRZi1V73D8sx876uFzuAxaZcYzLA5BsSbQeEccH182X6cBybE4Pm79kYedTSGOfwog==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.14.14: - resolution: {integrity: sha512-6tVooQcxJCNenPp5GHZBs/RLu31q4B+BuF4MEoRxswT+Eq2JGF0ZWDRQwNKB8QVIo3t6Svc5wNGez+CwKNQjBg==} + /esbuild-windows-32/0.14.16: + resolution: {integrity: sha512-M68/EFCgji0DI+DgULx2ytUUSxwwODJDpiVc0YsiWKdyB4umKTu1GGxFfdZhXrWtPxB4aZFoIgJyDhsFxnHC4g==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.14.14: - resolution: {integrity: sha512-kl3BdPXh0/RD/dad41dtzj2itMUR4C6nQbXQCyYHHo4zoUoeIXhpCrSl7BAW1nv5EFL8stT1V+TQVXGZca5A2A==} + /esbuild-windows-64/0.14.16: + resolution: {integrity: sha512-rmSal1Co749CXSNyFJ62J5Fz/nZiFWhwMfYN9SwZazutKZ6s0QDRIhnupa93bJmzMzz4C2dqUV/VL1tqOI3y9g==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.14.14: - resolution: {integrity: sha512-dCm1wTOm6HIisLanmybvRKvaXZZo4yEVrHh1dY0v582GThXJOzuXGja1HIQgV09RpSHYRL3m4KoUBL00l6SWEg==} + /esbuild-windows-arm64/0.14.16: + resolution: {integrity: sha512-VMfEf+MDgO+rulAuSeu3HNebSHa1TDn0lJp+QRk7E2WVg9OCSwuXUEkSbqIbkif3ZjASy7h9sTCGyHcqgKQTrg==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.14.14: - resolution: {integrity: sha512-aiK4ddv+uui0k52OqSHu4xxu+SzOim7Rlz4i25pMEiC8rlnGU0HJ9r+ZMfdWL5bzifg+nhnn7x4NSWTeehYblg==} + /esbuild/0.14.16: + resolution: {integrity: sha512-niiWy7nesZFGCiDr0NR9/JLEhtZPYHG/ABYTqveNWvocw/gGI5rKHOj3+5yUv3yH10/geTlZiyVaNvjJWL9Xbw==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.14 - esbuild-darwin-64: 0.14.14 - esbuild-darwin-arm64: 0.14.14 - esbuild-freebsd-64: 0.14.14 - esbuild-freebsd-arm64: 0.14.14 - esbuild-linux-32: 0.14.14 - esbuild-linux-64: 0.14.14 - esbuild-linux-arm: 0.14.14 - esbuild-linux-arm64: 0.14.14 - esbuild-linux-mips64le: 0.14.14 - esbuild-linux-ppc64le: 0.14.14 - esbuild-linux-s390x: 0.14.14 - esbuild-netbsd-64: 0.14.14 - esbuild-openbsd-64: 0.14.14 - esbuild-sunos-64: 0.14.14 - esbuild-windows-32: 0.14.14 - esbuild-windows-64: 0.14.14 - esbuild-windows-arm64: 0.14.14 + esbuild-android-arm64: 0.14.16 + esbuild-darwin-64: 0.14.16 + esbuild-darwin-arm64: 0.14.16 + esbuild-freebsd-64: 0.14.16 + esbuild-freebsd-arm64: 0.14.16 + esbuild-linux-32: 0.14.16 + esbuild-linux-64: 0.14.16 + esbuild-linux-arm: 0.14.16 + esbuild-linux-arm64: 0.14.16 + esbuild-linux-mips64le: 0.14.16 + esbuild-linux-ppc64le: 0.14.16 + esbuild-linux-s390x: 0.14.16 + esbuild-netbsd-64: 0.14.16 + esbuild-openbsd-64: 0.14.16 + esbuild-sunos-64: 0.14.16 + esbuild-windows-32: 0.14.16 + esbuild-windows-64: 0.14.16 + esbuild-windows-arm64: 0.14.16 dev: true /escalade/3.1.1: @@ -2014,7 +2033,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.4.0_40146b36d18138e3202fbb722e5f65e4: + /ts-node/10.4.0_43d2036524ce97aa8076ce68340fa9ec: resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} hasBin: true peerDependencies: @@ -2033,7 +2052,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.13 + '@types/node': 17.0.14 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 From aa2d16575cbffd5b85d07b8b9f4254bd880ceaf2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 1 Feb 2022 12:34:54 +0100 Subject: [PATCH 2488/3047] Release 8.4.6 version --- CHANGELOG.md | 6 ++++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85118b5d4..c8e7fd3a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.6 +* Prevented comment removing when it change meaning of CSS. +* Fixed parsing space in last semicolon-less CSS Custom Properties. +* Fixed comment cleaning in CSS Custom Properties with space. +* Fixed throwing an error on `.root` access for plugin-less case. + ## 8.4.5 * Fixed `raws` types to make object extendable (by James Garbutt). * Moved from Yarn 1 to pnpm. diff --git a/lib/processor.js b/lib/processor.js index 82430a422..2a555ab18 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.5' + this.version = '8.4.6' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 1bcef7dd4..0175a254e 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.5", + "version": "8.4.6", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From e6a9c52eacd8625059f2517491ea83bc2d6c7d3f Mon Sep 17 00:00:00 2001 From: jptaranto Date: Tue, 8 Feb 2022 11:19:51 +1100 Subject: [PATCH 2489/3047] Add postcss-design-tokens plugin --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index e64e80279..53a3d4ed8 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -485,6 +485,7 @@ See also plugins in modular minifier [`cssnano`]. doesn’t fit the mobile browser screen. * [`postcss-unit-processor`] flexible processing of CSS units. * [`postcss-rem-to-px`] converts `rem` values to `px` values. +* [`postcss-design-tokens`] provides a function to retrieve design tokens expressed in JS or JSON, within CSS. [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -882,3 +883,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-rem-to-px`]: https://github.com/TheDutchCoder/postcss-rem-to-px [`postcss-prefix-hover`]: https://github.com/larsmunkholm/postcss-prefix-hover [`postcss-resolve-urls`]: https://github.com/bognarlaszlo/postcss-resolve-urls +[`postcss-design-tokens`]: https://github.com/jptaranto/postcss-design-tokens From 97b06217b5ba8a8d2ace292e62499066df839600 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 8 Feb 2022 12:06:00 +0100 Subject: [PATCH 2490/3047] Fix 80 columns line --- docs/plugins.md | 126 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 84 insertions(+), 42 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index 53a3d4ed8..0de9906e5 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -47,7 +47,9 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`short`] adds and extends numerous shorthand properties. * [`stylelint`] contains plugins that lint your stylesheets. * [`postcss-hamster`] for vertical rhythm, typography, modular scale functions. -* [`postcss-preset-env`] lets you convert modern CSS into something most browsers can understand, determining the polyfills you need based on your targeted browsers or runtime environments. +* [`postcss-preset-env`] lets you convert modern CSS into something most + browsers can understand, determining the polyfills you need based + on your targeted browsers or runtime environments. * [`postcss-ui-theme`] gives you syntax sugar and allow you change theme. [`postcss-preset-env`]: https://github.com/jonathantneal/postcss-preset-env/ @@ -66,7 +68,8 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-apply`] supports custom properties sets references. * [`postcss-attribute-case-insensitive`] supports case insensitive attributes. -* [`postcss-bidirection`] generate left-to-right and right-to-left styles with single syntax. +* [`postcss-bidirection`] generate left-to-right and right-to-left styles + with single syntax. * [`postcss-color-function`] supports functions to transform colors. * [`postcss-color-gray`] supports the `gray()` function. * [`postcss-color-hex-alpha`] supports `#rrggbbaa` and `#rgba` notation. @@ -90,7 +93,8 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-font-normalize`] to normalize font, especially `font-family`. * [`postcss-font-variant`] transpiles human-readable `font-variant` to more widely supported CSS. -* [`postcss-font-family-system-ui`] transforms W3C CSS `font-family: system-ui` to a practical font list. +* [`postcss-font-family-system-ui`] transforms W3C CSS `font-family: system-ui` + to a practical font list. * [`postcss-font-display`] add `font-display` css rule. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. @@ -151,7 +155,8 @@ by one line of code. and other old browsers. * [`pixrem`] generates pixel fallbacks for `rem` units. * [`postcss-fixie`] adds easy and painless IE hacks -* [`postcss-safe-area`] adds browser fallbacks for `safe-area-inset` `env` variables. +* [`postcss-safe-area`] adds browser fallbacks for `safe-area-inset` `env` + variables. * [`webp-in-css`] to use WebP background images in CSS. * [`postcss-clamp`] transform `clamp()` to combination of `min/max` @@ -165,7 +170,8 @@ See also [`oldie`] plugins pack. * [`postcss-aspect-ratio`] fix an element's dimensions to an aspect ratio. * [`postcss-atroot`] place rules directly at the root node. * [`postcss-bem-fix`] adds at-rules for BEM and SUIT style classes. -* [`postcss-click`] allows to use the `:click` pseudo class and implement it in JavaScript. +* [`postcss-click`] allows to use the `:click` pseudo class and implement + it in JavaScript. * [`postcss-compact-mq`] provides compact syntax for media queries based on viewport width. * [`postcss-conditionals`] adds `@if` statements. @@ -220,8 +226,10 @@ for targeting all button elements. selector. * [`csstyle`] adds components workflow to your styles. * [`postcss-percentage`] support Sass-like `percentage()` function. -* [`postcss-custom-css-units`] Define custom css units and convert them to CSS variables. -* [`postcss-easy-z`] lets you organize z-indices by declaring relations between them. +* [`postcss-custom-css-units`] Define custom css units and convert them + to CSS variables. +* [`postcss-easy-z`] lets you organize z-indices by declaring relations + between them. [Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html @@ -265,27 +273,33 @@ for targeting all button elements. and inline files. * [`postcss-assets-rebase`] rebases assets from `url()`. * [`postcss-at2x`] handles retina background images via use of `at-2x` keyword. -* [`postcss-background-image-auto-size`] generates CSS rules `width` and `height` for `background-image` automatically. -* [`postcss-border-9-patch`] generates 9-patch like border styles via a custom rule. +* [`postcss-background-image-auto-size`] generates CSS rules `width` + and `height` for `background-image` automatically. +* [`postcss-border-9-patch`] generates 9-patch like border styles + via a custom rule. * [`postcss-cachebuster`] adds version parameter to images and fonts * [`postcss-copy-assets`] copies assets referenced by relative `url()`s into a build directory. * [`postcss-data-packer`] moves embedded Base64 data to a separate file. * [`postcss-easysprites`] combine images to sprites, based on their image.png`#hash` and aspect ratio (`@2x`). -* [`postcss-icon-blender`] create custom SVG icon sets from over 80,000 free and open-source icons +* [`postcss-icon-blender`] create custom SVG icon sets from over 80,000 free + and open-source icons * [`postcss-image-set`] adds `background-image` with first image for `image-set()`. * [`postcss-image-inliner`] inlines local and remote images. * [`postcss-instagram`] adds Instagram filters to `filter`. * [`postcss-filter-tint`] adds tint filter to elements such as images. -* [`postcss-foft-classes`] adds guarding classes to blocks using web fonts for better font loading strategies. +* [`postcss-foft-classes`] adds guarding classes to blocks using web fonts + for better font loading strategies. * [`postcss-font-awesome`] adds an easy shortcut to font-awesome unicode codes * [`postcss-font-pack`] simplifies font declarations and validates they match configured font packs. -* [`postcss-fontsize`] generates `rem` unit `font-size` and `line-height` with `px` fallbacks. +* [`postcss-fontsize`] generates `rem` unit `font-size` and `line-height` + with `px` fallbacks. * [`postcss-fontpath`] adds font links for different browsers. -* [`postcss-font-grabber`] it grabs remote fonts in `@font-face`, download them and update your CSS. +* [`postcss-font-grabber`] it grabs remote fonts in `@font-face`, + download them and update your CSS. * [`postcss-lazyimagecss`] adds image width and height automatically. * [`postcss-lazysprite`] generates sprites from the directory of images. * [`postcss-placehold`] makes it easy to drop in placeholder images. @@ -298,7 +312,8 @@ loosely resembles the original. * [`postcss-svg`] insert inline SVG to CSS and allows to manage it colors. * [`postcss-svg-fallback`] converts SVG in your CSS to PNG files for IE 8. * [`postcss-svgo`] processes inline SVG through [SVGO]. -* [`postcss-unicode-characters`] makes it easier to write `unicode-range` descriptors. +* [`postcss-unicode-characters`] makes it easier to write `unicode-range` + descriptors. * [`postcss-url`] rebases or inlines `url()`s. * [`postcss-urlrev`] adds MD5 hash strings to `url()`s. * [`postcss-write-svg`] write inline SVGs in CSS. @@ -327,12 +342,16 @@ loosely resembles the original. * [`postcss-calc`] reduces `calc()` to values (when expressions involve the same units). -* [`postcss-remove-nested-calc`] `calc(100vw - calc(20% - 10px))` to `calc(100vw - (20% - 10px))` for IE 11 compatibility. -* [`postcss-class-name-shortener`] shortens CSS class names to optimize website performance. -* [`postcss-combine-duplicated-selectors`] automatically join identical css selectors. +* [`postcss-remove-nested-calc`] `calc(100vw - calc(20% - 10px))` to + `calc(100vw - (20% - 10px))` for IE 11 compatibility. +* [`postcss-class-name-shortener`] shortens CSS class names to optimize + website performance. +* [`postcss-combine-duplicated-selectors`] automatically join identical + selectors. * [`postcss-filter-mq`] Filter all matching or non-matching media queries. * [`postcss-import`] inlines the stylesheets referred to by `@import` rules. -* [`postcss-nested-import`] inlines stylesheets referred to by `@import` rules inside nested rule blocks. +* [`postcss-nested-import`] inlines stylesheets referred to by `@import` rules + inside nested rule blocks. * [`postcss-partial-import`] inlines standard imports and Sass-like partials. * [`postcss-reference`] emulates Less’s `@import`. * [`postcss-remove-root`] removes all instances of `:root` from a stylesheet. @@ -345,7 +364,8 @@ loosely resembles the original. * [`stylehacks`] removes CSS hacks based on browser support. * [`postcss-mq-optimize`] removes invalid media queries or its expressions. * [`postcss-uncss`] removes unused CSS from your stylesheets. -* [`postcss-html-filter`] filters out CSS that does not apply to the HTML you provide. +* [`postcss-html-filter`] filters out CSS that does not apply to the HTML + you provide. * [`postcss-no-important`] delete declarations !important. * [`postcss-deep-scopable`] unified deep scoped style for Vue.js. * [`postcss-deadcss`] helps to find dead CSS in stylesheets. @@ -363,7 +383,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-all-link-colors`] insert colors for link-related pseudo-classes. * [`postcss-border`] adds shorthand for width and color of all borders in `border` property. -* [`postcss-border-shortcut`] PostCSS plugin for assign default `border` type if not expressed. +* [`postcss-border-shortcut`] PostCSS plugin for assign default `border` type + if not expressed. * [`postcss-button`] creates buttons. * [`postcss-center`] centers elements. * [`postcss-circle`] inserts a circle with color. @@ -380,12 +401,15 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-hidden`] allows for easy ways to hide elements. * [`postcss-input-style`] adds new pseudo-elements for cross-browser styling of inputs. -* [`postcss-nested-ancestors`] reference any parent/ancestor selector in nested CSS. -* [`postcss-parent-selector`] adds a parent selector to the beginning of all rules. +* [`postcss-nested-ancestors`] reference any parent/ancestor selector + in nested CSS. +* [`postcss-parent-selector`] adds a parent selector to the beginning + of all rules. * [`postcss-position`] adds shorthand declarations for position attributes. * [`postcss-property-lookup`] allows referencing property values without a variable. -* [`postcss-range-value`] range value with a max and min value between two screen sizes. +* [`postcss-range-value`] range value with a max and min value between + two screen sizes. * [`postcss-responsive-type`] changes `font-size` depends on screen size. * [`postcss-scrib`] define your own aliases/shortcuts for properties or values. * [`postcss-short-font-size`] extends `font-size` to define line-height @@ -406,26 +430,32 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-verthorz`] adds vertical and horizontal spacing declarations. * [`font-magician`] generates all the `@font-face` rules needed in CSS. * [`postcss-animation`] PostCSS plugin that adds `@keyframes` from animate.css. -* [`postcss-magic-animations`] PostCSS plugin that adds `@keyframes` from Magic Animations. +* [`postcss-magic-animations`] PostCSS plugin that adds `@keyframes` + from Magic Animations. ## Others -* [`postcss-add-root-selector`] intelligently wraps all rules in a custom selector. -* [`postcss-alter-property-value`] alters your CSS declarations from a rule based configuration. +* [`postcss-add-root-selector`] intelligently wraps all rules + in a custom selector. +* [`postcss-alter-property-value`] alters your CSS declarations + from a rule based configuration. * [`postcss-attribute-selector-prefix`] adds a prefix to attribute selectors * [`postcss-auto-rem`] compiles pixel units to `rem` without configuration. * [`postcss-autoreset`] automatically adds reset styles. * [`postcss-bem-to-js`] creates a JavaScript definition file for BEM-style CSS. * [`postcss-bom`] adds a UTF-8 BOM to files. -* [`postcss-blurry-gradient-workaround`] fixes blurry CSS gradients with too many explicit end-stops. +* [`postcss-blurry-gradient-workaround`] fixes blurry CSS gradients + with too many explicit end-stops. * [`postcss-camelcaser`] transforms selectors to CamelCase. * [`postcss-class-prefix`] adds a prefix/namespace to class selectors. * [`postcss-classes-to-mixins`] converts classes to Sass, Less and Stylus mixins * [`postcss-currency`] replaces name of currency with symbols. -* [`postcss-d-ts`] generates `.d.ts` declaration for TypeScript `import` from used CSS classes and ids +* [`postcss-d-ts`] generates `.d.ts` declaration for TypeScript `import` + from used CSS classes and ids * [`postcss-eol`] replaces EOL of files. -* [`postcss-extract-value`] extracts values from css properties and puts them into variables. +* [`postcss-extract-value`] extracts values from css properties and puts them + into variables. * [`postcss-fakeid`] transforms `#foo` IDs to attribute selectors `[id="foo"]`. * [`postcss-filter-stream`] blacklist files / folders that you don’t want to process with a PostCSS plugin. @@ -442,37 +472,45 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-inline-rtl`] converts your CSS to right-to-left, but inline (adding just what you need). * [`postcss-join-transitions`] joins conflicting transition declarations. -* [`postcss-letter-tracking`] generates relative, Photoshop-compatible letter tracking for improved letter spacing. +* [`postcss-letter-tracking`] generates relative, Photoshop-compatible + letter tracking for improved letter spacing. * [`postcss-light-text`] adds `-webkit-` antialiasing for light text. * [`postcss-modules`] allows to use CSS Modules everywhere. -* [`postcss-momentum-scrolling`] adding momentum style scrolling behavior (`-webkit-overflow-scrolling:touch`) for elements with overflow (scroll, auto) on iOS. +* [`postcss-momentum-scrolling`] adding momentum style scrolling behavior + (`-webkit-overflow-scrolling:touch`) for elements with overflow on iOS. * [`postcss-mq-keyframes`] moves any animation keyframes in media queries to the end of the file. -* [`postcss-mq-last`] gives media query rules precedence by moving them to the end of the file. +* [`postcss-mq-last`] gives media query rules precedence by moving them + to the end of the file. * [`postcss-node-modules-replacer`] replaces path than includes `node_modules` to `~`. -* [`postcss-plugin-namespace`] add a css selector to all rules, so that css file don't affect other element. +* [`postcss-plugin-namespace`] add a css selector to all rules, + so that CSS file don’t affect other element. * [`postcss-prefix-hover`] adds a prefixed to any selector containing `:hover`. * [`postcss-pseudo-content-insert`] adds `content: ''` to `:before` and `:after` if it is missing. -* [`postcss-pseudo-element-cases`] converts `.style::BEFORE` into `.style::before` and vice versa. -* [`postcss-pseudo-element-colons`] converts `.style:before` into `.style::before` and vice versa. +* [`postcss-pseudo-element-cases`] converts `.style::BEFORE` + into `.style::before` and vice versa. +* [`postcss-pseudo-element-colons`] converts `.style:before` + into `.style::before` and vice versa. * [`postcss-pseudo-elements-content`] adds `content: ''` to `:before-c` and `:after-c`. * [`postcss-pxtorem`] converts pixel units to `rem`. * [`postcss-raw`] protects nodes inside `@raw` at-rules from being touched by other plugins. * [`postcss-remove-prefixes`] removes vendor prefixes. -* [`postcss-rtlcss`] creates left-to-right and right-to-left rules in a single CSS file. +* [`postcss-rtlcss`] creates left-to-right and right-to-left rules + in a single CSS file. * [`postcss-safe-important`] adds `!important` to style declarations safely. -* [`postcss-sanitize`] remove properties and values using rules (css sanitization). +* [`postcss-sanitize`] remove properties and values using rules. * [`postcss-scopify`] adds a user input scope to each selector. * [`postcss-select`] select rules based off a selector list. * [`postcss-selector-prefixer`] adds a prefix to css selectors. * [`postcss-shorthand-expand`] expands shorthand properties. * [`postcss-simple-trig`] calculate trigonometric functions: sin/cos/tan. * [`postcss-sorting`] sort rules content with specified order. -* [`postcss-sort-media-queries`] combine and sort CSS media queries with mobile first or desktop first methods +* [`postcss-sort-media-queries`] combine and sort CSS media queries + with mobile first or desktop first methods. * [`postcss-style-guide`] generates a style guide automatically. * [`css-declaration-sorter`] sorts CSS declarations fast and automatically in a certain order. @@ -480,12 +518,14 @@ See also plugins in modular minifier [`cssnano`]. * [`rtlcss`] mirrors styles for right-to-left locales. * [`stylefmt`] modern CSS formatter that works well with `stylelint`. * [`postcss-autocorrect`] corrects typos and notifies in the console. -* [`postcss-px-to-viewport`] generates viewport units (`vw`, `vh`, `vmin`, `vmax`) from `px` units. +* [`postcss-px-to-viewport`] generates viewport units + (`vw`, `vh`, `vmin`, `vmax`) from `px` units. * [`postcss-viewport-height-correction`] solves the popular problem when `100vh` doesn’t fit the mobile browser screen. * [`postcss-unit-processor`] flexible processing of CSS units. * [`postcss-rem-to-px`] converts `rem` values to `px` values. -* [`postcss-design-tokens`] provides a function to retrieve design tokens expressed in JS or JSON, within CSS. +* [`postcss-design-tokens`] provides a function to retrieve design tokens + expressed in JS or JSON, within CSS. [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -508,7 +548,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-browser-reporter`] displays warning messages from other plugins right in your browser. -* [`postcss-forced-variables`] provides warnings and errors when specified properties don't use variables. +* [`postcss-forced-variables`] provides warnings and errors when specified + properties don’t use variables. * [`postcss-reporter`] logs warnings and other messages from other plugins in the console. @@ -536,7 +577,8 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-spanish-stylesheets`] Spanish Style Sheets. * [`postcss-nope`] lets you write `nope` instead of `none`. * [`postcss-glitch`] add glitch effect to your text. -* [`postcss-khaleesi`] translate CSS values and properties to `khaleesi meme` language. +* [`postcss-khaleesi`] translate CSS values and properties to + `khaleesi meme` language. [`postcss-background-image-auto-size`]: https://github.com/JustClear/postcss-background-image-auto-size [`postcss-letter-tracking`]: https://github.com/letsjaam/postcss-letter-tracking From a00876066fa3e5f49f595092dc77b62b98efcfd2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 9 Feb 2022 16:41:47 +0100 Subject: [PATCH 2491/3047] Update dependencies --- package.json | 14 +-- pnpm-lock.yaml | 315 ++++++++++++++++++++++++++----------------------- 2 files changed, 175 insertions(+), 154 deletions(-) diff --git a/package.json b/package.json index 0175a254e..ca7f0672b 100755 --- a/package.json +++ b/package.json @@ -75,11 +75,11 @@ }, "devDependencies": { "@logux/eslint-config": "^46.1.1", - "@size-limit/preset-small-lib": "^7.0.5", + "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.14", - "@typescript-eslint/eslint-plugin": "^5.10.2", - "@typescript-eslint/parser": "^5.10.2", + "@types/node": "^17.0.16", + "@typescript-eslint/eslint-plugin": "^5.11.0", + "@typescript-eslint/parser": "^5.11.0", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", @@ -92,12 +92,12 @@ "eslint-plugin-promise": "^6.0.0", "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", - "nanospy": "^0.4.0", + "nanospy": "^0.5.0", "postcss-parser-tests": "^8.4.0", "simple-git-hooks": "^2.7.0", - "size-limit": "^7.0.5", + "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", - "ts-node": "^10.4.0", + "ts-node": "^10.5.0", "typescript": "^4.5.5", "uvu": "^0.5.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6362b26f..ca790498d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,11 +2,11 @@ lockfileVersion: 5.3 specifiers: '@logux/eslint-config': ^46.1.1 - '@size-limit/preset-small-lib': ^7.0.5 + '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.14 - '@typescript-eslint/eslint-plugin': ^5.10.2 - '@typescript-eslint/parser': ^5.10.2 + '@types/node': ^17.0.16 + '@typescript-eslint/eslint-plugin': ^5.11.0 + '@typescript-eslint/parser': ^5.11.0 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 @@ -20,14 +20,14 @@ specifiers: fs-extra: ^10.0.0 nanodelay: ^1.0.8 nanoid: ^3.2.0 - nanospy: ^0.4.0 + nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.4.0 simple-git-hooks: ^2.7.0 - size-limit: ^7.0.5 + size-limit: ^7.0.8 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 - ts-node: ^10.4.0 + ts-node: ^10.5.0 typescript: ^4.5.5 uvu: ^0.5.3 @@ -38,11 +38,11 @@ dependencies: devDependencies: '@logux/eslint-config': 46.1.1_78f08d0053c073645909d39bd7f54d5e - '@size-limit/preset-small-lib': 7.0.5_size-limit@7.0.5 + '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.14 - '@typescript-eslint/eslint-plugin': 5.10.2_2595c2126aec4d4b6e944b931dabb4c2 - '@typescript-eslint/parser': 5.10.2_eslint@8.8.0+typescript@4.5.5 + '@types/node': 17.0.16 + '@typescript-eslint/eslint-plugin': 5.11.0_de5a1ddccd75ca1e499b8b8491d3dcba + '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 c8: 7.11.0 check-dts: 0.6.6_typescript@4.5.5 clean-publish: 4.0.0 @@ -55,12 +55,12 @@ devDependencies: eslint-plugin-promise: 6.0.0_eslint@8.8.0 fs-extra: 10.0.0 nanodelay: 1.0.8 - nanospy: 0.4.0 + nanospy: 0.5.0 postcss-parser-tests: 8.4.0 simple-git-hooks: 2.7.0 - size-limit: 7.0.5 + size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.4.0_43d2036524ce97aa8076ce68340fa9ec + ts-node: 10.5.0_99ae9436e134a034c8d45fdd98ebbf22 typescript: 4.5.5 uvu: 0.5.3 @@ -89,11 +89,11 @@ packages: ajv: 6.12.6 debug: 4.3.3 espree: 9.3.0 - globals: 13.12.0 + globals: 13.12.1 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 4.1.0 - minimatch: 3.0.4 + minimatch: 3.0.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color @@ -105,7 +105,7 @@ packages: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 - minimatch: 3.0.4 + minimatch: 3.0.5 transitivePeerDependencies: - supports-color dev: true @@ -159,35 +159,35 @@ packages: fastq: 1.13.0 dev: true - /@size-limit/esbuild/7.0.5_size-limit@7.0.5: - resolution: {integrity: sha512-ec/XfgTHcfXFflEDgs83gs3XMfB8sn4BISZM7CPHCS72tNkcjVwNRxrKWisb11JZ2kN4glBgCmsXZpoSaEGzXg==} + /@size-limit/esbuild/7.0.8_size-limit@7.0.8: + resolution: {integrity: sha512-AzCrxJJThDvHrBNoolebYVgXu46c6HuS3fOxoXr3V0YWNM0qz81z5F3j7RruzboZnls8ZgME4WrH6GM5rB9gtA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: - size-limit: 7.0.5 + size-limit: 7.0.8 dependencies: - esbuild: 0.14.16 + esbuild: 0.14.21 nanoid: 3.2.0 - size-limit: 7.0.5 + size-limit: 7.0.8 dev: true - /@size-limit/file/7.0.5_size-limit@7.0.5: - resolution: {integrity: sha512-DqyuUkmCSHwML6GVmeRr0v6Ih/P3pwmCu6RDWh2QxdDSec1ZnShmFUmcC6rLQDX7KW5aCjK3cs5FNd22Eaqapw==} + /@size-limit/file/7.0.8_size-limit@7.0.8: + resolution: {integrity: sha512-1KeFQuMXIXAH/iELqIX7x+YNYDFvzIvmxcp9PrdwEoSNL0dXdaDIo9WE/yz8xvOmUcKaLfqbWkL75DM0k91WHQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} peerDependencies: - size-limit: 7.0.5 + size-limit: 7.0.8 dependencies: semver: 7.3.5 - size-limit: 7.0.5 + size-limit: 7.0.8 dev: true - /@size-limit/preset-small-lib/7.0.5_size-limit@7.0.5: - resolution: {integrity: sha512-cWwXDCx9BEpHIjbpHlhpS0JBt+J1U5LCaHHyBhAxevOX7W0aX7nCJwPUmd5liGHq9ui5VyWOtV3lhxce96Qd8A==} + /@size-limit/preset-small-lib/7.0.8_size-limit@7.0.8: + resolution: {integrity: sha512-CT8nIYA/c2CSD+X4rAUgwqYccQMahJ6rBnaZxvi3YKFdkXIbuGNXHNjHsYaFksgwG9P4UjG/unyO5L73f3zQBw==} peerDependencies: - size-limit: 7.0.5 + size-limit: 7.0.8 dependencies: - '@size-limit/esbuild': 7.0.5_size-limit@7.0.5 - '@size-limit/file': 7.0.5_size-limit@7.0.5 - size-limit: 7.0.5 + '@size-limit/esbuild': 7.0.8_size-limit@7.0.8 + '@size-limit/file': 7.0.8_size-limit@7.0.8 + size-limit: 7.0.8 dev: true /@tsconfig/node10/1.0.8: @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.14 + '@types/node': 17.0.16 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.14: - resolution: {integrity: sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng==} + /@types/node/17.0.16: + resolution: {integrity: sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.10.2_2595c2126aec4d4b6e944b931dabb4c2: - resolution: {integrity: sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==} + /@typescript-eslint/eslint-plugin/5.11.0_de5a1ddccd75ca1e499b8b8491d3dcba: + resolution: {integrity: sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,10 +243,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.10.2_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/scope-manager': 5.10.2 - '@typescript-eslint/type-utils': 5.10.2_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.10.2_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.11.0 + '@typescript-eslint/type-utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.8.0 functional-red-black-tree: 1.0.1 @@ -259,8 +259,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.10.2_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==} + /@typescript-eslint/parser/5.11.0_eslint@8.8.0+typescript@4.5.5: + resolution: {integrity: sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,9 +269,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.10.2 - '@typescript-eslint/types': 5.10.2 - '@typescript-eslint/typescript-estree': 5.10.2_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.11.0 + '@typescript-eslint/types': 5.11.0 + '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 debug: 4.3.3 eslint: 8.8.0 typescript: 4.5.5 @@ -279,16 +279,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.10.2: - resolution: {integrity: sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==} + /@typescript-eslint/scope-manager/5.11.0: + resolution: {integrity: sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.10.2 - '@typescript-eslint/visitor-keys': 5.10.2 + '@typescript-eslint/types': 5.11.0 + '@typescript-eslint/visitor-keys': 5.11.0 dev: true - /@typescript-eslint/type-utils/5.10.2_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==} + /@typescript-eslint/type-utils/5.11.0_eslint@8.8.0+typescript@4.5.5: + resolution: {integrity: sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,7 +297,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.10.2_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 debug: 4.3.3 eslint: 8.8.0 tsutils: 3.21.0_typescript@4.5.5 @@ -306,13 +306,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.10.2: - resolution: {integrity: sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==} + /@typescript-eslint/types/5.11.0: + resolution: {integrity: sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.10.2_typescript@4.5.5: - resolution: {integrity: sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==} + /@typescript-eslint/typescript-estree/5.11.0_typescript@4.5.5: + resolution: {integrity: sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,8 +320,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.10.2 - '@typescript-eslint/visitor-keys': 5.10.2 + '@typescript-eslint/types': 5.11.0 + '@typescript-eslint/visitor-keys': 5.11.0 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -332,16 +332,16 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.10.2_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==} + /@typescript-eslint/utils/5.11.0_eslint@8.8.0+typescript@4.5.5: + resolution: {integrity: sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.10.2 - '@typescript-eslint/types': 5.10.2 - '@typescript-eslint/typescript-estree': 5.10.2_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.11.0 + '@typescript-eslint/types': 5.11.0 + '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 eslint: 8.8.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.8.0 @@ -350,11 +350,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.10.2: - resolution: {integrity: sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==} + /@typescript-eslint/visitor-keys/5.11.0: + resolution: {integrity: sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.10.2 + '@typescript-eslint/types': 5.11.0 eslint-visitor-keys: 3.2.0 dev: true @@ -478,7 +478,7 @@ packages: foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.3 + istanbul-reports: 3.1.4 rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 8.1.1 @@ -707,8 +707,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.16: - resolution: {integrity: sha512-9qRiUXiV0qIa4Dfv+GLKsk/HHOq3U9qh8yZK9iX0awlzLPFb38NJrNTGtb/TeI6AyyZqsGgwLm/JeJ1UtEN9Aw==} + /esbuild-android-arm64/0.14.21: + resolution: {integrity: sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -716,8 +716,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.16: - resolution: {integrity: sha512-1Xa86DpTJFRffA7go0pqUdC0ggxxGxjsrnrvA2nHBVHNf9Ix/cgGuPfxZwf3fRZxDDAT2RdqF5SRZzLYvUCtZQ==} + /esbuild-darwin-64/0.14.21: + resolution: {integrity: sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -725,8 +725,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.16: - resolution: {integrity: sha512-a0Tp0tec/s5hYT6OiJ2zvfH/6IfXFCH406yqFfXe5u8Nfo6l6IG33L7nqCYCEPnBLF7oYfZk6Re0VDwpgK18kQ==} + /esbuild-darwin-arm64/0.14.21: + resolution: {integrity: sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -734,8 +734,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.16: - resolution: {integrity: sha512-FqEdOphRS5kJ8MFqQ21Y0yducmwcFHmpkceLkup1kpsGChr3PGO7DfzXmF5fECNnMxRpk/jgk7e6nV4zXTau/A==} + /esbuild-freebsd-64/0.14.21: + resolution: {integrity: sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -743,8 +743,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.16: - resolution: {integrity: sha512-4Au4zR0//Df1v6FuWJEMZFRzaF69FvxHgSmKjikq7x6Ect+h4TbJKkblC3eDrfTA8L6l5bB1vhh0dbKq4zBy5Q==} + /esbuild-freebsd-arm64/0.14.21: + resolution: {integrity: sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -752,8 +752,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.16: - resolution: {integrity: sha512-HundAiQCa0ut7PXq3lmRZY7H3/OYh27wkJ97S7jjCgWmcd5To6Bs8UBVB7I4Qi9lNk/Yty0INnqq9on1WR8JUA==} + /esbuild-linux-32/0.14.21: + resolution: {integrity: sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -761,8 +761,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.16: - resolution: {integrity: sha512-fG8MgVmQknIuYCHFOq+9iKLyygjPun+VkNH9ZIdRQrSzb3CFdEkNm+Suq5w8W+WjA/P0OIdrQ/mXXCoHCQTWSQ==} + /esbuild-linux-64/0.14.21: + resolution: {integrity: sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -770,8 +770,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.16: - resolution: {integrity: sha512-0NDVeuvWska0d4Rd8R3+lWEyKaIbAxDuRAeeU6a2xaUXrTG2IPhGNLWc4NbVMbnkGqRqKB4PLdk/YaTUZjKFHQ==} + /esbuild-linux-arm/0.14.21: + resolution: {integrity: sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -779,8 +779,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.16: - resolution: {integrity: sha512-7WF1rHsPVXhme2B6ceZZABxFwCiZfMRIJO7yRiLahIdDkwfhSTR6M0a6OwO/NsLJH9fax5GdwBOIBoG5Hkz4gA==} + /esbuild-linux-arm64/0.14.21: + resolution: {integrity: sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -788,8 +788,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.16: - resolution: {integrity: sha512-RLNaTRdcQ81QckeIjbk1hCrgmrL6VoZBsYT8ak9ObNQzXEJNMlxOBixaF6rhW8UUYRpTpFuoYHeNya8xY884/A==} + /esbuild-linux-mips64le/0.14.21: + resolution: {integrity: sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -797,8 +797,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.16: - resolution: {integrity: sha512-ky0Ii2Jmyc00FzGT2audU0UmnBVrVevYmKW10DXLPcHGhbhzJdFRemXLvvzhDM8WD9IMJK3uV6ifJzkKrv8IQA==} + /esbuild-linux-ppc64le/0.14.21: + resolution: {integrity: sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -806,8 +806,17 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.16: - resolution: {integrity: sha512-DuW9MPGJAzUUBPI/olMkMMepCasTbPN1Xr2cKZZEEDIibcdRnuFrMYVk3G3I8/Qb6SZBNTSnZMAyhvYFrwAkqw==} + /esbuild-linux-riscv64/0.14.21: + resolution: {integrity: sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.21: + resolution: {integrity: sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -815,8 +824,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.16: - resolution: {integrity: sha512-l8+mnz8iVsV0iL5v5JCuP0UTv2LwO1ORdJ/scMkGUl8WrC6cBmUrrHhg+pwREqjbD8TxjfUJVM1Vvt5E8SaTsg==} + /esbuild-netbsd-64/0.14.21: + resolution: {integrity: sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -824,8 +833,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.16: - resolution: {integrity: sha512-8SbZNAV902FmcGnc+j86HWY8PyTD1H7T39RsPXXS5IC1psi3yzFr2d8NoOxb6cQd5XUVHmHT1naJsbtEAyKIPA==} + /esbuild-openbsd-64/0.14.21: + resolution: {integrity: sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -833,8 +842,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.16: - resolution: {integrity: sha512-pMhe4uOaGjA/5YgeNoB0PRZi1V73D8sx876uFzuAxaZcYzLA5BsSbQeEccH182X6cBybE4Pm79kYedTSGOfwog==} + /esbuild-sunos-64/0.14.21: + resolution: {integrity: sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -842,8 +851,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.16: - resolution: {integrity: sha512-M68/EFCgji0DI+DgULx2ytUUSxwwODJDpiVc0YsiWKdyB4umKTu1GGxFfdZhXrWtPxB4aZFoIgJyDhsFxnHC4g==} + /esbuild-windows-32/0.14.21: + resolution: {integrity: sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -851,8 +860,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.16: - resolution: {integrity: sha512-rmSal1Co749CXSNyFJ62J5Fz/nZiFWhwMfYN9SwZazutKZ6s0QDRIhnupa93bJmzMzz4C2dqUV/VL1tqOI3y9g==} + /esbuild-windows-64/0.14.21: + resolution: {integrity: sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -860,8 +869,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.16: - resolution: {integrity: sha512-VMfEf+MDgO+rulAuSeu3HNebSHa1TDn0lJp+QRk7E2WVg9OCSwuXUEkSbqIbkif3ZjASy7h9sTCGyHcqgKQTrg==} + /esbuild-windows-arm64/0.14.21: + resolution: {integrity: sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -869,30 +878,31 @@ packages: dev: true optional: true - /esbuild/0.14.16: - resolution: {integrity: sha512-niiWy7nesZFGCiDr0NR9/JLEhtZPYHG/ABYTqveNWvocw/gGI5rKHOj3+5yUv3yH10/geTlZiyVaNvjJWL9Xbw==} + /esbuild/0.14.21: + resolution: {integrity: sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.16 - esbuild-darwin-64: 0.14.16 - esbuild-darwin-arm64: 0.14.16 - esbuild-freebsd-64: 0.14.16 - esbuild-freebsd-arm64: 0.14.16 - esbuild-linux-32: 0.14.16 - esbuild-linux-64: 0.14.16 - esbuild-linux-arm: 0.14.16 - esbuild-linux-arm64: 0.14.16 - esbuild-linux-mips64le: 0.14.16 - esbuild-linux-ppc64le: 0.14.16 - esbuild-linux-s390x: 0.14.16 - esbuild-netbsd-64: 0.14.16 - esbuild-openbsd-64: 0.14.16 - esbuild-sunos-64: 0.14.16 - esbuild-windows-32: 0.14.16 - esbuild-windows-64: 0.14.16 - esbuild-windows-arm64: 0.14.16 + esbuild-android-arm64: 0.14.21 + esbuild-darwin-64: 0.14.21 + esbuild-darwin-arm64: 0.14.21 + esbuild-freebsd-64: 0.14.21 + esbuild-freebsd-arm64: 0.14.21 + esbuild-linux-32: 0.14.21 + esbuild-linux-64: 0.14.21 + esbuild-linux-arm: 0.14.21 + esbuild-linux-arm64: 0.14.21 + esbuild-linux-mips64le: 0.14.21 + esbuild-linux-ppc64le: 0.14.21 + esbuild-linux-riscv64: 0.14.21 + esbuild-linux-s390x: 0.14.21 + esbuild-netbsd-64: 0.14.21 + esbuild-openbsd-64: 0.14.21 + esbuild-sunos-64: 0.14.21 + esbuild-windows-32: 0.14.21 + esbuild-windows-64: 0.14.21 + esbuild-windows-arm64: 0.14.21 dev: true /escalade/3.1.1: @@ -961,7 +971,7 @@ packages: has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 - minimatch: 3.0.4 + minimatch: 3.0.5 object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 @@ -977,7 +987,7 @@ packages: eslint-plugin-es: 3.0.1_eslint@8.8.0 eslint-utils: 2.1.0 ignore: 5.2.0 - minimatch: 3.0.4 + minimatch: 3.0.5 resolve: 1.22.0 semver: 6.3.0 dev: true @@ -1069,7 +1079,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.12.0 + globals: 13.12.1 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1078,7 +1088,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.4 + minimatch: 3.0.5 natural-compare: 1.4.0 optionator: 0.9.1 regexpp: 3.2.0 @@ -1203,7 +1213,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: cross-spawn: 7.0.3 - signal-exit: 3.0.6 + signal-exit: 3.0.7 dev: true /fs-extra/10.0.0: @@ -1276,13 +1286,13 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.0.5 once: 1.4.0 path-is-absolute: 1.0.1 dev: true - /globals/13.12.0: - resolution: {integrity: sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==} + /globals/13.12.1: + resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1507,8 +1517,8 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-reports/3.1.3: - resolution: {integrity: sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==} + /istanbul-reports/3.1.4: + resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -1613,8 +1623,8 @@ packages: picomatch: 2.3.1 dev: true - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + /minimatch/3.0.5: + resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} dependencies: brace-expansion: 1.1.11 dev: true @@ -1661,8 +1671,14 @@ packages: picocolors: 1.0.0 dev: true - /nanospy/0.4.0: - resolution: {integrity: sha512-PUdss1inwE0/ti+X9FKuEBLLWQusaHnLBuwYn0cjJNM446DafMS3tbTWV9C9T/NEnD+BPL0zHdnNF/FWvHelvw==} + /nanospinner/1.0.0: + resolution: {integrity: sha512-14c2r2QQ9xfTmdbqdF51FKCNvww+0ZON9GeEHur+pBdOufoFvxD4CZQRaYWmFrGH3Nuv7PZ/9Q+wsV+hFSp32g==} + dependencies: + picocolors: 1.0.0 + dev: true + + /nanospy/0.5.0: + resolution: {integrity: sha512-QxH93ntkjRiSP+gJrBLcgOO3neU6pGhUKjPAJ7rAFag/+tJ+/0lw6dXic+iXUQ/3Cxk4Dp/FwLnf57xnQsjecQ==} engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -1916,8 +1932,8 @@ packages: object-inspect: 1.12.0 dev: true - /signal-exit/3.0.6: - resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true /simple-git-hooks/2.7.0: @@ -1926,8 +1942,8 @@ packages: requiresBuild: true dev: true - /size-limit/7.0.5: - resolution: {integrity: sha512-dve+Vaq/a6H7QZhFbozAUBKNO9ZnZkPX3EF1ETI8yv3YCMdC7e63HmVZDXKB//o3FCTHqtZQ0p3ZtOwN/PSiqQ==} + /size-limit/7.0.8: + resolution: {integrity: sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} hasBin: true dependencies: @@ -1937,7 +1953,7 @@ packages: globby: 11.1.0 lilconfig: 2.0.4 mkdirp: 1.0.4 - nanospinner: 0.6.0 + nanospinner: 1.0.0 picocolors: 1.0.0 dev: true @@ -2019,7 +2035,7 @@ packages: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.0 - minimatch: 3.0.4 + minimatch: 3.0.5 dev: true /text-table/0.2.0: @@ -2033,8 +2049,8 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.4.0_43d2036524ce97aa8076ce68340fa9ec: - resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} + /ts-node/10.5.0_99ae9436e134a034c8d45fdd98ebbf22: + resolution: {integrity: sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -2052,7 +2068,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.14 + '@types/node': 17.0.16 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2060,6 +2076,7 @@ packages: diff: 4.0.2 make-error: 1.3.6 typescript: 4.5.5 + v8-compile-cache-lib: 3.0.0 yn: 3.1.1 dev: true @@ -2141,6 +2158,10 @@ packages: sade: 1.8.1 dev: true + /v8-compile-cache-lib/3.0.0: + resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==} + dev: true + /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true From 1e246383b645c16253a2ccebce3c51f137254d42 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 9 Feb 2022 17:02:16 +0100 Subject: [PATCH 2492/3047] Clean up code --- lib/parser.js | 11 ++++++++--- package.json | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index a9f8dad40..579f793be 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -7,6 +7,11 @@ let AtRule = require('./at-rule') let Root = require('./root') let Rule = require('./rule') +const SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true +} + class Parser { constructor(input) { this.input = input @@ -418,9 +423,9 @@ class Parser { if (type === 'space' && i === length - 1 && !customProperty) { clean = false } else if (type === 'comment') { - prev = tokens[i - 1] - next = tokens[i + 1] - if (prev && next && prev[0] !== 'space' && next[0] !== 'space') { + prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty' + next = tokens[i + 1] ? tokens[i + 1][0] : 'empty' + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { value += token[1] } else { clean = false diff --git a/package.json b/package.json index ca7f0672b..56a28a915 100755 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ "size-limit": [ { "path": "lib/postcss.js", - "limit": "16 KB" + "limit": "17 KB" } ], "eslintConfig": { From 2010e2433f27afd5628a5d20555746a96c540496 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 9 Feb 2022 17:23:27 +0100 Subject: [PATCH 2493/3047] Fix comment removal after , --- lib/parser.js | 6 +++++- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 579f793be..54d6007ff 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -426,7 +426,11 @@ class Parser { prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty' next = tokens[i + 1] ? tokens[i + 1][0] : 'empty' if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { - value += token[1] + if (value.slice(-1) === ',') { + clean = false + } else { + value += token[1] + } } else { clean = false } diff --git a/package.json b/package.json index 56a28a915..63cb02723 100755 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "fs-extra": "^10.0.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", - "postcss-parser-tests": "^8.4.0", + "postcss-parser-tests": "^8.5.0", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca790498d..405e220f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ specifiers: nanoid: ^3.2.0 nanospy: ^0.5.0 picocolors: ^1.0.0 - postcss-parser-tests: ^8.4.0 + postcss-parser-tests: ^8.5.0 simple-git-hooks: ^2.7.0 size-limit: ^7.0.8 source-map-js: ^1.0.2 @@ -56,7 +56,7 @@ devDependencies: fs-extra: 10.0.0 nanodelay: 1.0.8 nanospy: 0.5.0 - postcss-parser-tests: 8.4.0 + postcss-parser-tests: 8.5.0 simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 @@ -1814,8 +1814,8 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss-parser-tests/8.4.0: - resolution: {integrity: sha512-ETlKYAGwwVRMZCKO+mKJOEPpky/Q0oMr55ZBs5snMCALe+IFiuIWppohUddx1bWhmlCX1NQviggkQUU3zEEDcg==} + /postcss-parser-tests/8.5.0: + resolution: {integrity: sha512-ORK9KdLgDZf/klNO3u1i6GRBQo+vPsJUjOARETXgVcE872/I7OT8A2gMB+8XPZT2nO0DKVXIaCZJESlT03BI3g==} dependencies: picocolors: 1.0.0 dev: true From ed054f23da7cdeed4648add89e62aacd4fe23b44 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 22 Feb 2022 21:43:58 +0100 Subject: [PATCH 2494/3047] Fix CI config --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d819e02a1..9c0a07160 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,8 @@ name: Test on: push: + branches: + - main pull_request: jobs: full: From 8718e0656e78f96d7812300bc372ff3a574d6fad Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 22 Feb 2022 22:27:11 +0100 Subject: [PATCH 2495/3047] Update dependencies --- package.json | 12 +- pnpm-lock.yaml | 348 ++++++++++++++++++++++++------------------------- 2 files changed, 180 insertions(+), 180 deletions(-) diff --git a/package.json b/package.json index 63cb02723..f2cae0583 100755 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.2.0", + "nanoid": "^3.3.1", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -77,20 +77,20 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.16", - "@typescript-eslint/eslint-plugin": "^5.11.0", - "@typescript-eslint/parser": "^5.11.0", + "@types/node": "^17.0.19", + "@typescript-eslint/eslint-plugin": "^5.12.1", + "@typescript-eslint/parser": "^5.12.1", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.8.0", + "eslint": "^8.9.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.0", - "fs-extra": "^10.0.0", + "fs-extra": "^10.0.1", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 405e220f6..75f09c37f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,22 +4,22 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.16 - '@typescript-eslint/eslint-plugin': ^5.11.0 - '@typescript-eslint/parser': ^5.11.0 + '@types/node': ^17.0.19 + '@typescript-eslint/eslint-plugin': ^5.12.1 + '@typescript-eslint/parser': ^5.12.1 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.8.0 + eslint: ^8.9.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 - fs-extra: ^10.0.0 + fs-extra: ^10.0.1 nanodelay: ^1.0.8 - nanoid: ^3.2.0 + nanoid: ^3.3.1 nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.5.0 @@ -32,35 +32,35 @@ specifiers: uvu: ^0.5.3 dependencies: - nanoid: 3.2.0 + nanoid: 3.3.1 picocolors: 1.0.0 source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.1_78f08d0053c073645909d39bd7f54d5e + '@logux/eslint-config': 46.1.1_cd7f45d1cba51a736d2df3e99513a1a4 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.16 - '@typescript-eslint/eslint-plugin': 5.11.0_de5a1ddccd75ca1e499b8b8491d3dcba - '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@types/node': 17.0.19 + '@typescript-eslint/eslint-plugin': 5.12.1_aa3af6382115a42a71cc388b7b2c30b3 + '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5 c8: 7.11.0 check-dts: 0.6.6_typescript@4.5.5 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.8.0 - eslint-config-standard: 16.0.3_3fa03ca42f6626059a4867a76f65b153 - eslint-plugin-import: 2.25.4_eslint@8.8.0 - eslint-plugin-node: 11.1.0_eslint@8.8.0 + eslint: 8.9.0 + eslint-config-standard: 16.0.3_3dc95bbf26a1efd07c4db3385b7c7e02 + eslint-plugin-import: 2.25.4_eslint@8.9.0 + eslint-plugin-node: 11.1.0_eslint@8.9.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.8.0 - fs-extra: 10.0.0 + eslint-plugin-promise: 6.0.0_eslint@8.9.0 + fs-extra: 10.0.1 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.0 simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.5.0_99ae9436e134a034c8d45fdd98ebbf22 + ts-node: 10.5.0_003c8a6da24af261bf8b8ce51aec1adf typescript: 4.5.5 uvu: 0.5.3 @@ -82,18 +82,18 @@ packages: '@cspotcode/source-map-consumer': 0.8.0 dev: true - /@eslint/eslintrc/1.0.5: - resolution: {integrity: sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==} + /@eslint/eslintrc/1.1.0: + resolution: {integrity: sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.3 - espree: 9.3.0 + espree: 9.3.1 globals: 13.12.1 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 4.1.0 - minimatch: 3.0.5 + minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color @@ -105,7 +105,7 @@ packages: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 - minimatch: 3.0.5 + minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_78f08d0053c073645909d39bd7f54d5e: + /@logux/eslint-config/46.1.1_cd7f45d1cba51a736d2df3e99513a1a4: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.8.0 - eslint-config-standard: 16.0.3_3fa03ca42f6626059a4867a76f65b153 - eslint-plugin-import: 2.25.4_eslint@8.8.0 - eslint-plugin-node: 11.1.0_eslint@8.8.0 + eslint: 8.9.0 + eslint-config-standard: 16.0.3_3dc95bbf26a1efd07c4db3385b7c7e02 + eslint-plugin-import: 2.25.4_eslint@8.9.0 + eslint-plugin-node: 11.1.0_eslint@8.9.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.8.0 + eslint-plugin-promise: 6.0.0_eslint@8.9.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,8 +165,8 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.21 - nanoid: 3.2.0 + esbuild: 0.14.23 + nanoid: 3.3.1 size-limit: 7.0.8 dev: true @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.16 + '@types/node': 17.0.19 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +224,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.16: - resolution: {integrity: sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==} + /@types/node/17.0.19: + resolution: {integrity: sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.11.0_de5a1ddccd75ca1e499b8b8491d3dcba: - resolution: {integrity: sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==} + /@typescript-eslint/eslint-plugin/5.12.1_aa3af6382115a42a71cc388b7b2c30b3: + resolution: {integrity: sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,12 +243,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/type-utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.12.1 + '@typescript-eslint/type-utils': 5.12.1_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.12.1_eslint@8.9.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.8.0 + eslint: 8.9.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -259,8 +259,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.11.0_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==} + /@typescript-eslint/parser/5.12.1_eslint@8.9.0+typescript@4.5.5: + resolution: {integrity: sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.12.1 + '@typescript-eslint/types': 5.12.1 + '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5 debug: 4.3.3 - eslint: 8.8.0 + eslint: 8.9.0 typescript: 4.5.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.11.0: - resolution: {integrity: sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==} + /@typescript-eslint/scope-manager/5.12.1: + resolution: {integrity: sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/visitor-keys': 5.11.0 + '@typescript-eslint/types': 5.12.1 + '@typescript-eslint/visitor-keys': 5.12.1 dev: true - /@typescript-eslint/type-utils/5.11.0_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==} + /@typescript-eslint/type-utils/5.12.1_eslint@8.9.0+typescript@4.5.5: + resolution: {integrity: sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.12.1_eslint@8.9.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.8.0 + eslint: 8.9.0 tsutils: 3.21.0_typescript@4.5.5 typescript: 4.5.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.11.0: - resolution: {integrity: sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==} + /@typescript-eslint/types/5.12.1: + resolution: {integrity: sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.11.0_typescript@4.5.5: - resolution: {integrity: sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==} + /@typescript-eslint/typescript-estree/5.12.1_typescript@4.5.5: + resolution: {integrity: sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,8 +320,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/visitor-keys': 5.11.0 + '@typescript-eslint/types': 5.12.1 + '@typescript-eslint/visitor-keys': 5.12.1 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -332,30 +332,30 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.11.0_eslint@8.8.0+typescript@4.5.5: - resolution: {integrity: sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==} + /@typescript-eslint/utils/5.12.1_eslint@8.9.0+typescript@4.5.5: + resolution: {integrity: sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 - eslint: 8.8.0 + '@typescript-eslint/scope-manager': 5.12.1 + '@typescript-eslint/types': 5.12.1 + '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5 + eslint: 8.9.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.8.0 + eslint-utils: 3.0.0_eslint@8.9.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.11.0: - resolution: {integrity: sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==} + /@typescript-eslint/visitor-keys/5.12.1: + resolution: {integrity: sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.11.0 - eslint-visitor-keys: 3.2.0 + '@typescript-eslint/types': 5.12.1 + eslint-visitor-keys: 3.3.0 dev: true /acorn-jsx/5.3.2_acorn@8.7.0: @@ -707,8 +707,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.21: - resolution: {integrity: sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==} + /esbuild-android-arm64/0.14.23: + resolution: {integrity: sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -716,8 +716,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.21: - resolution: {integrity: sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==} + /esbuild-darwin-64/0.14.23: + resolution: {integrity: sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -725,8 +725,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.21: - resolution: {integrity: sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==} + /esbuild-darwin-arm64/0.14.23: + resolution: {integrity: sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -734,8 +734,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.21: - resolution: {integrity: sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==} + /esbuild-freebsd-64/0.14.23: + resolution: {integrity: sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -743,8 +743,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.21: - resolution: {integrity: sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==} + /esbuild-freebsd-arm64/0.14.23: + resolution: {integrity: sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -752,8 +752,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.21: - resolution: {integrity: sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==} + /esbuild-linux-32/0.14.23: + resolution: {integrity: sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -761,8 +761,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.21: - resolution: {integrity: sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==} + /esbuild-linux-64/0.14.23: + resolution: {integrity: sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -770,8 +770,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.21: - resolution: {integrity: sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==} + /esbuild-linux-arm/0.14.23: + resolution: {integrity: sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -779,8 +779,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.21: - resolution: {integrity: sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==} + /esbuild-linux-arm64/0.14.23: + resolution: {integrity: sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -788,8 +788,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.21: - resolution: {integrity: sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==} + /esbuild-linux-mips64le/0.14.23: + resolution: {integrity: sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -797,8 +797,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.21: - resolution: {integrity: sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==} + /esbuild-linux-ppc64le/0.14.23: + resolution: {integrity: sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -806,8 +806,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.21: - resolution: {integrity: sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==} + /esbuild-linux-riscv64/0.14.23: + resolution: {integrity: sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -815,8 +815,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.21: - resolution: {integrity: sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==} + /esbuild-linux-s390x/0.14.23: + resolution: {integrity: sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -824,8 +824,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.21: - resolution: {integrity: sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==} + /esbuild-netbsd-64/0.14.23: + resolution: {integrity: sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -833,8 +833,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.21: - resolution: {integrity: sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==} + /esbuild-openbsd-64/0.14.23: + resolution: {integrity: sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -842,8 +842,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.21: - resolution: {integrity: sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==} + /esbuild-sunos-64/0.14.23: + resolution: {integrity: sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -851,8 +851,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.21: - resolution: {integrity: sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==} + /esbuild-windows-32/0.14.23: + resolution: {integrity: sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -860,8 +860,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.21: - resolution: {integrity: sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==} + /esbuild-windows-64/0.14.23: + resolution: {integrity: sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -869,8 +869,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.21: - resolution: {integrity: sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==} + /esbuild-windows-arm64/0.14.23: + resolution: {integrity: sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -878,31 +878,31 @@ packages: dev: true optional: true - /esbuild/0.14.21: - resolution: {integrity: sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==} + /esbuild/0.14.23: + resolution: {integrity: sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.21 - esbuild-darwin-64: 0.14.21 - esbuild-darwin-arm64: 0.14.21 - esbuild-freebsd-64: 0.14.21 - esbuild-freebsd-arm64: 0.14.21 - esbuild-linux-32: 0.14.21 - esbuild-linux-64: 0.14.21 - esbuild-linux-arm: 0.14.21 - esbuild-linux-arm64: 0.14.21 - esbuild-linux-mips64le: 0.14.21 - esbuild-linux-ppc64le: 0.14.21 - esbuild-linux-riscv64: 0.14.21 - esbuild-linux-s390x: 0.14.21 - esbuild-netbsd-64: 0.14.21 - esbuild-openbsd-64: 0.14.21 - esbuild-sunos-64: 0.14.21 - esbuild-windows-32: 0.14.21 - esbuild-windows-64: 0.14.21 - esbuild-windows-arm64: 0.14.21 + esbuild-android-arm64: 0.14.23 + esbuild-darwin-64: 0.14.23 + esbuild-darwin-arm64: 0.14.23 + esbuild-freebsd-64: 0.14.23 + esbuild-freebsd-arm64: 0.14.23 + esbuild-linux-32: 0.14.23 + esbuild-linux-64: 0.14.23 + esbuild-linux-arm: 0.14.23 + esbuild-linux-arm64: 0.14.23 + esbuild-linux-mips64le: 0.14.23 + esbuild-linux-ppc64le: 0.14.23 + esbuild-linux-riscv64: 0.14.23 + esbuild-linux-s390x: 0.14.23 + esbuild-netbsd-64: 0.14.23 + esbuild-openbsd-64: 0.14.23 + esbuild-sunos-64: 0.14.23 + esbuild-windows-32: 0.14.23 + esbuild-windows-64: 0.14.23 + esbuild-windows-arm64: 0.14.23 dev: true /escalade/3.1.1: @@ -915,7 +915,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_3fa03ca42f6626059a4867a76f65b153: + /eslint-config-standard/16.0.3_3dc95bbf26a1efd07c4db3385b7c7e02: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -923,10 +923,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.8.0 - eslint-plugin-import: 2.25.4_eslint@8.8.0 - eslint-plugin-node: 11.1.0_eslint@8.8.0 - eslint-plugin-promise: 6.0.0_eslint@8.8.0 + eslint: 8.9.0 + eslint-plugin-import: 2.25.4_eslint@8.9.0 + eslint-plugin-node: 11.1.0_eslint@8.9.0 + eslint-plugin-promise: 6.0.0_eslint@8.9.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -944,18 +944,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.8.0: + /eslint-plugin-es/3.0.1_eslint@8.9.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.8.0 + eslint: 8.9.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.8.0: + /eslint-plugin-import/2.25.4_eslint@8.9.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -965,29 +965,29 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.8.0 + eslint: 8.9.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 - minimatch: 3.0.5 + minimatch: 3.1.2 object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.8.0: + /eslint-plugin-node/11.1.0_eslint@8.9.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.8.0 - eslint-plugin-es: 3.0.1_eslint@8.8.0 + eslint: 8.9.0 + eslint-plugin-es: 3.0.1_eslint@8.9.0 eslint-utils: 2.1.0 ignore: 5.2.0 - minimatch: 3.0.5 + minimatch: 3.1.2 resolve: 1.22.0 semver: 6.3.0 dev: true @@ -999,13 +999,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.8.0: + /eslint-plugin-promise/6.0.0_eslint@8.9.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.8.0 + eslint: 8.9.0 dev: true /eslint-scope/5.1.1: @@ -1016,8 +1016,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.1.0: - resolution: {integrity: sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==} + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -1031,13 +1031,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.8.0: + /eslint-utils/3.0.0_eslint@8.9.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.8.0 + eslint: 8.9.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1051,17 +1051,17 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.2.0: - resolution: {integrity: sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==} + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.8.0: - resolution: {integrity: sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==} + /eslint/8.9.0: + resolution: {integrity: sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.0.5 + '@eslint/eslintrc': 1.1.0 '@humanwhocodes/config-array': 0.9.3 ajv: 6.12.6 chalk: 4.1.2 @@ -1069,10 +1069,10 @@ packages: debug: 4.3.3 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.8.0 - eslint-visitor-keys: 3.2.0 - espree: 9.3.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.9.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -1088,7 +1088,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.5 + minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 regexpp: 3.2.0 @@ -1100,13 +1100,13 @@ packages: - supports-color dev: true - /espree/9.3.0: - resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==} + /espree/9.3.1: + resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.7.0 acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.2.0 + eslint-visitor-keys: 3.3.0 dev: true /esquery/1.4.0: @@ -1216,8 +1216,8 @@ packages: signal-exit: 3.0.7 dev: true - /fs-extra/10.0.0: - resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} + /fs-extra/10.0.1: + resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} engines: {node: '>=12'} dependencies: graceful-fs: 4.2.9 @@ -1286,7 +1286,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.5 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 dev: true @@ -1623,8 +1623,8 @@ packages: picomatch: 2.3.1 dev: true - /minimatch/3.0.5: - resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true @@ -1660,8 +1660,8 @@ packages: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} dev: true - /nanoid/3.2.0: - resolution: {integrity: sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==} + /nanoid/3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -2035,7 +2035,7 @@ packages: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.0 - minimatch: 3.0.5 + minimatch: 3.1.2 dev: true /text-table/0.2.0: @@ -2049,7 +2049,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.5.0_99ae9436e134a034c8d45fdd98ebbf22: + /ts-node/10.5.0_003c8a6da24af261bf8b8ce51aec1adf: resolution: {integrity: sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==} hasBin: true peerDependencies: @@ -2068,7 +2068,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.16 + '@types/node': 17.0.19 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 From db5b6e1c45b53145413ab3fa6e7b810b18f8d1c9 Mon Sep 17 00:00:00 2001 From: Masafumi Koba <473530+ybiquitous@users.noreply.github.com> Date: Fri, 25 Feb 2022 01:25:49 +0900 Subject: [PATCH 2496/3047] Fix `Node#warn()` return type --- lib/node.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node.d.ts b/lib/node.d.ts index ded2dc0c8..a97d43ae4 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -3,7 +3,7 @@ import Comment, { CommentProps } from './comment.js' import { Stringifier, Syntax } from './postcss.js' import AtRule, { AtRuleProps } from './at-rule.js' import Rule, { RuleProps } from './rule.js' -import { WarningOptions } from './warning.js' +import Warning, { WarningOptions } from './warning.js' import CssSyntaxError from './css-syntax-error.js' import Result from './result.js' import Input from './input.js' @@ -241,7 +241,7 @@ export default abstract class Node { * * @return Created warning object. */ - warn(result: Result, text: string, opts?: WarningOptions): void + warn(result: Result, text: string, opts?: WarningOptions): Warning /** * Removes the node from its parent and cleans the parent properties From c50b8a3d8f6e780c8dca4b0233cd47f1b52518ba Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 24 Feb 2022 22:58:32 +0100 Subject: [PATCH 2497/3047] Update dependencies --- package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index f2cae0583..c4d59bc47 100755 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.19", + "@types/node": "^17.0.21", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.1", "c8": "^7.11.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75f09c37f..182e92749 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,7 +4,7 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.19 + '@types/node': ^17.0.21 '@typescript-eslint/eslint-plugin': ^5.12.1 '@typescript-eslint/parser': ^5.12.1 c8: ^7.11.0 @@ -40,7 +40,7 @@ devDependencies: '@logux/eslint-config': 46.1.1_cd7f45d1cba51a736d2df3e99513a1a4 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.19 + '@types/node': 17.0.21 '@typescript-eslint/eslint-plugin': 5.12.1_aa3af6382115a42a71cc388b7b2c30b3 '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5 c8: 7.11.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.5.0_003c8a6da24af261bf8b8ce51aec1adf + ts-node: 10.5.0_99a448058f874aec2a353d0e974167cc typescript: 4.5.5 uvu: 0.5.3 @@ -99,8 +99,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.9.3: - resolution: {integrity: sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==} + /@humanwhocodes/config-array/0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -209,7 +209,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.19 + '@types/node': 17.0.21 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,8 +224,8 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.19: - resolution: {integrity: sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==} + /@types/node/17.0.21: + resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} dev: true /@types/unist/2.0.6: @@ -1062,7 +1062,7 @@ packages: hasBin: true dependencies: '@eslint/eslintrc': 1.1.0 - '@humanwhocodes/config-array': 0.9.3 + '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -2049,7 +2049,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.5.0_003c8a6da24af261bf8b8ce51aec1adf: + /ts-node/10.5.0_99a448058f874aec2a353d0e974167cc: resolution: {integrity: sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==} hasBin: true peerDependencies: @@ -2068,7 +2068,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.19 + '@types/node': 17.0.21 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 From d533f80b3cb4ef394cc7b523f675828ef7ec8466 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 24 Feb 2022 23:06:19 +0100 Subject: [PATCH 2498/3047] Release 8.4.7 version --- CHANGELOG.md | 4 ++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8e7fd3a6..9df7fbd6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.7 +* Fixed `Node#warn()` type (by Masafumi Koba). +* Fixed comment removal in values after `,`. + ## 8.4.6 * Prevented comment removing when it change meaning of CSS. * Fixed parsing space in last semicolon-less CSS Custom Properties. diff --git a/lib/processor.js b/lib/processor.js index 2a555ab18..ae3ba63a9 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.6' + this.version = '8.4.7' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index c4d59bc47..a1042bf25 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.6", + "version": "8.4.7", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From ae3343553c7cce9d1cc9f18a043304f12386e60d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 7 Mar 2022 02:38:04 +0100 Subject: [PATCH 2499/3047] Update dependencies --- package.json | 10 +- pnpm-lock.yaml | 366 +++++++++++++++++++++++++------------------------ 2 files changed, 193 insertions(+), 183 deletions(-) diff --git a/package.json b/package.json index a1042bf25..cf674f7ec 100755 --- a/package.json +++ b/package.json @@ -78,13 +78,13 @@ "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.12.1", - "@typescript-eslint/parser": "^5.12.1", + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.13.0", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.9.0", + "eslint": "^8.10.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", @@ -97,8 +97,8 @@ "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", - "ts-node": "^10.5.0", - "typescript": "^4.5.5", + "ts-node": "^10.7.0", + "typescript": "^4.6.2", "uvu": "^0.5.3" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 182e92749..7a0a31bab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,13 +5,13 @@ specifiers: '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 '@types/node': ^17.0.21 - '@typescript-eslint/eslint-plugin': ^5.12.1 - '@typescript-eslint/parser': ^5.12.1 + '@typescript-eslint/eslint-plugin': ^5.13.0 + '@typescript-eslint/parser': ^5.13.0 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.9.0 + eslint: ^8.10.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 @@ -27,8 +27,8 @@ specifiers: size-limit: ^7.0.8 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 - ts-node: ^10.5.0 - typescript: ^4.5.5 + ts-node: ^10.7.0 + typescript: ^4.6.2 uvu: ^0.5.3 dependencies: @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.1_cd7f45d1cba51a736d2df3e99513a1a4 + '@logux/eslint-config': 46.1.1_fed76b52b0dd812bd9a1a79af6605d30 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 '@types/node': 17.0.21 - '@typescript-eslint/eslint-plugin': 5.12.1_aa3af6382115a42a71cc388b7b2c30b3 - '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/eslint-plugin': 5.13.0_33fffc354ccfa91fbe7d1677b9395a0a + '@typescript-eslint/parser': 5.13.0_eslint@8.10.0+typescript@4.6.2 c8: 7.11.0 - check-dts: 0.6.6_typescript@4.5.5 + check-dts: 0.6.6_typescript@4.6.2 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.9.0 - eslint-config-standard: 16.0.3_3dc95bbf26a1efd07c4db3385b7c7e02 - eslint-plugin-import: 2.25.4_eslint@8.9.0 - eslint-plugin-node: 11.1.0_eslint@8.9.0 + eslint: 8.10.0 + eslint-config-standard: 16.0.3_8f50d7c1b6c57306b9c9430e4ac9cf2e + eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-node: 11.1.0_eslint@8.10.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.9.0 + eslint-plugin-promise: 6.0.0_eslint@8.10.0 fs-extra: 10.0.1 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -60,8 +60,8 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.5.0_99a448058f874aec2a353d0e974167cc - typescript: 4.5.5 + ts-node: 10.7.0_e79e62fe450383fd2d418267dc75e645 + typescript: 4.6.2 uvu: 0.5.3 packages: @@ -82,8 +82,8 @@ packages: '@cspotcode/source-map-consumer': 0.8.0 dev: true - /@eslint/eslintrc/1.1.0: - resolution: {integrity: sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==} + /@eslint/eslintrc/1.2.0: + resolution: {integrity: sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_cd7f45d1cba51a736d2df3e99513a1a4: + /@logux/eslint-config/46.1.1_fed76b52b0dd812bd9a1a79af6605d30: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.9.0 - eslint-config-standard: 16.0.3_3dc95bbf26a1efd07c4db3385b7c7e02 - eslint-plugin-import: 2.25.4_eslint@8.9.0 - eslint-plugin-node: 11.1.0_eslint@8.9.0 + eslint: 8.10.0 + eslint-config-standard: 16.0.3_8f50d7c1b6c57306b9c9430e4ac9cf2e + eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-node: 11.1.0_eslint@8.10.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.9.0 + eslint-plugin-promise: 6.0.0_eslint@8.10.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.23 + esbuild: 0.14.25 nanoid: 3.3.1 size-limit: 7.0.8 dev: true @@ -232,8 +232,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.12.1_aa3af6382115a42a71cc388b7b2c30b3: - resolution: {integrity: sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==} + /@typescript-eslint/eslint-plugin/5.13.0_33fffc354ccfa91fbe7d1677b9395a0a: + resolution: {integrity: sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,24 +243,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.12.1_eslint@8.9.0+typescript@4.5.5 - '@typescript-eslint/scope-manager': 5.12.1 - '@typescript-eslint/type-utils': 5.12.1_eslint@8.9.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.12.1_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.13.0_eslint@8.10.0+typescript@4.6.2 + '@typescript-eslint/scope-manager': 5.13.0 + '@typescript-eslint/type-utils': 5.13.0_eslint@8.10.0+typescript@4.6.2 + '@typescript-eslint/utils': 5.13.0_eslint@8.10.0+typescript@4.6.2 debug: 4.3.3 - eslint: 8.9.0 + eslint: 8.10.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 + tsutils: 3.21.0_typescript@4.6.2 + typescript: 4.6.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.12.1_eslint@8.9.0+typescript@4.5.5: - resolution: {integrity: sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==} + /@typescript-eslint/parser/5.13.0_eslint@8.10.0+typescript@4.6.2: + resolution: {integrity: sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.12.1 - '@typescript-eslint/types': 5.12.1 - '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5 + '@typescript-eslint/scope-manager': 5.13.0 + '@typescript-eslint/types': 5.13.0 + '@typescript-eslint/typescript-estree': 5.13.0_typescript@4.6.2 debug: 4.3.3 - eslint: 8.9.0 - typescript: 4.5.5 + eslint: 8.10.0 + typescript: 4.6.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.12.1: - resolution: {integrity: sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==} + /@typescript-eslint/scope-manager/5.13.0: + resolution: {integrity: sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.12.1 - '@typescript-eslint/visitor-keys': 5.12.1 + '@typescript-eslint/types': 5.13.0 + '@typescript-eslint/visitor-keys': 5.13.0 dev: true - /@typescript-eslint/type-utils/5.12.1_eslint@8.9.0+typescript@4.5.5: - resolution: {integrity: sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==} + /@typescript-eslint/type-utils/5.13.0_eslint@8.10.0+typescript@4.6.2: + resolution: {integrity: sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.12.1_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.13.0_eslint@8.10.0+typescript@4.6.2 debug: 4.3.3 - eslint: 8.9.0 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 + eslint: 8.10.0 + tsutils: 3.21.0_typescript@4.6.2 + typescript: 4.6.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.12.1: - resolution: {integrity: sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==} + /@typescript-eslint/types/5.13.0: + resolution: {integrity: sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.12.1_typescript@4.5.5: - resolution: {integrity: sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==} + /@typescript-eslint/typescript-estree/5.13.0_typescript@4.6.2: + resolution: {integrity: sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,41 +320,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.12.1 - '@typescript-eslint/visitor-keys': 5.12.1 + '@typescript-eslint/types': 5.13.0 + '@typescript-eslint/visitor-keys': 5.13.0 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 + tsutils: 3.21.0_typescript@4.6.2 + typescript: 4.6.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.12.1_eslint@8.9.0+typescript@4.5.5: - resolution: {integrity: sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==} + /@typescript-eslint/utils/5.13.0_eslint@8.10.0+typescript@4.6.2: + resolution: {integrity: sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.12.1 - '@typescript-eslint/types': 5.12.1 - '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5 - eslint: 8.9.0 + '@typescript-eslint/scope-manager': 5.13.0 + '@typescript-eslint/types': 5.13.0 + '@typescript-eslint/typescript-estree': 5.13.0_typescript@4.6.2 + eslint: 8.10.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.9.0 + eslint-utils: 3.0.0_eslint@8.10.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.12.1: - resolution: {integrity: sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==} + /@typescript-eslint/visitor-keys/5.13.0: + resolution: {integrity: sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.12.1 + '@typescript-eslint/types': 5.13.0 eslint-visitor-keys: 3.3.0 dev: true @@ -506,7 +506,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.6_typescript@4.5.5: + /check-dts/0.6.6_typescript@4.6.2: resolution: {integrity: sha512-2KzynoH1f8wVhZXUeqxeW2dOOFliktitYlyyOsLfZBk5K5n1U1B3uzJLFiJfwqlwoT1Ug7RNbi8xmMpUKKmwhg==} engines: {node: '>=12.16.0'} hasBin: true @@ -516,7 +516,7 @@ packages: fast-glob: 3.2.11 nanospinner: 0.6.0 picocolors: 1.0.0 - typescript: 4.5.5 + typescript: 4.6.2 vfile-location: 4.0.1 dev: true @@ -682,7 +682,7 @@ packages: get-intrinsic: 1.1.1 get-symbol-description: 1.0.0 has: 1.0.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 internal-slot: 1.0.3 is-callable: 1.2.4 is-negative-zero: 2.0.2 @@ -707,8 +707,17 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.23: - resolution: {integrity: sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==} + /esbuild-android-64/0.14.25: + resolution: {integrity: sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.25: + resolution: {integrity: sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -716,8 +725,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.23: - resolution: {integrity: sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==} + /esbuild-darwin-64/0.14.25: + resolution: {integrity: sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -725,8 +734,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.23: - resolution: {integrity: sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==} + /esbuild-darwin-arm64/0.14.25: + resolution: {integrity: sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -734,8 +743,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.23: - resolution: {integrity: sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==} + /esbuild-freebsd-64/0.14.25: + resolution: {integrity: sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -743,8 +752,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.23: - resolution: {integrity: sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==} + /esbuild-freebsd-arm64/0.14.25: + resolution: {integrity: sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -752,8 +761,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.23: - resolution: {integrity: sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==} + /esbuild-linux-32/0.14.25: + resolution: {integrity: sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -761,8 +770,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.23: - resolution: {integrity: sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==} + /esbuild-linux-64/0.14.25: + resolution: {integrity: sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -770,8 +779,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.23: - resolution: {integrity: sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==} + /esbuild-linux-arm/0.14.25: + resolution: {integrity: sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -779,8 +788,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.23: - resolution: {integrity: sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==} + /esbuild-linux-arm64/0.14.25: + resolution: {integrity: sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -788,8 +797,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.23: - resolution: {integrity: sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==} + /esbuild-linux-mips64le/0.14.25: + resolution: {integrity: sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -797,8 +806,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.23: - resolution: {integrity: sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==} + /esbuild-linux-ppc64le/0.14.25: + resolution: {integrity: sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -806,8 +815,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.23: - resolution: {integrity: sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==} + /esbuild-linux-riscv64/0.14.25: + resolution: {integrity: sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -815,8 +824,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.23: - resolution: {integrity: sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==} + /esbuild-linux-s390x/0.14.25: + resolution: {integrity: sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -824,8 +833,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.23: - resolution: {integrity: sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==} + /esbuild-netbsd-64/0.14.25: + resolution: {integrity: sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -833,8 +842,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.23: - resolution: {integrity: sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==} + /esbuild-openbsd-64/0.14.25: + resolution: {integrity: sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -842,8 +851,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.23: - resolution: {integrity: sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==} + /esbuild-sunos-64/0.14.25: + resolution: {integrity: sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -851,8 +860,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.23: - resolution: {integrity: sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==} + /esbuild-windows-32/0.14.25: + resolution: {integrity: sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -860,8 +869,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.23: - resolution: {integrity: sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==} + /esbuild-windows-64/0.14.25: + resolution: {integrity: sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -869,8 +878,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.23: - resolution: {integrity: sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==} + /esbuild-windows-arm64/0.14.25: + resolution: {integrity: sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -878,31 +887,32 @@ packages: dev: true optional: true - /esbuild/0.14.23: - resolution: {integrity: sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==} + /esbuild/0.14.25: + resolution: {integrity: sha512-4JHEIOMNFvK09ziiL+iVmldIhLbn49V4NAVo888tcGFKedEZY/Y8YapfStJ6zSE23tzYPKxqKwQBnQoIO0BI/Q==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.23 - esbuild-darwin-64: 0.14.23 - esbuild-darwin-arm64: 0.14.23 - esbuild-freebsd-64: 0.14.23 - esbuild-freebsd-arm64: 0.14.23 - esbuild-linux-32: 0.14.23 - esbuild-linux-64: 0.14.23 - esbuild-linux-arm: 0.14.23 - esbuild-linux-arm64: 0.14.23 - esbuild-linux-mips64le: 0.14.23 - esbuild-linux-ppc64le: 0.14.23 - esbuild-linux-riscv64: 0.14.23 - esbuild-linux-s390x: 0.14.23 - esbuild-netbsd-64: 0.14.23 - esbuild-openbsd-64: 0.14.23 - esbuild-sunos-64: 0.14.23 - esbuild-windows-32: 0.14.23 - esbuild-windows-64: 0.14.23 - esbuild-windows-arm64: 0.14.23 + esbuild-android-64: 0.14.25 + esbuild-android-arm64: 0.14.25 + esbuild-darwin-64: 0.14.25 + esbuild-darwin-arm64: 0.14.25 + esbuild-freebsd-64: 0.14.25 + esbuild-freebsd-arm64: 0.14.25 + esbuild-linux-32: 0.14.25 + esbuild-linux-64: 0.14.25 + esbuild-linux-arm: 0.14.25 + esbuild-linux-arm64: 0.14.25 + esbuild-linux-mips64le: 0.14.25 + esbuild-linux-ppc64le: 0.14.25 + esbuild-linux-riscv64: 0.14.25 + esbuild-linux-s390x: 0.14.25 + esbuild-netbsd-64: 0.14.25 + esbuild-openbsd-64: 0.14.25 + esbuild-sunos-64: 0.14.25 + esbuild-windows-32: 0.14.25 + esbuild-windows-64: 0.14.25 + esbuild-windows-arm64: 0.14.25 dev: true /escalade/3.1.1: @@ -915,7 +925,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_3dc95bbf26a1efd07c4db3385b7c7e02: + /eslint-config-standard/16.0.3_8f50d7c1b6c57306b9c9430e4ac9cf2e: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -923,10 +933,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.9.0 - eslint-plugin-import: 2.25.4_eslint@8.9.0 - eslint-plugin-node: 11.1.0_eslint@8.9.0 - eslint-plugin-promise: 6.0.0_eslint@8.9.0 + eslint: 8.10.0 + eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-node: 11.1.0_eslint@8.10.0 + eslint-plugin-promise: 6.0.0_eslint@8.10.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -944,18 +954,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.9.0: + /eslint-plugin-es/3.0.1_eslint@8.10.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.9.0 + eslint: 8.10.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.9.0: + /eslint-plugin-import/2.25.4_eslint@8.10.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -965,7 +975,7 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.9.0 + eslint: 8.10.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 @@ -974,17 +984,17 @@ packages: minimatch: 3.1.2 object.values: 1.1.5 resolve: 1.22.0 - tsconfig-paths: 3.12.0 + tsconfig-paths: 3.13.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.9.0: + /eslint-plugin-node/11.1.0_eslint@8.10.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.9.0 - eslint-plugin-es: 3.0.1_eslint@8.9.0 + eslint: 8.10.0 + eslint-plugin-es: 3.0.1_eslint@8.10.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -999,13 +1009,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.9.0: + /eslint-plugin-promise/6.0.0_eslint@8.10.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.9.0 + eslint: 8.10.0 dev: true /eslint-scope/5.1.1: @@ -1031,13 +1041,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.9.0: + /eslint-utils/3.0.0_eslint@8.10.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.9.0 + eslint: 8.10.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1056,12 +1066,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.9.0: - resolution: {integrity: sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==} + /eslint/8.10.0: + resolution: {integrity: sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.1.0 + '@eslint/eslintrc': 1.2.0 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -1070,7 +1080,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.9.0 + eslint-utils: 3.0.0_eslint@8.10.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -1255,7 +1265,7 @@ packages: dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /get-symbol-description/1.0.0: @@ -1323,8 +1333,8 @@ packages: engines: {node: '>=8'} dev: true - /has-symbols/1.0.2: - resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true @@ -1332,7 +1342,7 @@ packages: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /has/1.0.3: @@ -1490,7 +1500,7 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /is-weakref/1.0.2: @@ -1706,7 +1716,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -2049,8 +2059,8 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.5.0_99a448058f874aec2a353d0e974167cc: - resolution: {integrity: sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==} + /ts-node/10.7.0_e79e62fe450383fd2d418267dc75e645: + resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -2075,13 +2085,13 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.5.5 + typescript: 4.6.2 v8-compile-cache-lib: 3.0.0 yn: 3.1.1 dev: true - /tsconfig-paths/3.12.0: - resolution: {integrity: sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==} + /tsconfig-paths/3.13.0: + resolution: {integrity: sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw==} dependencies: '@types/json5': 0.0.29 json5: 1.0.1 @@ -2093,14 +2103,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.5.5: + /tsutils/3.21.0_typescript@4.6.2: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.5.5 + typescript: 4.6.2 dev: true /type-check/0.4.0: @@ -2115,8 +2125,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.5.5: - resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} + /typescript/4.6.2: + resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2126,12 +2136,12 @@ packages: dependencies: function-bind: 1.1.1 has-bigints: 1.0.1 - has-symbols: 1.0.2 + has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true - /unist-util-stringify-position/3.0.0: - resolution: {integrity: sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==} + /unist-util-stringify-position/3.0.2: + resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} dependencies: '@types/unist': 2.0.6 dev: true @@ -2179,23 +2189,23 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.3.0 + vfile: 5.3.2 dev: true - /vfile-message/3.1.0: - resolution: {integrity: sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g==} + /vfile-message/3.1.2: + resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} dependencies: '@types/unist': 2.0.6 - unist-util-stringify-position: 3.0.0 + unist-util-stringify-position: 3.0.2 dev: true - /vfile/5.3.0: - resolution: {integrity: sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ==} + /vfile/5.3.2: + resolution: {integrity: sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==} dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.0 - vfile-message: 3.1.0 + unist-util-stringify-position: 3.0.2 + vfile-message: 3.1.2 dev: true /which-boxed-primitive/1.0.2: From be364fd8387d0f4f61bed6574e208be30f8929ce Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 7 Mar 2022 03:08:38 +0100 Subject: [PATCH 2500/3047] Fix end position in empty Custom Properties --- lib/parser.js | 13 ++++++++++++- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index 54d6007ff..752d26431 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -12,6 +12,14 @@ const SAFE_COMMENT_NEIGHBOR = { space: true } +function findLastWithPosition(tokens) { + for (let i = tokens.length - 1; i >= 0; i--) { + let token = tokens[i] + let pos = token[3] || token[2] + if (pos) return pos + } +} + class Parser { constructor(input) { this.input = input @@ -177,7 +185,10 @@ class Parser { this.semicolon = true tokens.pop() } - node.source.end = this.getPosition(last[3] || last[2]) + + node.source.end = this.getPosition( + last[3] || last[2] || findLastWithPosition(tokens) + ) while (tokens[0][0] !== 'word') { if (tokens.length === 1) this.unknownWord(tokens) diff --git a/package.json b/package.json index cf674f7ec..17a2945dc 100755 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "fs-extra": "^10.0.1", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", - "postcss-parser-tests": "^8.5.0", + "postcss-parser-tests": "^8.5.1", "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a0a31bab..808009ffe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ specifiers: nanoid: ^3.3.1 nanospy: ^0.5.0 picocolors: ^1.0.0 - postcss-parser-tests: ^8.5.0 + postcss-parser-tests: ^8.5.1 simple-git-hooks: ^2.7.0 size-limit: ^7.0.8 source-map-js: ^1.0.2 @@ -56,7 +56,7 @@ devDependencies: fs-extra: 10.0.1 nanodelay: 1.0.8 nanospy: 0.5.0 - postcss-parser-tests: 8.5.0 + postcss-parser-tests: 8.5.1 simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 @@ -1824,8 +1824,8 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss-parser-tests/8.5.0: - resolution: {integrity: sha512-ORK9KdLgDZf/klNO3u1i6GRBQo+vPsJUjOARETXgVcE872/I7OT8A2gMB+8XPZT2nO0DKVXIaCZJESlT03BI3g==} + /postcss-parser-tests/8.5.1: + resolution: {integrity: sha512-gENBfgBSdVl3Bu+6iCcgGb1W0YrCizwBgrbnG8UW9AyB46dHuUxqG92Q8Ug5XkesXdpSoRahdNvSKwhipbNV1g==} dependencies: picocolors: 1.0.0 dev: true From 6f23795b5cee15dcde5eb6433ae691dfec532ccc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 7 Mar 2022 03:09:31 +0100 Subject: [PATCH 2501/3047] Release 8.4.8 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9df7fbd6b..1bee46f57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.8 +* Fixed end position in empty Custom Properties. + ## 8.4.7 * Fixed `Node#warn()` type (by Masafumi Koba). * Fixed comment removal in values after `,`. diff --git a/lib/processor.js b/lib/processor.js index ae3ba63a9..dc37b8f35 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.7' + this.version = '8.4.8' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 17a2945dc..deebacd17 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.7", + "version": "8.4.8", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From a9c4e9db4a1f1916886df5d946719d93cc867188 Mon Sep 17 00:00:00 2001 From: Chell Date: Sun, 13 Mar 2022 11:32:49 +0800 Subject: [PATCH 2502/3047] Add instructions for CSS-in-JS & Parcel --- docs/README-cn.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/docs/README-cn.md b/docs/README-cn.md index a7cfcd503..f5a4e2ba0 100644 --- a/docs/README-cn.md +++ b/docs/README-cn.md @@ -164,6 +164,55 @@ PostCSS 可以转化样式到任意语法,不仅仅是 CSS。 [选择插件]: http://postcss.parts +### CSS-in-JS + +同时使用 PostCSS 与 CSS-in-JS 的最好方式是 [`astroturf`](https://github.com/4Catalyzer/astroturf),将它的 loader 添加到 `webpack.config.js` 中: + +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: ['style-loader', 'postcss-loader'], + }, + { + test: /\.jsx?$/, + use: ['babel-loader', 'astroturf/loader'], + } + ] + } +} +``` + +然后创建 `postcss.config.js`: + +```js +module.exports = { + plugins: [ + require('autoprefixer'), + require('postcss-nested') + ] +} +``` + +### Parcel + +[Parcel](https://parceljs.org/) 有内建的 PostCSS 支持,并已经使用 Autoprefixer 和 cssnano。如果你想更换插件,请在项目根目录中创建 `postcss.config.js`: + +```js +module.exports = { + plugins: [ + require('autoprefixer'), + require('postcss-nested') + ] +} +``` + +Parcel 甚至会自动地帮你安装这些插件。 + +> 请注意[第 1 版中存在的几个问题](https://github.com/parcel-bundler/parcel/labels/CSS%20Preprocessing),第 2 版通过 [issue #2157](https://github.com/parcel-bundler/parcel/projects/5) 解决了这些问题。 + ### Webpack 在 `webpack.config.js` 里使用 [`postcss-loader`] : From 5634a8b6aefbfd06979f86202b6aab647f9bd525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar=20Rubio?= Date: Tue, 15 Mar 2022 18:34:58 +0100 Subject: [PATCH 2503/3047] Update `funding` key in package.json --- package.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index deebacd17..84d3606b1 100755 --- a/package.json +++ b/package.json @@ -57,10 +57,16 @@ "test": "c8 pnpm unit && eslint . && node ./test/version.js && check-dts && node ./test/integration.js && size-limit", "unit": "uvu -r ts-node/register/transpile-only test \"\\.test\\.(ts|js)$\"" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "author": "Andrey Sitnik ", "license": "MIT", "homepage": "https://postcss.org/", From 8958f1d79fc893b95ab6ce9265d90d4a5d07ce2f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 15 Mar 2022 19:05:18 +0100 Subject: [PATCH 2504/3047] Update dependencies --- package.json | 6 +- pnpm-lock.yaml | 291 ++++++++++++++++++++++++------------------------- 2 files changed, 146 insertions(+), 151 deletions(-) diff --git a/package.json b/package.json index 84d3606b1..e728fe133 100755 --- a/package.json +++ b/package.json @@ -84,13 +84,13 @@ "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.13.0", + "@typescript-eslint/eslint-plugin": "^5.15.0", + "@typescript-eslint/parser": "^5.15.0", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.10.0", + "eslint": "^8.11.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 808009ffe..0d6db1210 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,13 +5,13 @@ specifiers: '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 '@types/node': ^17.0.21 - '@typescript-eslint/eslint-plugin': ^5.13.0 - '@typescript-eslint/parser': ^5.13.0 + '@typescript-eslint/eslint-plugin': ^5.15.0 + '@typescript-eslint/parser': ^5.15.0 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.10.0 + eslint: ^8.11.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.1_fed76b52b0dd812bd9a1a79af6605d30 + '@logux/eslint-config': 46.1.1_d13720dc45b71e2dbadfcd587b45d7af '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 '@types/node': 17.0.21 - '@typescript-eslint/eslint-plugin': 5.13.0_33fffc354ccfa91fbe7d1677b9395a0a - '@typescript-eslint/parser': 5.13.0_eslint@8.10.0+typescript@4.6.2 + '@typescript-eslint/eslint-plugin': 5.15.0_f2c49ce7d0e93ebcfdb4b7d25b131b28 + '@typescript-eslint/parser': 5.15.0_eslint@8.11.0+typescript@4.6.2 c8: 7.11.0 check-dts: 0.6.6_typescript@4.6.2 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.10.0 - eslint-config-standard: 16.0.3_8f50d7c1b6c57306b9c9430e4ac9cf2e - eslint-plugin-import: 2.25.4_eslint@8.10.0 - eslint-plugin-node: 11.1.0_eslint@8.10.0 + eslint: 8.11.0 + eslint-config-standard: 16.0.3_7dc77a0be22b3241d34262bf15f20ff9 + eslint-plugin-import: 2.25.4_eslint@8.11.0 + eslint-plugin-node: 11.1.0_eslint@8.11.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.10.0 + eslint-plugin-promise: 6.0.0_eslint@8.11.0 fs-extra: 10.0.1 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -82,15 +82,15 @@ packages: '@cspotcode/source-map-consumer': 0.8.0 dev: true - /@eslint/eslintrc/1.2.0: - resolution: {integrity: sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==} + /@eslint/eslintrc/1.2.1: + resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.3 espree: 9.3.1 globals: 13.12.1 - ignore: 4.0.6 + ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_fed76b52b0dd812bd9a1a79af6605d30: + /@logux/eslint-config/46.1.1_d13720dc45b71e2dbadfcd587b45d7af: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.10.0 - eslint-config-standard: 16.0.3_8f50d7c1b6c57306b9c9430e4ac9cf2e - eslint-plugin-import: 2.25.4_eslint@8.10.0 - eslint-plugin-node: 11.1.0_eslint@8.10.0 + eslint: 8.11.0 + eslint-config-standard: 16.0.3_7dc77a0be22b3241d34262bf15f20ff9 + eslint-plugin-import: 2.25.4_eslint@8.11.0 + eslint-plugin-node: 11.1.0_eslint@8.11.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.10.0 + eslint-plugin-promise: 6.0.0_eslint@8.11.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.25 + esbuild: 0.14.27 nanoid: 3.3.1 size-limit: 7.0.8 dev: true @@ -232,8 +232,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.13.0_33fffc354ccfa91fbe7d1677b9395a0a: - resolution: {integrity: sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==} + /@typescript-eslint/eslint-plugin/5.15.0_f2c49ce7d0e93ebcfdb4b7d25b131b28: + resolution: {integrity: sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,12 +243,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.13.0_eslint@8.10.0+typescript@4.6.2 - '@typescript-eslint/scope-manager': 5.13.0 - '@typescript-eslint/type-utils': 5.13.0_eslint@8.10.0+typescript@4.6.2 - '@typescript-eslint/utils': 5.13.0_eslint@8.10.0+typescript@4.6.2 + '@typescript-eslint/parser': 5.15.0_eslint@8.11.0+typescript@4.6.2 + '@typescript-eslint/scope-manager': 5.15.0 + '@typescript-eslint/type-utils': 5.15.0_eslint@8.11.0+typescript@4.6.2 + '@typescript-eslint/utils': 5.15.0_eslint@8.11.0+typescript@4.6.2 debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -259,8 +259,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.13.0_eslint@8.10.0+typescript@4.6.2: - resolution: {integrity: sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==} + /@typescript-eslint/parser/5.15.0_eslint@8.11.0+typescript@4.6.2: + resolution: {integrity: sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.13.0 - '@typescript-eslint/types': 5.13.0 - '@typescript-eslint/typescript-estree': 5.13.0_typescript@4.6.2 + '@typescript-eslint/scope-manager': 5.15.0 + '@typescript-eslint/types': 5.15.0 + '@typescript-eslint/typescript-estree': 5.15.0_typescript@4.6.2 debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 typescript: 4.6.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.13.0: - resolution: {integrity: sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==} + /@typescript-eslint/scope-manager/5.15.0: + resolution: {integrity: sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.13.0 - '@typescript-eslint/visitor-keys': 5.13.0 + '@typescript-eslint/types': 5.15.0 + '@typescript-eslint/visitor-keys': 5.15.0 dev: true - /@typescript-eslint/type-utils/5.13.0_eslint@8.10.0+typescript@4.6.2: - resolution: {integrity: sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==} + /@typescript-eslint/type-utils/5.15.0_eslint@8.11.0+typescript@4.6.2: + resolution: {integrity: sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.13.0_eslint@8.10.0+typescript@4.6.2 + '@typescript-eslint/utils': 5.15.0_eslint@8.11.0+typescript@4.6.2 debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 tsutils: 3.21.0_typescript@4.6.2 typescript: 4.6.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.13.0: - resolution: {integrity: sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==} + /@typescript-eslint/types/5.15.0: + resolution: {integrity: sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.13.0_typescript@4.6.2: - resolution: {integrity: sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==} + /@typescript-eslint/typescript-estree/5.15.0_typescript@4.6.2: + resolution: {integrity: sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,8 +320,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.13.0 - '@typescript-eslint/visitor-keys': 5.13.0 + '@typescript-eslint/types': 5.15.0 + '@typescript-eslint/visitor-keys': 5.15.0 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -332,29 +332,29 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.13.0_eslint@8.10.0+typescript@4.6.2: - resolution: {integrity: sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==} + /@typescript-eslint/utils/5.15.0_eslint@8.11.0+typescript@4.6.2: + resolution: {integrity: sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.13.0 - '@typescript-eslint/types': 5.13.0 - '@typescript-eslint/typescript-estree': 5.13.0_typescript@4.6.2 - eslint: 8.10.0 + '@typescript-eslint/scope-manager': 5.15.0 + '@typescript-eslint/types': 5.15.0 + '@typescript-eslint/typescript-estree': 5.15.0_typescript@4.6.2 + eslint: 8.11.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.10.0 + eslint-utils: 3.0.0_eslint@8.11.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.13.0: - resolution: {integrity: sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==} + /@typescript-eslint/visitor-keys/5.15.0: + resolution: {integrity: sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.13.0 + '@typescript-eslint/types': 5.15.0 eslint-visitor-keys: 3.3.0 dev: true @@ -707,8 +707,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.25: - resolution: {integrity: sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ==} + /esbuild-android-64/0.14.27: + resolution: {integrity: sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -716,8 +716,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.25: - resolution: {integrity: sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw==} + /esbuild-android-arm64/0.14.27: + resolution: {integrity: sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -725,8 +725,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.25: - resolution: {integrity: sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA==} + /esbuild-darwin-64/0.14.27: + resolution: {integrity: sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -734,8 +734,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.25: - resolution: {integrity: sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw==} + /esbuild-darwin-arm64/0.14.27: + resolution: {integrity: sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -743,8 +743,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.25: - resolution: {integrity: sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ==} + /esbuild-freebsd-64/0.14.27: + resolution: {integrity: sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -752,8 +752,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.25: - resolution: {integrity: sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug==} + /esbuild-freebsd-arm64/0.14.27: + resolution: {integrity: sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -761,8 +761,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.25: - resolution: {integrity: sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw==} + /esbuild-linux-32/0.14.27: + resolution: {integrity: sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -770,8 +770,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.25: - resolution: {integrity: sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug==} + /esbuild-linux-64/0.14.27: + resolution: {integrity: sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -779,8 +779,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.25: - resolution: {integrity: sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw==} + /esbuild-linux-arm/0.14.27: + resolution: {integrity: sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -788,8 +788,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.25: - resolution: {integrity: sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw==} + /esbuild-linux-arm64/0.14.27: + resolution: {integrity: sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -797,8 +797,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.25: - resolution: {integrity: sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ==} + /esbuild-linux-mips64le/0.14.27: + resolution: {integrity: sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -806,8 +806,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.25: - resolution: {integrity: sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw==} + /esbuild-linux-ppc64le/0.14.27: + resolution: {integrity: sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -815,8 +815,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.25: - resolution: {integrity: sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w==} + /esbuild-linux-riscv64/0.14.27: + resolution: {integrity: sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -824,8 +824,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.25: - resolution: {integrity: sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ==} + /esbuild-linux-s390x/0.14.27: + resolution: {integrity: sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -833,8 +833,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.25: - resolution: {integrity: sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA==} + /esbuild-netbsd-64/0.14.27: + resolution: {integrity: sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -842,8 +842,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.25: - resolution: {integrity: sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A==} + /esbuild-openbsd-64/0.14.27: + resolution: {integrity: sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -851,8 +851,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.25: - resolution: {integrity: sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw==} + /esbuild-sunos-64/0.14.27: + resolution: {integrity: sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -860,8 +860,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.25: - resolution: {integrity: sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA==} + /esbuild-windows-32/0.14.27: + resolution: {integrity: sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -869,8 +869,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.25: - resolution: {integrity: sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA==} + /esbuild-windows-64/0.14.27: + resolution: {integrity: sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -878,8 +878,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.25: - resolution: {integrity: sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA==} + /esbuild-windows-arm64/0.14.27: + resolution: {integrity: sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -887,32 +887,32 @@ packages: dev: true optional: true - /esbuild/0.14.25: - resolution: {integrity: sha512-4JHEIOMNFvK09ziiL+iVmldIhLbn49V4NAVo888tcGFKedEZY/Y8YapfStJ6zSE23tzYPKxqKwQBnQoIO0BI/Q==} + /esbuild/0.14.27: + resolution: {integrity: sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.25 - esbuild-android-arm64: 0.14.25 - esbuild-darwin-64: 0.14.25 - esbuild-darwin-arm64: 0.14.25 - esbuild-freebsd-64: 0.14.25 - esbuild-freebsd-arm64: 0.14.25 - esbuild-linux-32: 0.14.25 - esbuild-linux-64: 0.14.25 - esbuild-linux-arm: 0.14.25 - esbuild-linux-arm64: 0.14.25 - esbuild-linux-mips64le: 0.14.25 - esbuild-linux-ppc64le: 0.14.25 - esbuild-linux-riscv64: 0.14.25 - esbuild-linux-s390x: 0.14.25 - esbuild-netbsd-64: 0.14.25 - esbuild-openbsd-64: 0.14.25 - esbuild-sunos-64: 0.14.25 - esbuild-windows-32: 0.14.25 - esbuild-windows-64: 0.14.25 - esbuild-windows-arm64: 0.14.25 + esbuild-android-64: 0.14.27 + esbuild-android-arm64: 0.14.27 + esbuild-darwin-64: 0.14.27 + esbuild-darwin-arm64: 0.14.27 + esbuild-freebsd-64: 0.14.27 + esbuild-freebsd-arm64: 0.14.27 + esbuild-linux-32: 0.14.27 + esbuild-linux-64: 0.14.27 + esbuild-linux-arm: 0.14.27 + esbuild-linux-arm64: 0.14.27 + esbuild-linux-mips64le: 0.14.27 + esbuild-linux-ppc64le: 0.14.27 + esbuild-linux-riscv64: 0.14.27 + esbuild-linux-s390x: 0.14.27 + esbuild-netbsd-64: 0.14.27 + esbuild-openbsd-64: 0.14.27 + esbuild-sunos-64: 0.14.27 + esbuild-windows-32: 0.14.27 + esbuild-windows-64: 0.14.27 + esbuild-windows-arm64: 0.14.27 dev: true /escalade/3.1.1: @@ -925,7 +925,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_8f50d7c1b6c57306b9c9430e4ac9cf2e: + /eslint-config-standard/16.0.3_7dc77a0be22b3241d34262bf15f20ff9: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -933,10 +933,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.10.0 - eslint-plugin-import: 2.25.4_eslint@8.10.0 - eslint-plugin-node: 11.1.0_eslint@8.10.0 - eslint-plugin-promise: 6.0.0_eslint@8.10.0 + eslint: 8.11.0 + eslint-plugin-import: 2.25.4_eslint@8.11.0 + eslint-plugin-node: 11.1.0_eslint@8.11.0 + eslint-plugin-promise: 6.0.0_eslint@8.11.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -954,18 +954,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.10.0: + /eslint-plugin-es/3.0.1_eslint@8.11.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.10.0 + eslint: 8.11.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.10.0: + /eslint-plugin-import/2.25.4_eslint@8.11.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -975,7 +975,7 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.10.0 + eslint: 8.11.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 @@ -984,17 +984,17 @@ packages: minimatch: 3.1.2 object.values: 1.1.5 resolve: 1.22.0 - tsconfig-paths: 3.13.0 + tsconfig-paths: 3.14.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.10.0: + /eslint-plugin-node/11.1.0_eslint@8.11.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.10.0 - eslint-plugin-es: 3.0.1_eslint@8.10.0 + eslint: 8.11.0 + eslint-plugin-es: 3.0.1_eslint@8.11.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -1009,13 +1009,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.10.0: + /eslint-plugin-promise/6.0.0_eslint@8.11.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.10.0 + eslint: 8.11.0 dev: true /eslint-scope/5.1.1: @@ -1041,13 +1041,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.10.0: + /eslint-utils/3.0.0_eslint@8.11.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.10.0 + eslint: 8.11.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1066,12 +1066,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.10.0: - resolution: {integrity: sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==} + /eslint/8.11.0: + resolution: {integrity: sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.0 + '@eslint/eslintrc': 1.2.1 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -1080,7 +1080,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.10.0 + eslint-utils: 3.0.0_eslint@8.11.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -1356,11 +1356,6 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} @@ -2090,8 +2085,8 @@ packages: yn: 3.1.1 dev: true - /tsconfig-paths/3.13.0: - resolution: {integrity: sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw==} + /tsconfig-paths/3.14.0: + resolution: {integrity: sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==} dependencies: '@types/json5': 0.0.29 json5: 1.0.1 From 8ed21bed42816675527b47987fb303226717de9e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 15 Mar 2022 19:06:36 +0100 Subject: [PATCH 2505/3047] Release 8.4.9 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bee46f57..12967107c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.9 +* Fixed `package.funding` (by Álvaro Mondéjar). + ## 8.4.8 * Fixed end position in empty Custom Properties. diff --git a/lib/processor.js b/lib/processor.js index dc37b8f35..cf51df713 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.8' + this.version = '8.4.9' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index e728fe133..e35f8b27a 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.8", + "version": "8.4.9", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 16b1071e93590b1724f89f9b15e825a80d6cd39c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 15 Mar 2022 19:16:28 +0100 Subject: [PATCH 2506/3047] Fix funding URL --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e35f8b27a..1f6b359fe 100755 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "funding": [ { "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "url": "https://opencollective.com/postcss" }, { "type": "tidelift", From 3473443d193d49cff885e0d1a06d5dc5f95b9cdf Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 15 Mar 2022 19:17:23 +0100 Subject: [PATCH 2507/3047] Release 8.4.10 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12967107c..a213245fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.10 +* Fixed `package.funding` URL format. + ## 8.4.9 * Fixed `package.funding` (by Álvaro Mondéjar). diff --git a/lib/processor.js b/lib/processor.js index cf51df713..7a4065c00 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.9' + this.version = '8.4.10' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 1f6b359fe..b4413792e 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.9", + "version": "8.4.10", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 2e51425dd1d8c42ce6839f7a4e632197dcd7dba9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 15 Mar 2022 19:24:48 +0100 Subject: [PATCH 2508/3047] Fix Declaration.raws.value type --- lib/declaration.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index 4e92c901e..4a1fb1ec9 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -21,7 +21,7 @@ interface DeclarationRaws extends Record { /** * Declaration value with comments. */ - value: { + value?: { value: string raw: string } From c689c881209b198e8d41797b76697e5976fe8d52 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 15 Mar 2022 19:26:09 +0100 Subject: [PATCH 2509/3047] Release 8.4.11 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a213245fa..bfced9188 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.11 +* Fixed `Declaration#raws.value` type. + ## 8.4.10 * Fixed `package.funding` URL format. diff --git a/lib/processor.js b/lib/processor.js index 7a4065c00..01249a8c5 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.10' + this.version = '8.4.11' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index b4413792e..e4d33d30d 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.10", + "version": "8.4.11", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 61b14cb1617a771ccdb7736ffc907d65a4984ce6 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 16 Mar 2022 09:36:28 +0100 Subject: [PATCH 2510/3047] Revert funding URL format changes --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e4d33d30d..c0b122db7 100755 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "funding": [ { "type": "opencollective", - "url": "https://opencollective.com/postcss" + "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", From e5c10e009717c14c00b03867344eaefe960968da Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 16 Mar 2022 09:37:26 +0100 Subject: [PATCH 2511/3047] Release 8.4.12 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfced9188..1999a2f6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.12 +* Fixed `package.funding` to have same value between all PostCSS packages. + ## 8.4.11 * Fixed `Declaration#raws.value` type. diff --git a/lib/processor.js b/lib/processor.js index 01249a8c5..8bb95773a 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.11' + this.version = '8.4.12' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index c0b122db7..65906ad92 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.11", + "version": "8.4.12", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 1df90b451043514f398f4942aae3a08a7c8575e4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 30 Mar 2022 22:38:02 +0200 Subject: [PATCH 2512/3047] Update dependencies --- package.json | 12 +- pnpm-lock.yaml | 404 ++++++++++++++++++++++++------------------------- 2 files changed, 208 insertions(+), 208 deletions(-) diff --git a/package.json b/package.json index 65906ad92..e273173b6 100755 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.2", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -83,14 +83,14 @@ "@logux/eslint-config": "^46.1.1", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.15.0", - "@typescript-eslint/parser": "^5.15.0", + "@types/node": "^17.0.23", + "@typescript-eslint/eslint-plugin": "^5.17.0", + "@typescript-eslint/parser": "^5.17.0", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.11.0", + "eslint": "^8.12.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", @@ -104,7 +104,7 @@ "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", "ts-node": "^10.7.0", - "typescript": "^4.6.2", + "typescript": "^4.6.3", "uvu": "^0.5.3" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d6db1210..6905f3237 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,14 @@ specifiers: '@logux/eslint-config': ^46.1.1 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.21 - '@typescript-eslint/eslint-plugin': ^5.15.0 - '@typescript-eslint/parser': ^5.15.0 + '@types/node': ^17.0.23 + '@typescript-eslint/eslint-plugin': ^5.17.0 + '@typescript-eslint/parser': ^5.17.0 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.11.0 + eslint: ^8.12.0 eslint-config-standard: ^16.0.3 eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 @@ -19,7 +19,7 @@ specifiers: eslint-plugin-promise: ^6.0.0 fs-extra: ^10.0.1 nanodelay: ^1.0.8 - nanoid: ^3.3.1 + nanoid: ^3.3.2 nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 @@ -28,31 +28,31 @@ specifiers: source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.7.0 - typescript: ^4.6.2 + typescript: ^4.6.3 uvu: ^0.5.3 dependencies: - nanoid: 3.3.1 + nanoid: 3.3.2 picocolors: 1.0.0 source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.1_d13720dc45b71e2dbadfcd587b45d7af + '@logux/eslint-config': 46.1.1_2589d1b28a27e65d5cdc15ec636ae594 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.21 - '@typescript-eslint/eslint-plugin': 5.15.0_f2c49ce7d0e93ebcfdb4b7d25b131b28 - '@typescript-eslint/parser': 5.15.0_eslint@8.11.0+typescript@4.6.2 + '@types/node': 17.0.23 + '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 + '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 c8: 7.11.0 - check-dts: 0.6.6_typescript@4.6.2 + check-dts: 0.6.6_typescript@4.6.3 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.11.0 - eslint-config-standard: 16.0.3_7dc77a0be22b3241d34262bf15f20ff9 - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-node: 11.1.0_eslint@8.11.0 + eslint: 8.12.0 + eslint-config-standard: 16.0.3_146d38e67599a909c4e567a04144449b + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-node: 11.1.0_eslint@8.12.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.11.0 + eslint-plugin-promise: 6.0.0_eslint@8.12.0 fs-extra: 10.0.1 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -60,8 +60,8 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.7.0_e79e62fe450383fd2d418267dc75e645 - typescript: 4.6.2 + ts-node: 10.7.0_ee885bc7281b682b6adbed6ae09ee090 + typescript: 4.6.3 uvu: 0.5.3 packages: @@ -87,9 +87,9 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.3 + debug: 4.3.4 espree: 9.3.1 - globals: 13.12.1 + globals: 13.13.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -104,7 +104,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.3 + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -119,7 +119,7 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_d13720dc45b71e2dbadfcd587b45d7af: + /@logux/eslint-config/46.1.1_2589d1b28a27e65d5cdc15ec636ae594: resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} engines: {node: '>=10.0.0'} peerDependencies: @@ -130,12 +130,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.11.0 - eslint-config-standard: 16.0.3_7dc77a0be22b3241d34262bf15f20ff9 - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-node: 11.1.0_eslint@8.11.0 + eslint: 8.12.0 + eslint-config-standard: 16.0.3_146d38e67599a909c4e567a04144449b + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-node: 11.1.0_eslint@8.12.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.11.0 + eslint-plugin-promise: 6.0.0_eslint@8.12.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,8 +165,8 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.27 - nanoid: 3.3.1 + esbuild: 0.14.29 + nanoid: 3.3.2 size-limit: 7.0.8 dev: true @@ -209,31 +209,31 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.21 + '@types/node': 17.0.23 dev: true /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true - /@types/json-schema/7.0.9: - resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true /@types/json5/0.0.29: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.21: - resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} + /@types/node/17.0.23: + resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.15.0_f2c49ce7d0e93ebcfdb4b7d25b131b28: - resolution: {integrity: sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==} + /@typescript-eslint/eslint-plugin/5.17.0_689ff565753ecf7c3328c07fad067df5: + resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,24 +243,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.15.0_eslint@8.11.0+typescript@4.6.2 - '@typescript-eslint/scope-manager': 5.15.0 - '@typescript-eslint/type-utils': 5.15.0_eslint@8.11.0+typescript@4.6.2 - '@typescript-eslint/utils': 5.15.0_eslint@8.11.0+typescript@4.6.2 - debug: 4.3.3 - eslint: 8.11.0 + '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 + debug: 4.3.4 + eslint: 8.12.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.6.2 - typescript: 4.6.2 + tsutils: 3.21.0_typescript@4.6.3 + typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.15.0_eslint@8.11.0+typescript@4.6.2: - resolution: {integrity: sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==} + /@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.6.3: + resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.15.0 - '@typescript-eslint/types': 5.15.0 - '@typescript-eslint/typescript-estree': 5.15.0_typescript@4.6.2 - debug: 4.3.3 - eslint: 8.11.0 - typescript: 4.6.2 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 + debug: 4.3.4 + eslint: 8.12.0 + typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.15.0: - resolution: {integrity: sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==} + /@typescript-eslint/scope-manager/5.17.0: + resolution: {integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.15.0 - '@typescript-eslint/visitor-keys': 5.15.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/visitor-keys': 5.17.0 dev: true - /@typescript-eslint/type-utils/5.15.0_eslint@8.11.0+typescript@4.6.2: - resolution: {integrity: sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==} + /@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.6.3: + resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.15.0_eslint@8.11.0+typescript@4.6.2 - debug: 4.3.3 - eslint: 8.11.0 - tsutils: 3.21.0_typescript@4.6.2 - typescript: 4.6.2 + '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 + debug: 4.3.4 + eslint: 8.12.0 + tsutils: 3.21.0_typescript@4.6.3 + typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.15.0: - resolution: {integrity: sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==} + /@typescript-eslint/types/5.17.0: + resolution: {integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.15.0_typescript@4.6.2: - resolution: {integrity: sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==} + /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.3: + resolution: {integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,41 +320,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.15.0 - '@typescript-eslint/visitor-keys': 5.15.0 - debug: 4.3.3 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/visitor-keys': 5.17.0 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.6.2 - typescript: 4.6.2 + tsutils: 3.21.0_typescript@4.6.3 + typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.15.0_eslint@8.11.0+typescript@4.6.2: - resolution: {integrity: sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==} + /@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.6.3: + resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 5.15.0 - '@typescript-eslint/types': 5.15.0 - '@typescript-eslint/typescript-estree': 5.15.0_typescript@4.6.2 - eslint: 8.11.0 + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 + eslint: 8.12.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.11.0 + eslint-utils: 3.0.0_eslint@8.12.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.15.0: - resolution: {integrity: sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==} + /@typescript-eslint/visitor-keys/5.17.0: + resolution: {integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.15.0 + '@typescript-eslint/types': 5.17.0 eslint-visitor-keys: 3.3.0 dev: true @@ -420,7 +420,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -436,7 +436,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 dev: true /balanced-match/1.0.2: @@ -506,7 +506,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.6_typescript@4.6.2: + /check-dts/0.6.6_typescript@4.6.3: resolution: {integrity: sha512-2KzynoH1f8wVhZXUeqxeW2dOOFliktitYlyyOsLfZBk5K5n1U1B3uzJLFiJfwqlwoT1Ug7RNbi8xmMpUKKmwhg==} engines: {node: '>=12.16.0'} hasBin: true @@ -516,7 +516,7 @@ packages: fast-glob: 3.2.11 nanospinner: 0.6.0 picocolors: 1.0.0 - typescript: 4.6.2 + typescript: 4.6.3 vfile-location: 4.0.1 dev: true @@ -545,8 +545,8 @@ packages: dependencies: cross-spawn: 7.0.3 fast-glob: 3.2.11 - lilconfig: 2.0.4 - micromatch: 4.0.4 + lilconfig: 2.0.5 + micromatch: 4.0.5 dev: true /cliui/7.0.4: @@ -609,8 +609,8 @@ packages: ms: 2.1.3 dev: true - /debug/4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -672,8 +672,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.19.1: - resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + /es-abstract/1.19.2: + resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -707,8 +707,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.27: - resolution: {integrity: sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==} + /esbuild-android-64/0.14.29: + resolution: {integrity: sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -716,8 +716,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.27: - resolution: {integrity: sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==} + /esbuild-android-arm64/0.14.29: + resolution: {integrity: sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -725,8 +725,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.27: - resolution: {integrity: sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==} + /esbuild-darwin-64/0.14.29: + resolution: {integrity: sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -734,8 +734,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.27: - resolution: {integrity: sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==} + /esbuild-darwin-arm64/0.14.29: + resolution: {integrity: sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -743,8 +743,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.27: - resolution: {integrity: sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==} + /esbuild-freebsd-64/0.14.29: + resolution: {integrity: sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -752,8 +752,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.27: - resolution: {integrity: sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==} + /esbuild-freebsd-arm64/0.14.29: + resolution: {integrity: sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -761,8 +761,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.27: - resolution: {integrity: sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==} + /esbuild-linux-32/0.14.29: + resolution: {integrity: sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -770,8 +770,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.27: - resolution: {integrity: sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==} + /esbuild-linux-64/0.14.29: + resolution: {integrity: sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -779,8 +779,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.27: - resolution: {integrity: sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==} + /esbuild-linux-arm/0.14.29: + resolution: {integrity: sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -788,8 +788,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.27: - resolution: {integrity: sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==} + /esbuild-linux-arm64/0.14.29: + resolution: {integrity: sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -797,8 +797,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.27: - resolution: {integrity: sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==} + /esbuild-linux-mips64le/0.14.29: + resolution: {integrity: sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -806,8 +806,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.27: - resolution: {integrity: sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==} + /esbuild-linux-ppc64le/0.14.29: + resolution: {integrity: sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -815,8 +815,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.27: - resolution: {integrity: sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==} + /esbuild-linux-riscv64/0.14.29: + resolution: {integrity: sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -824,8 +824,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.27: - resolution: {integrity: sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==} + /esbuild-linux-s390x/0.14.29: + resolution: {integrity: sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -833,8 +833,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.27: - resolution: {integrity: sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==} + /esbuild-netbsd-64/0.14.29: + resolution: {integrity: sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -842,8 +842,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.27: - resolution: {integrity: sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==} + /esbuild-openbsd-64/0.14.29: + resolution: {integrity: sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -851,8 +851,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.27: - resolution: {integrity: sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==} + /esbuild-sunos-64/0.14.29: + resolution: {integrity: sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -860,8 +860,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.27: - resolution: {integrity: sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==} + /esbuild-windows-32/0.14.29: + resolution: {integrity: sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -869,8 +869,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.27: - resolution: {integrity: sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==} + /esbuild-windows-64/0.14.29: + resolution: {integrity: sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -878,8 +878,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.27: - resolution: {integrity: sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==} + /esbuild-windows-arm64/0.14.29: + resolution: {integrity: sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -887,32 +887,32 @@ packages: dev: true optional: true - /esbuild/0.14.27: - resolution: {integrity: sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==} + /esbuild/0.14.29: + resolution: {integrity: sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.27 - esbuild-android-arm64: 0.14.27 - esbuild-darwin-64: 0.14.27 - esbuild-darwin-arm64: 0.14.27 - esbuild-freebsd-64: 0.14.27 - esbuild-freebsd-arm64: 0.14.27 - esbuild-linux-32: 0.14.27 - esbuild-linux-64: 0.14.27 - esbuild-linux-arm: 0.14.27 - esbuild-linux-arm64: 0.14.27 - esbuild-linux-mips64le: 0.14.27 - esbuild-linux-ppc64le: 0.14.27 - esbuild-linux-riscv64: 0.14.27 - esbuild-linux-s390x: 0.14.27 - esbuild-netbsd-64: 0.14.27 - esbuild-openbsd-64: 0.14.27 - esbuild-sunos-64: 0.14.27 - esbuild-windows-32: 0.14.27 - esbuild-windows-64: 0.14.27 - esbuild-windows-arm64: 0.14.27 + esbuild-android-64: 0.14.29 + esbuild-android-arm64: 0.14.29 + esbuild-darwin-64: 0.14.29 + esbuild-darwin-arm64: 0.14.29 + esbuild-freebsd-64: 0.14.29 + esbuild-freebsd-arm64: 0.14.29 + esbuild-linux-32: 0.14.29 + esbuild-linux-64: 0.14.29 + esbuild-linux-arm: 0.14.29 + esbuild-linux-arm64: 0.14.29 + esbuild-linux-mips64le: 0.14.29 + esbuild-linux-ppc64le: 0.14.29 + esbuild-linux-riscv64: 0.14.29 + esbuild-linux-s390x: 0.14.29 + esbuild-netbsd-64: 0.14.29 + esbuild-openbsd-64: 0.14.29 + esbuild-sunos-64: 0.14.29 + esbuild-windows-32: 0.14.29 + esbuild-windows-64: 0.14.29 + esbuild-windows-arm64: 0.14.29 dev: true /escalade/3.1.1: @@ -925,7 +925,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_7dc77a0be22b3241d34262bf15f20ff9: + /eslint-config-standard/16.0.3_146d38e67599a909c4e567a04144449b: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -933,10 +933,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.11.0 - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-node: 11.1.0_eslint@8.11.0 - eslint-plugin-promise: 6.0.0_eslint@8.11.0 + eslint: 8.12.0 + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-node: 11.1.0_eslint@8.12.0 + eslint-plugin-promise: 6.0.0_eslint@8.12.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -954,18 +954,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.11.0: + /eslint-plugin-es/3.0.1_eslint@8.12.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.11.0 + eslint: 8.12.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.11.0: + /eslint-plugin-import/2.25.4_eslint@8.12.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -975,7 +975,7 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.11.0 + eslint: 8.12.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 @@ -984,17 +984,17 @@ packages: minimatch: 3.1.2 object.values: 1.1.5 resolve: 1.22.0 - tsconfig-paths: 3.14.0 + tsconfig-paths: 3.14.1 dev: true - /eslint-plugin-node/11.1.0_eslint@8.11.0: + /eslint-plugin-node/11.1.0_eslint@8.12.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.11.0 - eslint-plugin-es: 3.0.1_eslint@8.11.0 + eslint: 8.12.0 + eslint-plugin-es: 3.0.1_eslint@8.12.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -1009,13 +1009,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.11.0: + /eslint-plugin-promise/6.0.0_eslint@8.12.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.11.0 + eslint: 8.12.0 dev: true /eslint-scope/5.1.1: @@ -1041,13 +1041,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.11.0: + /eslint-utils/3.0.0_eslint@8.12.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.11.0 + eslint: 8.12.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1066,8 +1066,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.11.0: - resolution: {integrity: sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==} + /eslint/8.12.0: + resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1076,11 +1076,11 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.3 + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.11.0 + eslint-utils: 3.0.0_eslint@8.12.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -1089,7 +1089,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.12.1 + globals: 13.13.0 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1160,7 +1160,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 dev: true /fast-json-stable-stringify/2.1.0: @@ -1301,8 +1301,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/13.12.1: - resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==} + /globals/13.13.0: + resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1549,7 +1549,7 @@ packages: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.6 dev: true /jsonfile/6.1.0: @@ -1573,8 +1573,8 @@ packages: type-check: 0.4.0 dev: true - /lilconfig/2.0.4: - resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} engines: {node: '>=10'} dev: true @@ -1620,8 +1620,8 @@ packages: engines: {node: '>= 8'} dev: true - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 @@ -1634,8 +1634,8 @@ packages: brace-expansion: 1.1.11 dev: true - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true /mkdirp/1.0.4: @@ -1665,8 +1665,8 @@ packages: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} dev: true - /nanoid/3.3.1: - resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + /nanoid/3.3.2: + resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1721,7 +1721,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 dev: true /once/1.4.0: @@ -1956,7 +1956,7 @@ packages: chokidar: 3.5.3 ci-job-number: 1.2.2 globby: 11.1.0 - lilconfig: 2.0.4 + lilconfig: 2.0.5 mkdirp: 1.0.4 nanospinner: 1.0.0 picocolors: 1.0.0 @@ -2054,7 +2054,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.7.0_e79e62fe450383fd2d418267dc75e645: + /ts-node/10.7.0_ee885bc7281b682b6adbed6ae09ee090: resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true peerDependencies: @@ -2073,24 +2073,24 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.21 + '@types/node': 17.0.23 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.6.2 + typescript: 4.6.3 v8-compile-cache-lib: 3.0.0 yn: 3.1.1 dev: true - /tsconfig-paths/3.14.0: - resolution: {integrity: sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==} + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: '@types/json5': 0.0.29 json5: 1.0.1 - minimist: 1.2.5 + minimist: 1.2.6 strip-bom: 3.0.0 dev: true @@ -2098,14 +2098,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.6.2: + /tsutils/3.21.0_typescript@4.6.3: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.6.2 + typescript: 4.6.3 dev: true /type-check/0.4.0: @@ -2120,8 +2120,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.6.2: - resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==} + /typescript/4.6.3: + resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} engines: {node: '>=4.2.0'} hasBin: true dev: true From d9abe0d11ad98016cdd64b3d54ab0c01a3fa85a4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 30 Mar 2022 22:38:36 +0200 Subject: [PATCH 2513/3047] Update action versions --- .github/workflows/test.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9c0a07160..965d4cce0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,13 +10,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: latest - name: Install Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 17 cache: pnpm @@ -37,13 +37,13 @@ jobs: name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: latest - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: pnpm @@ -58,7 +58,7 @@ jobs: name: Node.js 10 Quick steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v1 with: @@ -66,7 +66,7 @@ jobs: env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js 10 - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 10 - name: Install dependencies @@ -80,13 +80,13 @@ jobs: name: Windows Quick steps: - name: Checkout the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2 with: version: latest - name: Install Node.js LTS - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 16 cache: pnpm From 92feea681437a32de7b992f8031f29b960f681b3 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 9 Apr 2022 10:32:20 +0200 Subject: [PATCH 2514/3047] Update dependecnies --- package.json | 10 +- pnpm-lock.yaml | 329 ++++++++++++++++++++++++++----------------------- 2 files changed, 177 insertions(+), 162 deletions(-) diff --git a/package.json b/package.json index e273173b6..ec6fda706 100755 --- a/package.json +++ b/package.json @@ -80,19 +80,19 @@ "source-map-js": "^1.0.2" }, "devDependencies": { - "@logux/eslint-config": "^46.1.1", + "@logux/eslint-config": "^46.1.2", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.17.0", - "@typescript-eslint/parser": "^5.17.0", + "@typescript-eslint/eslint-plugin": "^5.18.0", + "@typescript-eslint/parser": "^5.18.0", "c8": "^7.11.0", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.12.0", + "eslint": "^8.13.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.4", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6905f3237..3e580fc42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,19 +1,19 @@ lockfileVersion: 5.3 specifiers: - '@logux/eslint-config': ^46.1.1 + '@logux/eslint-config': ^46.1.2 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 '@types/node': ^17.0.23 - '@typescript-eslint/eslint-plugin': ^5.17.0 - '@typescript-eslint/parser': ^5.17.0 + '@typescript-eslint/eslint-plugin': ^5.18.0 + '@typescript-eslint/parser': ^5.18.0 c8: ^7.11.0 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.12.0 + eslint: ^8.13.0 eslint-config-standard: ^16.0.3 - eslint-plugin-import: ^2.25.4 + eslint-plugin-import: ^2.26.0 eslint-plugin-node: ^11.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.1_2589d1b28a27e65d5cdc15ec636ae594 + '@logux/eslint-config': 46.1.2_570672d13fab3dfe6a4c06ffdb8864c2 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 '@types/node': 17.0.23 - '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 - '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/eslint-plugin': 5.18.0_0dd9be2ba5ed9805045f3fec8be848f5 + '@typescript-eslint/parser': 5.18.0_eslint@8.13.0+typescript@4.6.3 c8: 7.11.0 check-dts: 0.6.6_typescript@4.6.3 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.12.0 - eslint-config-standard: 16.0.3_146d38e67599a909c4e567a04144449b - eslint-plugin-import: 2.25.4_eslint@8.12.0 - eslint-plugin-node: 11.1.0_eslint@8.12.0 + eslint: 8.13.0 + eslint-config-standard: 16.0.3_4e3767bb061a43bc3978ec6596bc3350 + eslint-plugin-import: 2.26.0_eslint@8.13.0 + eslint-plugin-node: 11.1.0_eslint@8.13.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.12.0 + eslint-plugin-promise: 6.0.0_eslint@8.13.0 fs-extra: 10.0.1 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -119,23 +119,23 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.1_2589d1b28a27e65d5cdc15ec636ae594: - resolution: {integrity: sha512-FSSiEj6yGGmoI+ccK8ET093OL2G9ar1izQtixB62SWGouas096VpqQoz+FuFW8f4iCb4wuYrXYuv0uOLuvc+LA==} + /@logux/eslint-config/46.1.2_570672d13fab3dfe6a4c06ffdb8864c2: + resolution: {integrity: sha512-637KFdpbW0yhITiovA6PZRYjlMCeIvbXY4VZJlbuCqiD0vQ5NQ+m0Lt8hSn4tYUWDdtwYp6EHtn8FiPcshK0oA==} engines: {node: '>=10.0.0'} peerDependencies: - eslint: ^8.5.0 + eslint: ^8.12.0 eslint-config-standard: ^16.0.3 - eslint-plugin-import: ^2.25.3 + eslint-plugin-import: ^2.26.0 eslint-plugin-node: ^11.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.12.0 - eslint-config-standard: 16.0.3_146d38e67599a909c4e567a04144449b - eslint-plugin-import: 2.25.4_eslint@8.12.0 - eslint-plugin-node: 11.1.0_eslint@8.12.0 + eslint: 8.13.0 + eslint-config-standard: 16.0.3_4e3767bb061a43bc3978ec6596bc3350 + eslint-plugin-import: 2.26.0_eslint@8.13.0 + eslint-plugin-node: 11.1.0_eslint@8.13.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.12.0 + eslint-plugin-promise: 6.0.0_eslint@8.13.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -165,7 +165,7 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.29 + esbuild: 0.14.34 nanoid: 3.3.2 size-limit: 7.0.8 dev: true @@ -232,8 +232,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.17.0_689ff565753ecf7c3328c07fad067df5: - resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==} + /@typescript-eslint/eslint-plugin/5.18.0_0dd9be2ba5ed9805045f3fec8be848f5: + resolution: {integrity: sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,24 +243,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.17.0 - '@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.18.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.18.0 + '@typescript-eslint/type-utils': 5.18.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.18.0_eslint@8.13.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.12.0 + eslint: 8.13.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.5 + semver: 7.3.6 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==} + /@typescript-eslint/parser/5.18.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,26 +269,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.17.0 - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.18.0 + '@typescript-eslint/types': 5.18.0 + '@typescript-eslint/typescript-estree': 5.18.0_typescript@4.6.3 debug: 4.3.4 - eslint: 8.12.0 + eslint: 8.13.0 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.17.0: - resolution: {integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==} + /@typescript-eslint/scope-manager/5.18.0: + resolution: {integrity: sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/visitor-keys': 5.17.0 + '@typescript-eslint/types': 5.18.0 + '@typescript-eslint/visitor-keys': 5.18.0 dev: true - /@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==} + /@typescript-eslint/type-utils/5.18.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,22 +297,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.18.0_eslint@8.13.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.12.0 + eslint: 8.13.0 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.17.0: - resolution: {integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==} + /@typescript-eslint/types/5.18.0: + resolution: {integrity: sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.3: - resolution: {integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==} + /@typescript-eslint/typescript-estree/5.18.0_typescript@4.6.3: + resolution: {integrity: sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,41 +320,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/visitor-keys': 5.17.0 + '@typescript-eslint/types': 5.18.0 + '@typescript-eslint/visitor-keys': 5.18.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.5 + semver: 7.3.6 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==} + /@typescript-eslint/utils/5.18.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.17.0 - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 - eslint: 8.12.0 + '@typescript-eslint/scope-manager': 5.18.0 + '@typescript-eslint/types': 5.18.0 + '@typescript-eslint/typescript-estree': 5.18.0_typescript@4.6.3 + eslint: 8.13.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.12.0 + eslint-utils: 3.0.0_eslint@8.13.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.17.0: - resolution: {integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==} + /@typescript-eslint/visitor-keys/5.18.0: + resolution: {integrity: sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/types': 5.18.0 eslint-visitor-keys: 3.3.0 dev: true @@ -687,7 +687,7 @@ packages: is-callable: 1.2.4 is-negative-zero: 2.0.2 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.1 + is-shared-array-buffer: 1.0.2 is-string: 1.0.7 is-weakref: 1.0.2 object-inspect: 1.12.0 @@ -707,8 +707,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.29: - resolution: {integrity: sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==} + /esbuild-android-64/0.14.34: + resolution: {integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -716,8 +716,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.29: - resolution: {integrity: sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==} + /esbuild-android-arm64/0.14.34: + resolution: {integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -725,8 +725,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.29: - resolution: {integrity: sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==} + /esbuild-darwin-64/0.14.34: + resolution: {integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -734,8 +734,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.29: - resolution: {integrity: sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==} + /esbuild-darwin-arm64/0.14.34: + resolution: {integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -743,8 +743,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.29: - resolution: {integrity: sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==} + /esbuild-freebsd-64/0.14.34: + resolution: {integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -752,8 +752,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.29: - resolution: {integrity: sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==} + /esbuild-freebsd-arm64/0.14.34: + resolution: {integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -761,8 +761,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.29: - resolution: {integrity: sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==} + /esbuild-linux-32/0.14.34: + resolution: {integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -770,8 +770,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.29: - resolution: {integrity: sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==} + /esbuild-linux-64/0.14.34: + resolution: {integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -779,8 +779,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.29: - resolution: {integrity: sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==} + /esbuild-linux-arm/0.14.34: + resolution: {integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -788,8 +788,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.29: - resolution: {integrity: sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==} + /esbuild-linux-arm64/0.14.34: + resolution: {integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -797,8 +797,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.29: - resolution: {integrity: sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==} + /esbuild-linux-mips64le/0.14.34: + resolution: {integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -806,8 +806,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.29: - resolution: {integrity: sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==} + /esbuild-linux-ppc64le/0.14.34: + resolution: {integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -815,8 +815,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.29: - resolution: {integrity: sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==} + /esbuild-linux-riscv64/0.14.34: + resolution: {integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -824,8 +824,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.29: - resolution: {integrity: sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==} + /esbuild-linux-s390x/0.14.34: + resolution: {integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -833,8 +833,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.29: - resolution: {integrity: sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==} + /esbuild-netbsd-64/0.14.34: + resolution: {integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -842,8 +842,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.29: - resolution: {integrity: sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==} + /esbuild-openbsd-64/0.14.34: + resolution: {integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -851,8 +851,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.29: - resolution: {integrity: sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==} + /esbuild-sunos-64/0.14.34: + resolution: {integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -860,8 +860,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.29: - resolution: {integrity: sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==} + /esbuild-windows-32/0.14.34: + resolution: {integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -869,8 +869,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.29: - resolution: {integrity: sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==} + /esbuild-windows-64/0.14.34: + resolution: {integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -878,8 +878,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.29: - resolution: {integrity: sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==} + /esbuild-windows-arm64/0.14.34: + resolution: {integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -887,32 +887,32 @@ packages: dev: true optional: true - /esbuild/0.14.29: - resolution: {integrity: sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==} + /esbuild/0.14.34: + resolution: {integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.29 - esbuild-android-arm64: 0.14.29 - esbuild-darwin-64: 0.14.29 - esbuild-darwin-arm64: 0.14.29 - esbuild-freebsd-64: 0.14.29 - esbuild-freebsd-arm64: 0.14.29 - esbuild-linux-32: 0.14.29 - esbuild-linux-64: 0.14.29 - esbuild-linux-arm: 0.14.29 - esbuild-linux-arm64: 0.14.29 - esbuild-linux-mips64le: 0.14.29 - esbuild-linux-ppc64le: 0.14.29 - esbuild-linux-riscv64: 0.14.29 - esbuild-linux-s390x: 0.14.29 - esbuild-netbsd-64: 0.14.29 - esbuild-openbsd-64: 0.14.29 - esbuild-sunos-64: 0.14.29 - esbuild-windows-32: 0.14.29 - esbuild-windows-64: 0.14.29 - esbuild-windows-arm64: 0.14.29 + esbuild-android-64: 0.14.34 + esbuild-android-arm64: 0.14.34 + esbuild-darwin-64: 0.14.34 + esbuild-darwin-arm64: 0.14.34 + esbuild-freebsd-64: 0.14.34 + esbuild-freebsd-arm64: 0.14.34 + esbuild-linux-32: 0.14.34 + esbuild-linux-64: 0.14.34 + esbuild-linux-arm: 0.14.34 + esbuild-linux-arm64: 0.14.34 + esbuild-linux-mips64le: 0.14.34 + esbuild-linux-ppc64le: 0.14.34 + esbuild-linux-riscv64: 0.14.34 + esbuild-linux-s390x: 0.14.34 + esbuild-netbsd-64: 0.14.34 + esbuild-openbsd-64: 0.14.34 + esbuild-sunos-64: 0.14.34 + esbuild-windows-32: 0.14.34 + esbuild-windows-64: 0.14.34 + esbuild-windows-arm64: 0.14.34 dev: true /escalade/3.1.1: @@ -925,7 +925,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_146d38e67599a909c4e567a04144449b: + /eslint-config-standard/16.0.3_4e3767bb061a43bc3978ec6596bc3350: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -933,10 +933,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.12.0 - eslint-plugin-import: 2.25.4_eslint@8.12.0 - eslint-plugin-node: 11.1.0_eslint@8.12.0 - eslint-plugin-promise: 6.0.0_eslint@8.12.0 + eslint: 8.13.0 + eslint-plugin-import: 2.26.0_eslint@8.13.0 + eslint-plugin-node: 11.1.0_eslint@8.13.0 + eslint-plugin-promise: 6.0.0_eslint@8.13.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -954,19 +954,19 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.12.0: + /eslint-plugin-es/3.0.1_eslint@8.13.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.12.0 + eslint: 8.13.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.12.0: - resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} + /eslint-plugin-import/2.26.0_eslint@8.13.0: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 @@ -975,7 +975,7 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.12.0 + eslint: 8.13.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 @@ -987,14 +987,14 @@ packages: tsconfig-paths: 3.14.1 dev: true - /eslint-plugin-node/11.1.0_eslint@8.12.0: + /eslint-plugin-node/11.1.0_eslint@8.13.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.12.0 - eslint-plugin-es: 3.0.1_eslint@8.12.0 + eslint: 8.13.0 + eslint-plugin-es: 3.0.1_eslint@8.13.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -1009,13 +1009,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.12.0: + /eslint-plugin-promise/6.0.0_eslint@8.13.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.12.0 + eslint: 8.13.0 dev: true /eslint-scope/5.1.1: @@ -1041,13 +1041,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.12.0: + /eslint-utils/3.0.0_eslint@8.13.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.12.0 + eslint: 8.13.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1066,8 +1066,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.12.0: - resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==} + /eslint/8.13.0: + resolution: {integrity: sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1080,7 +1080,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.12.0 + eslint-utils: 3.0.0_eslint@8.13.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -1230,7 +1230,7 @@ packages: resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -1320,8 +1320,8 @@ packages: slash: 3.0.0 dev: true - /graceful-fs/4.2.9: - resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true /has-bigints/1.0.1: @@ -1460,8 +1460,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-number-object/1.0.6: - resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 @@ -1480,8 +1480,10 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-shared-array-buffer/1.0.1: - resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 dev: true /is-string/1.0.7: @@ -1557,7 +1559,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 dev: true /kleur/4.1.4: @@ -1604,6 +1606,11 @@ packages: yallist: 4.0.0 dev: true + /lru-cache/7.8.0: + resolution: {integrity: sha512-AmXqneQZL3KZMIgBpaPTeI6pfwh+xQ2vutMsyqOu1TBdEXFZgpG/80wuJ531w2ZN7TI0/oc8CPxzh/DKQudZqg==} + engines: {node: '>=12'} + dev: true + /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -1676,8 +1683,8 @@ packages: picocolors: 1.0.0 dev: true - /nanospinner/1.0.0: - resolution: {integrity: sha512-14c2r2QQ9xfTmdbqdF51FKCNvww+0ZON9GeEHur+pBdOufoFvxD4CZQRaYWmFrGH3Nuv7PZ/9Q+wsV+hFSp32g==} + /nanospinner/1.1.0: + resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} dependencies: picocolors: 1.0.0 dev: true @@ -1917,6 +1924,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.3.6: + resolution: {integrity: sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==} + engines: {node: ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} + hasBin: true + dependencies: + lru-cache: 7.8.0 + dev: true + /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1958,7 +1973,7 @@ packages: globby: 11.1.0 lilconfig: 2.0.5 mkdirp: 1.0.4 - nanospinner: 1.0.0 + nanospinner: 1.1.0 picocolors: 1.0.0 dev: true @@ -2208,7 +2223,7 @@ packages: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 - is-number-object: 1.0.6 + is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 dev: true From 34f6fee36437a0d9763b5ed80a39115c1453a3fc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 9 Apr 2022 10:33:38 +0200 Subject: [PATCH 2515/3047] Fix TypeDoc --- lib/processor.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/processor.d.ts b/lib/processor.d.ts index e1affa48a..19a365384 100644 --- a/lib/processor.d.ts +++ b/lib/processor.d.ts @@ -72,7 +72,7 @@ export default class Processor { * ``` * * @param plugin PostCSS plugin or `Processor` with plugins. - * @return {Processes} Current processor to make methods chain. + * @return Current processor to make methods chain. */ use(plugin: AcceptedPlugin): this From 88671bcdcbd50d38647b23e84d37f9773c19c62d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 21 Apr 2022 00:22:49 +0100 Subject: [PATCH 2516/3047] Update Node.js on CI and ESLint config --- .github/workflows/test.yml | 4 +- package.json | 19 +- pnpm-lock.yaml | 418 ++++++++++++++++++++----------------- 3 files changed, 235 insertions(+), 206 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 965d4cce0..d2bcf5b10 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: full: - name: Node.js 17 Full + name: Node.js Latest Full runs-on: ubuntu-latest steps: - name: Checkout the repository @@ -18,7 +18,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: 17 + node-version: 18 cache: pnpm - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts diff --git a/package.json b/package.json index ec6fda706..f52442179 100755 --- a/package.json +++ b/package.json @@ -75,28 +75,28 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.3.2", + "nanoid": "^3.3.3", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, "devDependencies": { - "@logux/eslint-config": "^46.1.2", + "@logux/eslint-config": "^47.0.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", - "c8": "^7.11.0", + "@types/node": "^17.0.25", + "@typescript-eslint/eslint-plugin": "^5.20.0", + "@typescript-eslint/parser": "^5.20.0", + "c8": "^7.11.2", "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.13.0", - "eslint-config-standard": "^16.0.3", + "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", + "eslint-plugin-n": "^15.1.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.0", - "fs-extra": "^10.0.1", + "fs-extra": "^10.1.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.1", @@ -154,6 +154,7 @@ ], "rules": { "@typescript-eslint/no-unused-expressions": "off", + "n/no-unsupported-features/es-syntax": "off", "no-unused-expressions": "off", "no-console": "off", "func-style": "off" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e580fc42..bfdf1554c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,25 +1,25 @@ lockfileVersion: 5.3 specifiers: - '@logux/eslint-config': ^46.1.2 + '@logux/eslint-config': ^47.0.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.23 - '@typescript-eslint/eslint-plugin': ^5.18.0 - '@typescript-eslint/parser': ^5.18.0 - c8: ^7.11.0 + '@types/node': ^17.0.25 + '@typescript-eslint/eslint-plugin': ^5.20.0 + '@typescript-eslint/parser': ^5.20.0 + c8: ^7.11.2 check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 eslint: ^8.13.0 - eslint-config-standard: ^16.0.3 + eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-node: ^11.1.0 + eslint-plugin-n: ^15.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 - fs-extra: ^10.0.1 + fs-extra: ^10.1.0 nanodelay: ^1.0.8 - nanoid: ^3.3.2 + nanoid: ^3.3.3 nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 @@ -32,35 +32,35 @@ specifiers: uvu: ^0.5.3 dependencies: - nanoid: 3.3.2 + nanoid: 3.3.3 picocolors: 1.0.0 source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 46.1.2_570672d13fab3dfe6a4c06ffdb8864c2 + '@logux/eslint-config': 47.0.0_d0247f4bca15716e90ca5d290035f5d0 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.23 - '@typescript-eslint/eslint-plugin': 5.18.0_0dd9be2ba5ed9805045f3fec8be848f5 - '@typescript-eslint/parser': 5.18.0_eslint@8.13.0+typescript@4.6.3 - c8: 7.11.0 + '@types/node': 17.0.25 + '@typescript-eslint/eslint-plugin': 5.20.0_b9ac9b5656ce5dffade639fcf5e491bf + '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 + c8: 7.11.2 check-dts: 0.6.6_typescript@4.6.3 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 eslint: 8.13.0 - eslint-config-standard: 16.0.3_4e3767bb061a43bc3978ec6596bc3350 + eslint-config-standard: 17.0.0_dc19839e011c6dcd66ff2ec979bc96a1 eslint-plugin-import: 2.26.0_eslint@8.13.0 - eslint-plugin-node: 11.1.0_eslint@8.13.0 + eslint-plugin-n: 15.1.0_eslint@8.13.0 eslint-plugin-prefer-let: 3.0.1 eslint-plugin-promise: 6.0.0_eslint@8.13.0 - fs-extra: 10.0.1 + fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.1 simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.7.0_ee885bc7281b682b6adbed6ae09ee090 + ts-node: 10.7.0_de7c86b0cde507c63a0402da5b982bd3 typescript: 4.6.3 uvu: 0.5.3 @@ -119,21 +119,37 @@ packages: engines: {node: '>=8'} dev: true - /@logux/eslint-config/46.1.2_570672d13fab3dfe6a4c06ffdb8864c2: - resolution: {integrity: sha512-637KFdpbW0yhITiovA6PZRYjlMCeIvbXY4VZJlbuCqiD0vQ5NQ+m0Lt8hSn4tYUWDdtwYp6EHtn8FiPcshK0oA==} + /@jridgewell/resolve-uri/3.0.5: + resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.11: + resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.5 + '@jridgewell/sourcemap-codec': 1.4.11 + dev: true + + /@logux/eslint-config/47.0.0_d0247f4bca15716e90ca5d290035f5d0: + resolution: {integrity: sha512-pVIfwiwyYWbHmVPYeGQoPRScDRdcf93r0rYyreELooW8Dul0KyxTSVO+kn4e96grY7chNtvR2Omi+iBGxVZRmQ==} engines: {node: '>=10.0.0'} peerDependencies: - eslint: ^8.12.0 - eslint-config-standard: ^16.0.3 + eslint: ^8.13.0 + eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-node: ^11.1.0 + eslint-plugin-n: ^15.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.13.0 - eslint-config-standard: 16.0.3_4e3767bb061a43bc3978ec6596bc3350 + eslint-config-standard: 17.0.0_dc19839e011c6dcd66ff2ec979bc96a1 eslint-plugin-import: 2.26.0_eslint@8.13.0 - eslint-plugin-node: 11.1.0_eslint@8.13.0 + eslint-plugin-n: 15.1.0_eslint@8.13.0 eslint-plugin-prefer-let: 3.0.1 eslint-plugin-promise: 6.0.0_eslint@8.13.0 dev: true @@ -165,8 +181,8 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.34 - nanoid: 3.3.2 + esbuild: 0.14.36 + nanoid: 3.3.3 size-limit: 7.0.8 dev: true @@ -209,7 +225,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.23 + '@types/node': 17.0.25 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -224,16 +240,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.23: - resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} + /@types/node/17.0.25: + resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.18.0_0dd9be2ba5ed9805045f3fec8be848f5: - resolution: {integrity: sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==} + /@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: + resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -243,24 +259,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.18.0_eslint@8.13.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.18.0 - '@typescript-eslint/type-utils': 5.18.0_eslint@8.13.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.18.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.20.0 + '@typescript-eslint/type-utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 debug: 4.3.4 eslint: 8.13.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.6 + semver: 7.3.7 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.18.0_eslint@8.13.0+typescript@4.6.3: - resolution: {integrity: sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==} + /@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -269,9 +285,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.18.0 - '@typescript-eslint/types': 5.18.0 - '@typescript-eslint/typescript-estree': 5.18.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.20.0 + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 debug: 4.3.4 eslint: 8.13.0 typescript: 4.6.3 @@ -279,16 +295,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.18.0: - resolution: {integrity: sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==} + /@typescript-eslint/scope-manager/5.20.0: + resolution: {integrity: sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.18.0 - '@typescript-eslint/visitor-keys': 5.18.0 + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/visitor-keys': 5.20.0 dev: true - /@typescript-eslint/type-utils/5.18.0_eslint@8.13.0+typescript@4.6.3: - resolution: {integrity: sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==} + /@typescript-eslint/type-utils/5.20.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -297,7 +313,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.18.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 debug: 4.3.4 eslint: 8.13.0 tsutils: 3.21.0_typescript@4.6.3 @@ -306,13 +322,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.18.0: - resolution: {integrity: sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==} + /@typescript-eslint/types/5.20.0: + resolution: {integrity: sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.18.0_typescript@4.6.3: - resolution: {integrity: sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==} + /@typescript-eslint/typescript-estree/5.20.0_typescript@4.6.3: + resolution: {integrity: sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -320,28 +336,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.18.0 - '@typescript-eslint/visitor-keys': 5.18.0 + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/visitor-keys': 5.20.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.6 + semver: 7.3.7 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.18.0_eslint@8.13.0+typescript@4.6.3: - resolution: {integrity: sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==} + /@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.18.0 - '@typescript-eslint/types': 5.18.0 - '@typescript-eslint/typescript-estree': 5.18.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.20.0 + '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 eslint: 8.13.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.13.0 @@ -350,11 +366,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.18.0: - resolution: {integrity: sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==} + /@typescript-eslint/visitor-keys/5.20.0: + resolution: {integrity: sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.18.0 + '@typescript-eslint/types': 5.20.0 eslint-visitor-keys: 3.3.0 dev: true @@ -419,8 +435,8 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.19.5 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -430,13 +446,14 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.flat/1.2.5: - resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} + /array.prototype.flat/1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.19.5 + es-shim-unscopables: 1.0.0 dev: true /balanced-match/1.0.2: @@ -462,13 +479,19 @@ packages: fill-range: 7.0.1 dev: true + /builtins/4.1.0: + resolution: {integrity: sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==} + dependencies: + semver: 7.3.7 + dev: true + /bytes-iec/3.1.1: resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} engines: {node: '>= 0.8'} dev: true - /c8/7.11.0: - resolution: {integrity: sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==} + /c8/7.11.2: + resolution: {integrity: sha512-6ahJSrhS6TqSghHm+HnWt/8Y2+z0hM/FQyB1ybKhAR30+NYL9CTQ1uwHxuWw6U7BHlHv6wvhgOrH81I+lfCkxg==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -481,7 +504,7 @@ packages: istanbul-reports: 3.1.4 rimraf: 3.0.2 test-exclude: 6.0.0 - v8-to-istanbul: 8.1.1 + v8-to-istanbul: 9.0.0 yargs: 16.2.0 yargs-parser: 20.2.9 dev: true @@ -625,10 +648,11 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} dependencies: + has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true @@ -672,8 +696,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.19.2: - resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==} + /es-abstract/1.19.5: + resolution: {integrity: sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -698,6 +722,12 @@ packages: unbox-primitive: 1.0.1 dev: true + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -707,8 +737,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.34: - resolution: {integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==} + /esbuild-android-64/0.14.36: + resolution: {integrity: sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -716,8 +746,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.34: - resolution: {integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==} + /esbuild-android-arm64/0.14.36: + resolution: {integrity: sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -725,8 +755,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.34: - resolution: {integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==} + /esbuild-darwin-64/0.14.36: + resolution: {integrity: sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -734,8 +764,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.34: - resolution: {integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==} + /esbuild-darwin-arm64/0.14.36: + resolution: {integrity: sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -743,8 +773,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.34: - resolution: {integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==} + /esbuild-freebsd-64/0.14.36: + resolution: {integrity: sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -752,8 +782,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.34: - resolution: {integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==} + /esbuild-freebsd-arm64/0.14.36: + resolution: {integrity: sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -761,8 +791,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.34: - resolution: {integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==} + /esbuild-linux-32/0.14.36: + resolution: {integrity: sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -770,8 +800,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.34: - resolution: {integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==} + /esbuild-linux-64/0.14.36: + resolution: {integrity: sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -779,8 +809,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.34: - resolution: {integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==} + /esbuild-linux-arm/0.14.36: + resolution: {integrity: sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -788,8 +818,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.34: - resolution: {integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==} + /esbuild-linux-arm64/0.14.36: + resolution: {integrity: sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -797,8 +827,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.34: - resolution: {integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==} + /esbuild-linux-mips64le/0.14.36: + resolution: {integrity: sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -806,8 +836,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.34: - resolution: {integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==} + /esbuild-linux-ppc64le/0.14.36: + resolution: {integrity: sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -815,8 +845,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.34: - resolution: {integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==} + /esbuild-linux-riscv64/0.14.36: + resolution: {integrity: sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -824,8 +854,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.34: - resolution: {integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==} + /esbuild-linux-s390x/0.14.36: + resolution: {integrity: sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -833,8 +863,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.34: - resolution: {integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==} + /esbuild-netbsd-64/0.14.36: + resolution: {integrity: sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -842,8 +872,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.34: - resolution: {integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==} + /esbuild-openbsd-64/0.14.36: + resolution: {integrity: sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -851,8 +881,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.34: - resolution: {integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==} + /esbuild-sunos-64/0.14.36: + resolution: {integrity: sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -860,8 +890,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.34: - resolution: {integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==} + /esbuild-windows-32/0.14.36: + resolution: {integrity: sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -869,8 +899,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.34: - resolution: {integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==} + /esbuild-windows-64/0.14.36: + resolution: {integrity: sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -878,8 +908,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.34: - resolution: {integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==} + /esbuild-windows-arm64/0.14.36: + resolution: {integrity: sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -887,32 +917,32 @@ packages: dev: true optional: true - /esbuild/0.14.34: - resolution: {integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==} + /esbuild/0.14.36: + resolution: {integrity: sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.34 - esbuild-android-arm64: 0.14.34 - esbuild-darwin-64: 0.14.34 - esbuild-darwin-arm64: 0.14.34 - esbuild-freebsd-64: 0.14.34 - esbuild-freebsd-arm64: 0.14.34 - esbuild-linux-32: 0.14.34 - esbuild-linux-64: 0.14.34 - esbuild-linux-arm: 0.14.34 - esbuild-linux-arm64: 0.14.34 - esbuild-linux-mips64le: 0.14.34 - esbuild-linux-ppc64le: 0.14.34 - esbuild-linux-riscv64: 0.14.34 - esbuild-linux-s390x: 0.14.34 - esbuild-netbsd-64: 0.14.34 - esbuild-openbsd-64: 0.14.34 - esbuild-sunos-64: 0.14.34 - esbuild-windows-32: 0.14.34 - esbuild-windows-64: 0.14.34 - esbuild-windows-arm64: 0.14.34 + esbuild-android-64: 0.14.36 + esbuild-android-arm64: 0.14.36 + esbuild-darwin-64: 0.14.36 + esbuild-darwin-arm64: 0.14.36 + esbuild-freebsd-64: 0.14.36 + esbuild-freebsd-arm64: 0.14.36 + esbuild-linux-32: 0.14.36 + esbuild-linux-64: 0.14.36 + esbuild-linux-arm: 0.14.36 + esbuild-linux-arm64: 0.14.36 + esbuild-linux-mips64le: 0.14.36 + esbuild-linux-ppc64le: 0.14.36 + esbuild-linux-riscv64: 0.14.36 + esbuild-linux-s390x: 0.14.36 + esbuild-netbsd-64: 0.14.36 + esbuild-openbsd-64: 0.14.36 + esbuild-sunos-64: 0.14.36 + esbuild-windows-32: 0.14.36 + esbuild-windows-64: 0.14.36 + esbuild-windows-arm64: 0.14.36 dev: true /escalade/3.1.1: @@ -925,17 +955,17 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_4e3767bb061a43bc3978ec6596bc3350: - resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} + /eslint-config-standard/17.0.0_dc19839e011c6dcd66ff2ec979bc96a1: + resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: - eslint: ^7.12.1 - eslint-plugin-import: ^2.22.1 - eslint-plugin-node: ^11.1.0 - eslint-plugin-promise: ^4.2.1 || ^5.0.0 + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: ^15.0.0 + eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.13.0 eslint-plugin-import: 2.26.0_eslint@8.13.0 - eslint-plugin-node: 11.1.0_eslint@8.13.0 + eslint-plugin-n: 15.1.0_eslint@8.13.0 eslint-plugin-promise: 6.0.0_eslint@8.13.0 dev: true @@ -954,8 +984,8 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.13.0: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + /eslint-plugin-es/4.1.0_eslint@8.13.0: + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' @@ -972,14 +1002,14 @@ packages: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 dependencies: array-includes: 3.1.4 - array.prototype.flat: 1.2.5 + array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.13.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 - is-core-module: 2.8.1 + is-core-module: 2.9.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 @@ -987,16 +1017,18 @@ packages: tsconfig-paths: 3.14.1 dev: true - /eslint-plugin-node/11.1.0_eslint@8.13.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} + /eslint-plugin-n/15.1.0_eslint@8.13.0: + resolution: {integrity: sha512-Tgx4Z58QXv2Ha7Qzp0u4wavnZNZ3AOievZMxrAxi7nvDbzD5B/JqOD80LHYcGHFZc2HD9jDmM/+KWMPov46a4A==} + engines: {node: '>=12.22.0'} peerDependencies: - eslint: '>=5.16.0' + eslint: '>=7.0.0' dependencies: + builtins: 4.1.0 eslint: 8.13.0 - eslint-plugin-es: 3.0.1_eslint@8.13.0 - eslint-utils: 2.1.0 + eslint-plugin-es: 4.1.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.13.0 ignore: 5.2.0 + is-core-module: 2.9.0 minimatch: 3.1.2 resolve: 1.22.0 semver: 6.3.0 @@ -1226,8 +1258,8 @@ packages: signal-exit: 3.0.7 dev: true - /fs-extra/10.0.1: - resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} dependencies: graceful-fs: 4.2.10 @@ -1324,8 +1356,8 @@ packages: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true /has-flag/4.0.0: @@ -1333,6 +1365,12 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.1 + dev: true + /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -1397,7 +1435,7 @@ packages: /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - has-bigints: 1.0.1 + has-bigints: 1.0.2 dev: true /is-binary-path/2.1.0: @@ -1425,8 +1463,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: has: 1.0.3 dev: true @@ -1606,11 +1644,6 @@ packages: yallist: 4.0.0 dev: true - /lru-cache/7.8.0: - resolution: {integrity: sha512-AmXqneQZL3KZMIgBpaPTeI6pfwh+xQ2vutMsyqOu1TBdEXFZgpG/80wuJ531w2ZN7TI0/oc8CPxzh/DKQudZqg==} - engines: {node: '>=12'} - dev: true - /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -1672,8 +1705,8 @@ packages: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} dev: true - /nanoid/3.3.2: - resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} + /nanoid/3.3.3: + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1717,7 +1750,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -1727,8 +1760,8 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.1.4 + es-abstract: 1.19.5 dev: true /once/1.4.0: @@ -1877,7 +1910,7 @@ packages: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.9.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -1924,12 +1957,12 @@ packages: lru-cache: 6.0.0 dev: true - /semver/7.3.6: - resolution: {integrity: sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==} - engines: {node: ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} hasBin: true dependencies: - lru-cache: 7.8.0 + lru-cache: 6.0.0 dev: true /shebang-command/2.0.0: @@ -1992,11 +2025,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map/0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - dev: true - /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2010,14 +2038,14 @@ packages: resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 dev: true /string.prototype.trimstart/1.0.4: resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 dev: true /strip-ansi/6.0.1: @@ -2069,7 +2097,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.7.0_ee885bc7281b682b6adbed6ae09ee090: + /ts-node/10.7.0_de7c86b0cde507c63a0402da5b982bd3: resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true peerDependencies: @@ -2088,7 +2116,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.23 + '@types/node': 17.0.25 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2096,7 +2124,7 @@ packages: diff: 4.0.2 make-error: 1.3.6 typescript: 4.6.3 - v8-compile-cache-lib: 3.0.0 + v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2145,7 +2173,7 @@ packages: resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} dependencies: function-bind: 1.1.1 - has-bigints: 1.0.1 + has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true @@ -2178,21 +2206,21 @@ packages: sade: 1.8.1 dev: true - /v8-compile-cache-lib/3.0.0: - resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==} + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /v8-to-istanbul/8.1.1: - resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} + /v8-to-istanbul/9.0.0: + resolution: {integrity: sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==} engines: {node: '>=10.12.0'} dependencies: + '@jridgewell/trace-mapping': 0.3.9 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 - source-map: 0.7.3 dev: true /vfile-location/4.0.1: From dc03ca130ccf594a140f662349432facb1b16e6a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 24 Apr 2022 19:31:59 +0100 Subject: [PATCH 2517/3047] Update ESLint config --- package.json | 5 +- pnpm-lock.yaml | 240 ++++++++++++++++++++++++------------------------- 2 files changed, 122 insertions(+), 123 deletions(-) diff --git a/package.json b/package.json index f52442179..9e30f517f 100755 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "source-map-js": "^1.0.2" }, "devDependencies": { - "@logux/eslint-config": "^47.0.0", + "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", "@types/node": "^17.0.25", @@ -90,7 +90,7 @@ "check-dts": "^0.6.6", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.13.0", + "eslint": "^8.14.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.1.0", @@ -154,7 +154,6 @@ ], "rules": { "@typescript-eslint/no-unused-expressions": "off", - "n/no-unsupported-features/es-syntax": "off", "no-unused-expressions": "off", "no-console": "off", "func-style": "off" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bfdf1554c..efdf2c256 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: 5.3 specifiers: - '@logux/eslint-config': ^47.0.0 + '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 '@types/node': ^17.0.25 @@ -11,7 +11,7 @@ specifiers: check-dts: ^0.6.6 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.13.0 + eslint: ^8.14.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.1.0 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.0.0_d0247f4bca15716e90ca5d290035f5d0 + '@logux/eslint-config': 47.2.0_6c64d8a29505f396e85a7a09189cde65 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 '@types/node': 17.0.25 - '@typescript-eslint/eslint-plugin': 5.20.0_b9ac9b5656ce5dffade639fcf5e491bf - '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/eslint-plugin': 5.20.0_81f0d1a74f014d44d273bd1612c85fd9 + '@typescript-eslint/parser': 5.20.0_eslint@8.14.0+typescript@4.6.3 c8: 7.11.2 check-dts: 0.6.6_typescript@4.6.3 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.13.0 - eslint-config-standard: 17.0.0_dc19839e011c6dcd66ff2ec979bc96a1 - eslint-plugin-import: 2.26.0_eslint@8.13.0 - eslint-plugin-n: 15.1.0_eslint@8.13.0 + eslint: 8.14.0 + eslint-config-standard: 17.0.0_288458a4b7d86b306f0e96ba7939a3dc + eslint-plugin-import: 2.26.0_eslint@8.14.0 + eslint-plugin-n: 15.1.0_eslint@8.14.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.13.0 + eslint-plugin-promise: 6.0.0_eslint@8.14.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -82,8 +82,8 @@ packages: '@cspotcode/source-map-consumer': 0.8.0 dev: true - /@eslint/eslintrc/1.2.1: - resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} + /@eslint/eslintrc/1.2.2: + resolution: {integrity: sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -119,8 +119,8 @@ packages: engines: {node: '>=8'} dev: true - /@jridgewell/resolve-uri/3.0.5: - resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} + /@jridgewell/resolve-uri/3.0.6: + resolution: {integrity: sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==} engines: {node: '>=6.0.0'} dev: true @@ -131,27 +131,27 @@ packages: /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.0.5 + '@jridgewell/resolve-uri': 3.0.6 '@jridgewell/sourcemap-codec': 1.4.11 dev: true - /@logux/eslint-config/47.0.0_d0247f4bca15716e90ca5d290035f5d0: - resolution: {integrity: sha512-pVIfwiwyYWbHmVPYeGQoPRScDRdcf93r0rYyreELooW8Dul0KyxTSVO+kn4e96grY7chNtvR2Omi+iBGxVZRmQ==} + /@logux/eslint-config/47.2.0_6c64d8a29505f396e85a7a09189cde65: + resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: - eslint: ^8.13.0 + eslint: ^8.14.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.1.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.13.0 - eslint-config-standard: 17.0.0_dc19839e011c6dcd66ff2ec979bc96a1 - eslint-plugin-import: 2.26.0_eslint@8.13.0 - eslint-plugin-n: 15.1.0_eslint@8.13.0 + eslint: 8.14.0 + eslint-config-standard: 17.0.0_288458a4b7d86b306f0e96ba7939a3dc + eslint-plugin-import: 2.26.0_eslint@8.14.0 + eslint-plugin-n: 15.1.0_eslint@8.14.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.13.0 + eslint-plugin-promise: 6.0.0_eslint@8.14.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -181,7 +181,7 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.36 + esbuild: 0.14.38 nanoid: 3.3.3 size-limit: 7.0.8 dev: true @@ -248,7 +248,7 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: + /@typescript-eslint/eslint-plugin/5.20.0_81f0d1a74f014d44d273bd1612c85fd9: resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -259,12 +259,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.20.0_eslint@8.14.0+typescript@4.6.3 '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/type-utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/type-utils': 5.20.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.20.0_eslint@8.14.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.14.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -275,7 +275,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3: + /@typescript-eslint/parser/5.20.0_eslint@8.14.0+typescript@4.6.3: resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -289,7 +289,7 @@ packages: '@typescript-eslint/types': 5.20.0 '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.14.0 typescript: 4.6.3 transitivePeerDependencies: - supports-color @@ -303,7 +303,7 @@ packages: '@typescript-eslint/visitor-keys': 5.20.0 dev: true - /@typescript-eslint/type-utils/5.20.0_eslint@8.13.0+typescript@4.6.3: + /@typescript-eslint/type-utils/5.20.0_eslint@8.14.0+typescript@4.6.3: resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -313,9 +313,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.20.0_eslint@8.14.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.14.0 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: @@ -348,7 +348,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3: + /@typescript-eslint/utils/5.20.0_eslint@8.14.0+typescript@4.6.3: resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -358,9 +358,9 @@ packages: '@typescript-eslint/scope-manager': 5.20.0 '@typescript-eslint/types': 5.20.0 '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 - eslint: 8.13.0 + eslint: 8.14.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.14.0 transitivePeerDependencies: - supports-color - typescript @@ -737,8 +737,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.36: - resolution: {integrity: sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==} + /esbuild-android-64/0.14.38: + resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -746,8 +746,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.36: - resolution: {integrity: sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==} + /esbuild-android-arm64/0.14.38: + resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -755,8 +755,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.36: - resolution: {integrity: sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==} + /esbuild-darwin-64/0.14.38: + resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -764,8 +764,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.36: - resolution: {integrity: sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==} + /esbuild-darwin-arm64/0.14.38: + resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -773,8 +773,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.36: - resolution: {integrity: sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==} + /esbuild-freebsd-64/0.14.38: + resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -782,8 +782,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.36: - resolution: {integrity: sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==} + /esbuild-freebsd-arm64/0.14.38: + resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -791,8 +791,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.36: - resolution: {integrity: sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==} + /esbuild-linux-32/0.14.38: + resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -800,8 +800,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.36: - resolution: {integrity: sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==} + /esbuild-linux-64/0.14.38: + resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -809,8 +809,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.36: - resolution: {integrity: sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==} + /esbuild-linux-arm/0.14.38: + resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -818,8 +818,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.36: - resolution: {integrity: sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==} + /esbuild-linux-arm64/0.14.38: + resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -827,8 +827,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.36: - resolution: {integrity: sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==} + /esbuild-linux-mips64le/0.14.38: + resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -836,8 +836,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.36: - resolution: {integrity: sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==} + /esbuild-linux-ppc64le/0.14.38: + resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -845,8 +845,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.36: - resolution: {integrity: sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==} + /esbuild-linux-riscv64/0.14.38: + resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -854,8 +854,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.36: - resolution: {integrity: sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==} + /esbuild-linux-s390x/0.14.38: + resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -863,8 +863,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.36: - resolution: {integrity: sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==} + /esbuild-netbsd-64/0.14.38: + resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -872,8 +872,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.36: - resolution: {integrity: sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==} + /esbuild-openbsd-64/0.14.38: + resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -881,8 +881,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.36: - resolution: {integrity: sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==} + /esbuild-sunos-64/0.14.38: + resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -890,8 +890,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.36: - resolution: {integrity: sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==} + /esbuild-windows-32/0.14.38: + resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -899,8 +899,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.36: - resolution: {integrity: sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==} + /esbuild-windows-64/0.14.38: + resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -908,8 +908,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.36: - resolution: {integrity: sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==} + /esbuild-windows-arm64/0.14.38: + resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -917,32 +917,32 @@ packages: dev: true optional: true - /esbuild/0.14.36: - resolution: {integrity: sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==} + /esbuild/0.14.38: + resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.36 - esbuild-android-arm64: 0.14.36 - esbuild-darwin-64: 0.14.36 - esbuild-darwin-arm64: 0.14.36 - esbuild-freebsd-64: 0.14.36 - esbuild-freebsd-arm64: 0.14.36 - esbuild-linux-32: 0.14.36 - esbuild-linux-64: 0.14.36 - esbuild-linux-arm: 0.14.36 - esbuild-linux-arm64: 0.14.36 - esbuild-linux-mips64le: 0.14.36 - esbuild-linux-ppc64le: 0.14.36 - esbuild-linux-riscv64: 0.14.36 - esbuild-linux-s390x: 0.14.36 - esbuild-netbsd-64: 0.14.36 - esbuild-openbsd-64: 0.14.36 - esbuild-sunos-64: 0.14.36 - esbuild-windows-32: 0.14.36 - esbuild-windows-64: 0.14.36 - esbuild-windows-arm64: 0.14.36 + esbuild-android-64: 0.14.38 + esbuild-android-arm64: 0.14.38 + esbuild-darwin-64: 0.14.38 + esbuild-darwin-arm64: 0.14.38 + esbuild-freebsd-64: 0.14.38 + esbuild-freebsd-arm64: 0.14.38 + esbuild-linux-32: 0.14.38 + esbuild-linux-64: 0.14.38 + esbuild-linux-arm: 0.14.38 + esbuild-linux-arm64: 0.14.38 + esbuild-linux-mips64le: 0.14.38 + esbuild-linux-ppc64le: 0.14.38 + esbuild-linux-riscv64: 0.14.38 + esbuild-linux-s390x: 0.14.38 + esbuild-netbsd-64: 0.14.38 + esbuild-openbsd-64: 0.14.38 + esbuild-sunos-64: 0.14.38 + esbuild-windows-32: 0.14.38 + esbuild-windows-64: 0.14.38 + esbuild-windows-arm64: 0.14.38 dev: true /escalade/3.1.1: @@ -955,7 +955,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_dc19839e011c6dcd66ff2ec979bc96a1: + /eslint-config-standard/17.0.0_288458a4b7d86b306f0e96ba7939a3dc: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -963,10 +963,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.13.0 - eslint-plugin-import: 2.26.0_eslint@8.13.0 - eslint-plugin-n: 15.1.0_eslint@8.13.0 - eslint-plugin-promise: 6.0.0_eslint@8.13.0 + eslint: 8.14.0 + eslint-plugin-import: 2.26.0_eslint@8.14.0 + eslint-plugin-n: 15.1.0_eslint@8.14.0 + eslint-plugin-promise: 6.0.0_eslint@8.14.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -984,18 +984,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/4.1.0_eslint@8.13.0: + /eslint-plugin-es/4.1.0_eslint@8.14.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.13.0 + eslint: 8.14.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_eslint@8.13.0: + /eslint-plugin-import/2.26.0_eslint@8.14.0: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1005,7 +1005,7 @@ packages: array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.13.0 + eslint: 8.14.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 @@ -1017,16 +1017,16 @@ packages: tsconfig-paths: 3.14.1 dev: true - /eslint-plugin-n/15.1.0_eslint@8.13.0: + /eslint-plugin-n/15.1.0_eslint@8.14.0: resolution: {integrity: sha512-Tgx4Z58QXv2Ha7Qzp0u4wavnZNZ3AOievZMxrAxi7nvDbzD5B/JqOD80LHYcGHFZc2HD9jDmM/+KWMPov46a4A==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 4.1.0 - eslint: 8.13.0 - eslint-plugin-es: 4.1.0_eslint@8.13.0 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint: 8.14.0 + eslint-plugin-es: 4.1.0_eslint@8.14.0 + eslint-utils: 3.0.0_eslint@8.14.0 ignore: 5.2.0 is-core-module: 2.9.0 minimatch: 3.1.2 @@ -1041,13 +1041,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.13.0: + /eslint-plugin-promise/6.0.0_eslint@8.14.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.13.0 + eslint: 8.14.0 dev: true /eslint-scope/5.1.1: @@ -1073,13 +1073,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.13.0: + /eslint-utils/3.0.0_eslint@8.14.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.13.0 + eslint: 8.14.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1098,12 +1098,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.13.0: - resolution: {integrity: sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==} + /eslint/8.14.0: + resolution: {integrity: sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.1 + '@eslint/eslintrc': 1.2.2 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -1112,7 +1112,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.14.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 From 3b934bbfb53ceb1204fc827559d1ac0b207b735f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 24 Apr 2022 19:49:06 +0100 Subject: [PATCH 2518/3047] Update check-dts --- package.json | 2 +- pnpm-lock.yaml | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 9e30f517f..86e33d6b4 100755 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "c8": "^7.11.2", - "check-dts": "^0.6.6", + "check-dts": "^0.6.7", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", "eslint": "^8.14.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index efdf2c256..66cfeb3ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,7 @@ specifiers: '@typescript-eslint/eslint-plugin': ^5.20.0 '@typescript-eslint/parser': ^5.20.0 c8: ^7.11.2 - check-dts: ^0.6.6 + check-dts: ^0.6.7 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 eslint: ^8.14.0 @@ -44,7 +44,7 @@ devDependencies: '@typescript-eslint/eslint-plugin': 5.20.0_81f0d1a74f014d44d273bd1612c85fd9 '@typescript-eslint/parser': 5.20.0_eslint@8.14.0+typescript@4.6.3 c8: 7.11.2 - check-dts: 0.6.6_typescript@4.6.3 + check-dts: 0.6.7_typescript@4.6.3 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 eslint: 8.14.0 @@ -529,15 +529,15 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.6_typescript@4.6.3: - resolution: {integrity: sha512-2KzynoH1f8wVhZXUeqxeW2dOOFliktitYlyyOsLfZBk5K5n1U1B3uzJLFiJfwqlwoT1Ug7RNbi8xmMpUKKmwhg==} + /check-dts/0.6.7_typescript@4.6.3: + resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true peerDependencies: typescript: '>=4.0.0' dependencies: fast-glob: 3.2.11 - nanospinner: 0.6.0 + nanospinner: 1.1.0 picocolors: 1.0.0 typescript: 4.6.3 vfile-location: 4.0.1 @@ -1710,12 +1710,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /nanospinner/0.6.0: - resolution: {integrity: sha512-G2QQwVJListXbtsBW5r5kJs8WXybsO9/SQxzcvSmPRSIOQOeR0v/ETI9hncOna0tzWscdjjcCZUVCJoR4eJlag==} - dependencies: - picocolors: 1.0.0 - dev: true - /nanospinner/1.1.0: resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} dependencies: From e5c9298874912c970f9a1e32491ca7a2bdcd95d9 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 24 Apr 2022 22:37:50 +0100 Subject: [PATCH 2519/3047] Use Node.js 18 on Windows --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d2bcf5b10..35903fd03 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -88,7 +88,7 @@ jobs: - name: Install Node.js LTS uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 cache: pnpm - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts From fa73b4c5d4f7b3ff51f0a77ae75201f36861519e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 24 Apr 2022 22:49:47 +0100 Subject: [PATCH 2520/3047] Update Deno CI config --- .github/workflows/deno.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deno.yml b/.github/workflows/deno.yml index cc2a41613..41b567c31 100644 --- a/.github/workflows/deno.yml +++ b/.github/workflows/deno.yml @@ -16,13 +16,13 @@ jobs: deno-version: v1.x - name: Checkout postcss-deno - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: postcss/postcss-deno token: ${{ secrets.PAT }} - name: Checkout sources - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: main path: postcss From e1a055cf4c66b83a6d0f59f410720c3d0ef5da41 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 29 Apr 2022 16:39:47 +0200 Subject: [PATCH 2521/3047] Update dependencies --- package.json | 10 +-- pnpm-lock.yaml | 166 ++++++++++++++++++++++++------------------------- 2 files changed, 88 insertions(+), 88 deletions(-) diff --git a/package.json b/package.json index 86e33d6b4..3b5a082de 100755 --- a/package.json +++ b/package.json @@ -83,9 +83,9 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.25", - "@typescript-eslint/eslint-plugin": "^5.20.0", - "@typescript-eslint/parser": "^5.20.0", + "@types/node": "^17.0.30", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", "c8": "^7.11.2", "check-dts": "^0.6.7", "clean-publish": "^4.0.0", @@ -93,7 +93,7 @@ "eslint": "^8.14.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.1.0", + "eslint-plugin-n": "^15.2.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.0", "fs-extra": "^10.1.0", @@ -104,7 +104,7 @@ "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", "ts-node": "^10.7.0", - "typescript": "^4.6.3", + "typescript": "^4.6.4", "uvu": "^0.5.3" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66cfeb3ad..34e32fabb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,9 +4,9 @@ specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.25 - '@typescript-eslint/eslint-plugin': ^5.20.0 - '@typescript-eslint/parser': ^5.20.0 + '@types/node': ^17.0.30 + '@typescript-eslint/eslint-plugin': ^5.21.0 + '@typescript-eslint/parser': ^5.21.0 c8: ^7.11.2 check-dts: ^0.6.7 clean-publish: ^4.0.0 @@ -14,7 +14,7 @@ specifiers: eslint: ^8.14.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.1.0 + eslint-plugin-n: ^15.2.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 fs-extra: ^10.1.0 @@ -28,7 +28,7 @@ specifiers: source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.7.0 - typescript: ^4.6.3 + typescript: ^4.6.4 uvu: ^0.5.3 dependencies: @@ -37,20 +37,20 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_6c64d8a29505f396e85a7a09189cde65 + '@logux/eslint-config': 47.2.0_e35ebbb1355184d838496251cefc4537 '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.25 - '@typescript-eslint/eslint-plugin': 5.20.0_81f0d1a74f014d44d273bd1612c85fd9 - '@typescript-eslint/parser': 5.20.0_eslint@8.14.0+typescript@4.6.3 + '@types/node': 17.0.30 + '@typescript-eslint/eslint-plugin': 5.21.0_ade6595cb7be1524e723c025c098ae5d + '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.4 c8: 7.11.2 - check-dts: 0.6.7_typescript@4.6.3 + check-dts: 0.6.7_typescript@4.6.4 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 eslint: 8.14.0 - eslint-config-standard: 17.0.0_288458a4b7d86b306f0e96ba7939a3dc + eslint-config-standard: 17.0.0_14af0798efd537ecbc8732fe6f15829c eslint-plugin-import: 2.26.0_eslint@8.14.0 - eslint-plugin-n: 15.1.0_eslint@8.14.0 + eslint-plugin-n: 15.2.0_eslint@8.14.0 eslint-plugin-prefer-let: 3.0.1 eslint-plugin-promise: 6.0.0_eslint@8.14.0 fs-extra: 10.1.0 @@ -60,8 +60,8 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.7.0_de7c86b0cde507c63a0402da5b982bd3 - typescript: 4.6.3 + ts-node: 10.7.0_706dd5b3c16966aa1e66930b7cc80c2b + typescript: 4.6.4 uvu: 0.5.3 packages: @@ -135,7 +135,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.11 dev: true - /@logux/eslint-config/47.2.0_6c64d8a29505f396e85a7a09189cde65: + /@logux/eslint-config/47.2.0_e35ebbb1355184d838496251cefc4537: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -147,9 +147,9 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.14.0 - eslint-config-standard: 17.0.0_288458a4b7d86b306f0e96ba7939a3dc + eslint-config-standard: 17.0.0_14af0798efd537ecbc8732fe6f15829c eslint-plugin-import: 2.26.0_eslint@8.14.0 - eslint-plugin-n: 15.1.0_eslint@8.14.0 + eslint-plugin-n: 15.2.0_eslint@8.14.0 eslint-plugin-prefer-let: 3.0.1 eslint-plugin-promise: 6.0.0_eslint@8.14.0 dev: true @@ -225,7 +225,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.25 + '@types/node': 17.0.30 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -240,16 +240,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.25: - resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==} + /@types/node/17.0.30: + resolution: {integrity: sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.20.0_81f0d1a74f014d44d273bd1612c85fd9: - resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==} + /@typescript-eslint/eslint-plugin/5.21.0_ade6595cb7be1524e723c025c098ae5d: + resolution: {integrity: sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -259,24 +259,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.20.0_eslint@8.14.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/type-utils': 5.20.0_eslint@8.14.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.20.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.21.0 + '@typescript-eslint/type-utils': 5.21.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.4 debug: 4.3.4 eslint: 8.14.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.20.0_eslint@8.14.0+typescript@4.6.3: - resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==} + /@typescript-eslint/parser/5.21.0_eslint@8.14.0+typescript@4.6.4: + resolution: {integrity: sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -285,26 +285,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.21.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.4 debug: 4.3.4 eslint: 8.14.0 - typescript: 4.6.3 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.20.0: - resolution: {integrity: sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==} + /@typescript-eslint/scope-manager/5.21.0: + resolution: {integrity: sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/visitor-keys': 5.20.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/visitor-keys': 5.21.0 dev: true - /@typescript-eslint/type-utils/5.20.0_eslint@8.14.0+typescript@4.6.3: - resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==} + /@typescript-eslint/type-utils/5.21.0_eslint@8.14.0+typescript@4.6.4: + resolution: {integrity: sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -313,22 +313,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.20.0_eslint@8.14.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.4 debug: 4.3.4 eslint: 8.14.0 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.20.0: - resolution: {integrity: sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==} + /@typescript-eslint/types/5.21.0: + resolution: {integrity: sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.20.0_typescript@4.6.3: - resolution: {integrity: sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==} + /@typescript-eslint/typescript-estree/5.21.0_typescript@4.6.4: + resolution: {integrity: sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -336,28 +336,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/visitor-keys': 5.20.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/visitor-keys': 5.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.20.0_eslint@8.14.0+typescript@4.6.3: - resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==} + /@typescript-eslint/utils/5.21.0_eslint@8.14.0+typescript@4.6.4: + resolution: {integrity: sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.20.0 - '@typescript-eslint/types': 5.20.0 - '@typescript-eslint/typescript-estree': 5.20.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.21.0 + '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.4 eslint: 8.14.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.14.0 @@ -366,20 +366,20 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.20.0: - resolution: {integrity: sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==} + /@typescript-eslint/visitor-keys/5.21.0: + resolution: {integrity: sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.20.0 + '@typescript-eslint/types': 5.21.0 eslint-visitor-keys: 3.3.0 dev: true - /acorn-jsx/5.3.2_acorn@8.7.0: + /acorn-jsx/5.3.2_acorn@8.7.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.0 + acorn: 8.7.1 dev: true /acorn-walk/8.2.0: @@ -387,8 +387,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -529,7 +529,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.6.3: + /check-dts/0.6.7_typescript@4.6.4: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true @@ -539,7 +539,7 @@ packages: fast-glob: 3.2.11 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.6.3 + typescript: 4.6.4 vfile-location: 4.0.1 dev: true @@ -719,7 +719,7 @@ packages: object.assign: 4.1.2 string.prototype.trimend: 1.0.4 string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + unbox-primitive: 1.0.2 dev: true /es-shim-unscopables/1.0.0: @@ -955,7 +955,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_288458a4b7d86b306f0e96ba7939a3dc: + /eslint-config-standard/17.0.0_14af0798efd537ecbc8732fe6f15829c: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -965,7 +965,7 @@ packages: dependencies: eslint: 8.14.0 eslint-plugin-import: 2.26.0_eslint@8.14.0 - eslint-plugin-n: 15.1.0_eslint@8.14.0 + eslint-plugin-n: 15.2.0_eslint@8.14.0 eslint-plugin-promise: 6.0.0_eslint@8.14.0 dev: true @@ -1017,8 +1017,8 @@ packages: tsconfig-paths: 3.14.1 dev: true - /eslint-plugin-n/15.1.0_eslint@8.14.0: - resolution: {integrity: sha512-Tgx4Z58QXv2Ha7Qzp0u4wavnZNZ3AOievZMxrAxi7nvDbzD5B/JqOD80LHYcGHFZc2HD9jDmM/+KWMPov46a4A==} + /eslint-plugin-n/15.2.0_eslint@8.14.0: + resolution: {integrity: sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' @@ -1146,8 +1146,8 @@ packages: resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 eslint-visitor-keys: 3.3.0 dev: true @@ -2091,7 +2091,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.7.0_de7c86b0cde507c63a0402da5b982bd3: + /ts-node/10.7.0_706dd5b3c16966aa1e66930b7cc80c2b: resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true peerDependencies: @@ -2110,14 +2110,14 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.25 - acorn: 8.7.0 + '@types/node': 17.0.30 + acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.6.3 + typescript: 4.6.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2135,14 +2135,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.6.3: + /tsutils/3.21.0_typescript@4.6.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.6.3 + typescript: 4.6.4 dev: true /type-check/0.4.0: @@ -2157,16 +2157,16 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.6.3: - resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} + /typescript/4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 + call-bind: 1.0.2 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 From 29556284c2d4f5caf5bd3c15e0e42db61bbb620b Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 29 Apr 2022 10:20:55 -0400 Subject: [PATCH 2522/3047] Fix `append()` failing after mutating nodes through .parent --- lib/container.js | 2 +- test/visitor.test.ts | 47 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/lib/container.js b/lib/container.js index a511a829d..328779d1c 100644 --- a/lib/container.js +++ b/lib/container.js @@ -326,7 +326,7 @@ class Container extends Node { i.raws.before = sample.raws.before.replace(/\S/g, '') } } - i.parent = this + i.parent = this.proxyOf return i }) diff --git a/test/visitor.test.ts b/test/visitor.test.ts index d00549a08..ff1a2d3ab 100755 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -7,6 +7,7 @@ import postcss, { Container, Root, Rule, + AtRule, Declaration, Plugin, PluginCreator, @@ -1552,4 +1553,50 @@ test('marks cleaned nodes as dirty on moving in a document', () => { ]) }) +test('append works after reassigning nodes through .parent', async () => { + let plugin: Plugin = { + postcssPlugin: 'test', + + Rule(rule) { + if ( + !( + rule.selector === '.nested' && + rule.nodes.length === 1 && + rule.nodes[0].type === 'atrule' + ) + ) { + return + } + + let atrule = rule.nodes[0] + + atrule.append(rule.clone({ nodes: [] }).append(...atrule.nodes)) + + rule.after(atrule) + rule.remove() + }, + + OnceExit(root) { + let firstNode = root.nodes[0] as AtRule + let secondNode = root.nodes[1] as AtRule + let rule2 = secondNode.nodes[0] + rule2.parent!.nodes = rule2.parent!.nodes + firstNode.append(...secondNode.nodes) + secondNode.remove() + } + } + + let { css } = await postcss([plugin]).process( + postcss.parse( + `@media (min-width: 640px) { .page { width: auto; } } .nested { @media (min-width: 640px) { width: auto; } }` + ), + { from: 'whatever' } + ) + + is( + css, + '@media (min-width: 640px) { .page { width: auto; } .nested { width: auto } }' + ) +}) + test.run() From 02a026e11c03054ba0d5cf858ec275c95790daee Mon Sep 17 00:00:00 2001 From: Peter Blinov Date: Fri, 29 Apr 2022 21:57:16 +0300 Subject: [PATCH 2523/3047] Update README.md Update the link to postcss-preset-env plugin. The repo was moved to https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 933e1ce79..728d76928 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ If you have any new ideas, [PostCSS plugin development] is really easy. [PostCSS plugin development]: https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md [`postcss-inline-svg`]: https://github.com/TrySound/postcss-inline-svg -[`postcss-preset-env`]: https://github.com/jonathantneal/postcss-preset-env +[`postcss-preset-env`]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env [`react-css-modules`]: https://github.com/gajus/react-css-modules [`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset [`postcss-write-svg`]: https://github.com/jonathantneal/postcss-write-svg From b03cf14390f2c9f7dbff8b6c2db4a4c019e2375e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 30 Apr 2022 02:47:28 +0200 Subject: [PATCH 2524/3047] Clean up code --- test/visitor.test.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/visitor.test.ts b/test/visitor.test.ts index ff1a2d3ab..3190a627a 100755 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -1588,14 +1588,15 @@ test('append works after reassigning nodes through .parent', async () => { let { css } = await postcss([plugin]).process( postcss.parse( - `@media (min-width: 640px) { .page { width: auto; } } .nested { @media (min-width: 640px) { width: auto; } }` + `@media (min-width:640px) { .page { width: auto; } } ` + + `.nested { @media (min-width:640px) { width: auto; } }` ), { from: 'whatever' } ) is( css, - '@media (min-width: 640px) { .page { width: auto; } .nested { width: auto } }' + '@media (min-width:640px) { .page { width: auto; } .nested { width: auto } }' ) }) From 80608c6f6e5f04f90fa47dc520969a91e750126d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 30 Apr 2022 02:48:56 +0200 Subject: [PATCH 2525/3047] Release 8.4.13 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1999a2f6a..8f2ddbe57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.13 +* Fixed `append()` error after using `.parent` (by Jordan Pittman). + ## 8.4.12 * Fixed `package.funding` to have same value between all PostCSS packages. diff --git a/lib/processor.js b/lib/processor.js index 8bb95773a..555a925ff 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.12' + this.version = '8.4.13' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 3b5a082de..26a4ef239 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.12", + "version": "8.4.13", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From fc19f1b2cd7a286f1346d9acfa5d99887a5c2003 Mon Sep 17 00:00:00 2001 From: Vitaly Date: Fri, 13 May 2022 16:00:28 +0300 Subject: [PATCH 2526/3047] fix: print deprecation warning only when plugin is used --- lib/postcss.js | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/postcss.js b/lib/postcss.js index d3f640e4e..080ee8378 100644 --- a/lib/postcss.js +++ b/lib/postcss.js @@ -27,25 +27,27 @@ function postcss(...plugins) { } postcss.plugin = function plugin(name, initializer) { - // eslint-disable-next-line no-console - if (console && console.warn) { + let warningPrinted = false + function creator(...args) { // eslint-disable-next-line no-console - console.warn( - name + - ': postcss.plugin was deprecated. Migration guide:\n' + - 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' - ) - if (process.env.LANG && process.env.LANG.startsWith('cn')) { - /* c8 ignore next 7 */ + if (console && console.warn && !warningPrinted) { + warningPrinted = true // eslint-disable-next-line no-console console.warn( name + - ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + - 'https://www.w3ctech.com/topic/2226' + ': postcss.plugin was deprecated. Migration guide:\n' + + 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' ) + if (process.env.LANG && process.env.LANG.startsWith('cn')) { + /* c8 ignore next 7 */ + // eslint-disable-next-line no-console + console.warn( + name + + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + + 'https://www.w3ctech.com/topic/2226' + ) + } } - } - function creator(...args) { let transformer = initializer(...args) transformer.postcssPlugin = name transformer.postcssVersion = new Processor().version From 2295e280665431a14a3656b30d48841469cc98b8 Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 13 May 2022 17:39:56 +0300 Subject: [PATCH 2527/3047] fix tests --- test/postcss.test.ts | 12 ++++++++---- test/processor.test.ts | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 47043fa69..279ea60a2 100755 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -121,8 +121,6 @@ test('has deprecated method to creat plugins', () => { }) } }) - equal(warn.callCount, 1) - match(warn.calls[0][0], /postcss\.plugin was deprecated/) let func1: any = postcss(plugin).plugins[0] is(func1.postcssPlugin, 'test') @@ -134,9 +132,13 @@ test('has deprecated method to creat plugins', () => { let result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }') is(result1.css, 'a{ two: 2 }') + equal(warn.callCount, 1) let result2 = postcss(plugin).process('a{ one: 1; two: 2 }') is(result2.css, 'a{ one: 1 }') + + equal(warn.callCount, 1) + match(warn.calls[0][0], /postcss\.plugin was deprecated/) }) test('creates a shortcut to process css', async () => { @@ -148,7 +150,6 @@ test('creates a shortcut to process css', async () => { }) } }) - equal(warn.callCount, 1) let result1 = plugin.process('a{value:foo}') is(result1.css, 'a{value:bar}') @@ -159,6 +160,8 @@ test('creates a shortcut to process css', async () => { let result = await plugin.process('a{value:foo}', { from: 'a' }, 'baz') equal(result.opts, { from: 'a' }) is(result.css, 'a{value:baz}') + + equal(warn.callCount, 1) }) test('does not call plugin constructor', () => { @@ -169,13 +172,14 @@ test('does not call plugin constructor', () => { return () => {} }) is(calls, 0) - equal(warn.callCount, 1) postcss(plugin).process('a{}') is(calls, 1) postcss(plugin()).process('a{}') is(calls, 2) + + equal(warn.callCount, 1) }) test.run() diff --git a/test/processor.test.ts b/test/processor.test.ts index 23234ac38..09a579c2d 100755 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -390,8 +390,8 @@ test('checks plugin compatibility', () => { throw new Error('Er') } }) - equal(warn.callCount, 1) let func = plugin() + equal(warn.callCount, 1) func.postcssVersion = '2.1.5' function processBy(version: string): void { @@ -562,9 +562,9 @@ test('supports plugins returning processors', () => { let other: any = (postcss as any).plugin('test', () => { return new Processor([a]) }) - equal(warn.callCount, 1) processor.use(other) equal(processor.plugins, [a]) + equal(warn.callCount, 1) }) test('supports plugin creators returning processors', () => { From 7cd8e273c03a94fb79e1eee0db58f4cd6d4cbf86 Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Fri, 13 May 2022 17:45:44 +0300 Subject: [PATCH 2528/3047] improve warnings count testing --- test/postcss.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 279ea60a2..ee2b88dba 100755 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -122,9 +122,12 @@ test('has deprecated method to creat plugins', () => { } }) + equal(warn.callCount, 0) + let func1: any = postcss(plugin).plugins[0] is(func1.postcssPlugin, 'test') match(func1.postcssVersion, /\d+.\d+.\d+/) + equal(warn.callCount, 1) let func2: any = postcss(plugin()).plugins[0] equal(func2.postcssPlugin, func1.postcssPlugin) @@ -132,7 +135,6 @@ test('has deprecated method to creat plugins', () => { let result1 = postcss(plugin('one')).process('a{ one: 1; two: 2 }') is(result1.css, 'a{ two: 2 }') - equal(warn.callCount, 1) let result2 = postcss(plugin).process('a{ one: 1; two: 2 }') is(result2.css, 'a{ one: 1 }') From 9bda624b57de32b0f18372f6346b27dfe86a13bd Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 13 May 2022 23:28:17 +0200 Subject: [PATCH 2529/3047] Try to fix CI --- .github/workflows/test.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 35903fd03..2d7e3b5d7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,6 @@ jobs: node-version: - 16 - 14 - - 12 name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository @@ -55,7 +54,11 @@ jobs: FORCE_COLOR: 2 old: runs-on: ubuntu-latest - name: Node.js 10 Quick + strategy: + matrix: + node-version: + - 12 + name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository uses: actions/checkout@v3 @@ -65,10 +68,10 @@ jobs: version: 3 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - - name: Install Node.js 10 + - name: Install Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: - node-version: 10 + node-version: ${{ matrix.node-version }} - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests From 24f2efc9a36d31c7a0cdf884804d3cfaea024be2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 13 May 2022 23:29:42 +0200 Subject: [PATCH 2530/3047] Update depedencies --- package.json | 10 +- pnpm-lock.yaml | 449 ++++++++++++++++++++++++++++--------------------- 2 files changed, 263 insertions(+), 196 deletions(-) diff --git a/package.json b/package.json index 26a4ef239..9be5dc7b7 100755 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.3.3", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -83,14 +83,14 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.30", - "@typescript-eslint/eslint-plugin": "^5.21.0", - "@typescript-eslint/parser": "^5.21.0", + "@types/node": "^17.0.33", + "@typescript-eslint/eslint-plugin": "^5.23.0", + "@typescript-eslint/parser": "^5.23.0", "c8": "^7.11.2", "check-dts": "^0.6.7", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.14.0", + "eslint": "^8.15.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34e32fabb..b5fe399b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,17 +1,17 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.30 - '@typescript-eslint/eslint-plugin': ^5.21.0 - '@typescript-eslint/parser': ^5.21.0 + '@types/node': ^17.0.33 + '@typescript-eslint/eslint-plugin': ^5.23.0 + '@typescript-eslint/parser': ^5.23.0 c8: ^7.11.2 check-dts: ^0.6.7 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.14.0 + eslint: ^8.15.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.2.0 @@ -19,7 +19,7 @@ specifiers: eslint-plugin-promise: ^6.0.0 fs-extra: ^10.1.0 nanodelay: ^1.0.8 - nanoid: ^3.3.3 + nanoid: ^3.3.4 nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 @@ -32,27 +32,27 @@ specifiers: uvu: ^0.5.3 dependencies: - nanoid: 3.3.3 + nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_e35ebbb1355184d838496251cefc4537 + '@logux/eslint-config': 47.2.0_4zaonxvyaqytwhmnesacmrehqa '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.30 - '@typescript-eslint/eslint-plugin': 5.21.0_ade6595cb7be1524e723c025c098ae5d - '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.4 + '@types/node': 17.0.33 + '@typescript-eslint/eslint-plugin': 5.23.0_c63nfttrfhylg3zmgcxfslaw44 + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu c8: 7.11.2 check-dts: 0.6.7_typescript@4.6.4 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.14.0 - eslint-config-standard: 17.0.0_14af0798efd537ecbc8732fe6f15829c - eslint-plugin-import: 2.26.0_eslint@8.14.0 - eslint-plugin-n: 15.2.0_eslint@8.14.0 + eslint: 8.15.0 + eslint-config-standard: 17.0.0_4b4uawhw2diczlyyjnbxhuzoii + eslint-plugin-import: 2.26.0_doddzorl55y6dbr5ij3nshfl64 + eslint-plugin-n: 15.2.0_eslint@8.15.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.14.0 + eslint-plugin-promise: 6.0.0_eslint@8.15.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.7.0_706dd5b3c16966aa1e66930b7cc80c2b + ts-node: 10.7.0_2e3zkt3gzqz6r43dj4x46rot3i typescript: 4.6.4 uvu: 0.5.3 @@ -82,14 +82,14 @@ packages: '@cspotcode/source-map-consumer': 0.8.0 dev: true - /@eslint/eslintrc/1.2.2: - resolution: {integrity: sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==} + /@eslint/eslintrc/1.2.3: + resolution: {integrity: sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.3.1 - globals: 13.13.0 + espree: 9.3.2 + globals: 13.15.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -119,23 +119,23 @@ packages: engines: {node: '>=8'} dev: true - /@jridgewell/resolve-uri/3.0.6: - resolution: {integrity: sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==} + /@jridgewell/resolve-uri/3.0.7: + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.11: - resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} + /@jridgewell/sourcemap-codec/1.4.13: + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} dev: true - /@jridgewell/trace-mapping/0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + /@jridgewell/trace-mapping/0.3.13: + resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} dependencies: - '@jridgewell/resolve-uri': 3.0.6 - '@jridgewell/sourcemap-codec': 1.4.11 + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 dev: true - /@logux/eslint-config/47.2.0_e35ebbb1355184d838496251cefc4537: + /@logux/eslint-config/47.2.0_4zaonxvyaqytwhmnesacmrehqa: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -146,12 +146,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.14.0 - eslint-config-standard: 17.0.0_14af0798efd537ecbc8732fe6f15829c - eslint-plugin-import: 2.26.0_eslint@8.14.0 - eslint-plugin-n: 15.2.0_eslint@8.14.0 + eslint: 8.15.0 + eslint-config-standard: 17.0.0_4b4uawhw2diczlyyjnbxhuzoii + eslint-plugin-import: 2.26.0_doddzorl55y6dbr5ij3nshfl64 + eslint-plugin-n: 15.2.0_eslint@8.15.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.14.0 + eslint-plugin-promise: 6.0.0_eslint@8.15.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -181,8 +181,8 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.38 - nanoid: 3.3.3 + esbuild: 0.14.39 + nanoid: 3.3.4 size-limit: 7.0.8 dev: true @@ -225,7 +225,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.30 + '@types/node': 17.0.33 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -240,16 +240,16 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/17.0.30: - resolution: {integrity: sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==} + /@types/node/17.0.33: + resolution: {integrity: sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.21.0_ade6595cb7be1524e723c025c098ae5d: - resolution: {integrity: sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==} + /@typescript-eslint/eslint-plugin/5.23.0_c63nfttrfhylg3zmgcxfslaw44: + resolution: {integrity: sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -259,12 +259,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.21.0_eslint@8.14.0+typescript@4.6.4 - '@typescript-eslint/scope-manager': 5.21.0 - '@typescript-eslint/type-utils': 5.21.0_eslint@8.14.0+typescript@4.6.4 - '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/scope-manager': 5.23.0 + '@typescript-eslint/type-utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu debug: 4.3.4 - eslint: 8.14.0 + eslint: 8.15.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -275,8 +275,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.21.0_eslint@8.14.0+typescript@4.6.4: - resolution: {integrity: sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==} + /@typescript-eslint/parser/5.23.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -285,26 +285,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.21.0 - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.23.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4 debug: 4.3.4 - eslint: 8.14.0 + eslint: 8.15.0 typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.21.0: - resolution: {integrity: sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==} + /@typescript-eslint/scope-manager/5.23.0: + resolution: {integrity: sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/visitor-keys': 5.21.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/visitor-keys': 5.23.0 dev: true - /@typescript-eslint/type-utils/5.21.0_eslint@8.14.0+typescript@4.6.4: - resolution: {integrity: sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==} + /@typescript-eslint/type-utils/5.23.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -313,22 +313,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.21.0_eslint@8.14.0+typescript@4.6.4 + '@typescript-eslint/utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu debug: 4.3.4 - eslint: 8.14.0 + eslint: 8.15.0 tsutils: 3.21.0_typescript@4.6.4 typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.21.0: - resolution: {integrity: sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==} + /@typescript-eslint/types/5.23.0: + resolution: {integrity: sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.21.0_typescript@4.6.4: - resolution: {integrity: sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==} + /@typescript-eslint/typescript-estree/5.23.0_typescript@4.6.4: + resolution: {integrity: sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -336,8 +336,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/visitor-keys': 5.21.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/visitor-keys': 5.23.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -348,29 +348,29 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.21.0_eslint@8.14.0+typescript@4.6.4: - resolution: {integrity: sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==} + /@typescript-eslint/utils/5.23.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.21.0 - '@typescript-eslint/types': 5.21.0 - '@typescript-eslint/typescript-estree': 5.21.0_typescript@4.6.4 - eslint: 8.14.0 + '@typescript-eslint/scope-manager': 5.23.0 + '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4 + eslint: 8.15.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.14.0 + eslint-utils: 3.0.0_eslint@8.15.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.21.0: - resolution: {integrity: sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==} + /@typescript-eslint/visitor-keys/5.23.0: + resolution: {integrity: sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.21.0 + '@typescript-eslint/types': 5.23.0 eslint-visitor-keys: 3.3.0 dev: true @@ -430,13 +430,13 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-includes/3.1.4: - resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} + /array-includes/3.1.5: + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.19.5 + es-abstract: 1.20.0 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -452,7 +452,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.19.5 + es-abstract: 1.20.0 es-shim-unscopables: 1.0.0 dev: true @@ -622,12 +622,22 @@ packages: /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 dev: true /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 dev: true @@ -696,16 +706,18 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.19.5: - resolution: {integrity: sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==} + /es-abstract/1.20.0: + resolution: {integrity: sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 + function.prototype.name: 1.1.5 get-intrinsic: 1.1.1 get-symbol-description: 1.0.0 has: 1.0.3 + has-property-descriptors: 1.0.0 has-symbols: 1.0.3 internal-slot: 1.0.3 is-callable: 1.2.4 @@ -717,8 +729,9 @@ packages: object-inspect: 1.12.0 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 unbox-primitive: 1.0.2 dev: true @@ -737,8 +750,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.38: - resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==} + /esbuild-android-64/0.14.39: + resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -746,8 +759,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.38: - resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==} + /esbuild-android-arm64/0.14.39: + resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -755,8 +768,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.38: - resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==} + /esbuild-darwin-64/0.14.39: + resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -764,8 +777,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.38: - resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==} + /esbuild-darwin-arm64/0.14.39: + resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -773,8 +786,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.38: - resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==} + /esbuild-freebsd-64/0.14.39: + resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -782,8 +795,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.38: - resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==} + /esbuild-freebsd-arm64/0.14.39: + resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -791,8 +804,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.38: - resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==} + /esbuild-linux-32/0.14.39: + resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -800,8 +813,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.38: - resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==} + /esbuild-linux-64/0.14.39: + resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -809,8 +822,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.38: - resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==} + /esbuild-linux-arm/0.14.39: + resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -818,8 +831,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.38: - resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==} + /esbuild-linux-arm64/0.14.39: + resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -827,8 +840,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.38: - resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==} + /esbuild-linux-mips64le/0.14.39: + resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -836,8 +849,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.38: - resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==} + /esbuild-linux-ppc64le/0.14.39: + resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -845,8 +858,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.38: - resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==} + /esbuild-linux-riscv64/0.14.39: + resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -854,8 +867,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.38: - resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==} + /esbuild-linux-s390x/0.14.39: + resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -863,8 +876,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.38: - resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==} + /esbuild-netbsd-64/0.14.39: + resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -872,8 +885,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.38: - resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==} + /esbuild-openbsd-64/0.14.39: + resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -881,8 +894,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.38: - resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==} + /esbuild-sunos-64/0.14.39: + resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -890,8 +903,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.38: - resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==} + /esbuild-windows-32/0.14.39: + resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -899,8 +912,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.38: - resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==} + /esbuild-windows-64/0.14.39: + resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -908,8 +921,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.38: - resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==} + /esbuild-windows-arm64/0.14.39: + resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -917,32 +930,32 @@ packages: dev: true optional: true - /esbuild/0.14.38: - resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==} + /esbuild/0.14.39: + resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.38 - esbuild-android-arm64: 0.14.38 - esbuild-darwin-64: 0.14.38 - esbuild-darwin-arm64: 0.14.38 - esbuild-freebsd-64: 0.14.38 - esbuild-freebsd-arm64: 0.14.38 - esbuild-linux-32: 0.14.38 - esbuild-linux-64: 0.14.38 - esbuild-linux-arm: 0.14.38 - esbuild-linux-arm64: 0.14.38 - esbuild-linux-mips64le: 0.14.38 - esbuild-linux-ppc64le: 0.14.38 - esbuild-linux-riscv64: 0.14.38 - esbuild-linux-s390x: 0.14.38 - esbuild-netbsd-64: 0.14.38 - esbuild-openbsd-64: 0.14.38 - esbuild-sunos-64: 0.14.38 - esbuild-windows-32: 0.14.38 - esbuild-windows-64: 0.14.38 - esbuild-windows-arm64: 0.14.38 + esbuild-android-64: 0.14.39 + esbuild-android-arm64: 0.14.39 + esbuild-darwin-64: 0.14.39 + esbuild-darwin-arm64: 0.14.39 + esbuild-freebsd-64: 0.14.39 + esbuild-freebsd-arm64: 0.14.39 + esbuild-linux-32: 0.14.39 + esbuild-linux-64: 0.14.39 + esbuild-linux-arm: 0.14.39 + esbuild-linux-arm64: 0.14.39 + esbuild-linux-mips64le: 0.14.39 + esbuild-linux-ppc64le: 0.14.39 + esbuild-linux-riscv64: 0.14.39 + esbuild-linux-s390x: 0.14.39 + esbuild-netbsd-64: 0.14.39 + esbuild-openbsd-64: 0.14.39 + esbuild-sunos-64: 0.14.39 + esbuild-windows-32: 0.14.39 + esbuild-windows-64: 0.14.39 + esbuild-windows-arm64: 0.14.39 dev: true /escalade/3.1.1: @@ -955,7 +968,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_14af0798efd537ecbc8732fe6f15829c: + /eslint-config-standard/17.0.0_4b4uawhw2diczlyyjnbxhuzoii: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -963,10 +976,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.14.0 - eslint-plugin-import: 2.26.0_eslint@8.14.0 - eslint-plugin-n: 15.2.0_eslint@8.14.0 - eslint-plugin-promise: 6.0.0_eslint@8.14.0 + eslint: 8.15.0 + eslint-plugin-import: 2.26.0_doddzorl55y6dbr5ij3nshfl64 + eslint-plugin-n: 15.2.0_eslint@8.15.0 + eslint-plugin-promise: 6.0.0_eslint@8.15.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -974,40 +987,65 @@ packages: dependencies: debug: 3.2.7 resolve: 1.22.0 + transitivePeerDependencies: + - supports-color dev: true - /eslint-module-utils/2.7.3: + /eslint-module-utils/2.7.3_cphntlaow2spielwlvsegonsm4: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 + transitivePeerDependencies: + - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.14.0: + /eslint-plugin-es/4.1.0_eslint@8.15.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.14.0 + eslint: 8.15.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_eslint@8.14.0: + /eslint-plugin-import/2.26.0_doddzorl55y6dbr5ij3nshfl64: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: - array-includes: 3.1.4 + '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.14.0 + eslint: 8.15.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3 + eslint-module-utils: 2.7.3_cphntlaow2spielwlvsegonsm4 has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -1015,18 +1053,22 @@ packages: object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: true - /eslint-plugin-n/15.2.0_eslint@8.14.0: + /eslint-plugin-n/15.2.0_eslint@8.15.0: resolution: {integrity: sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 4.1.0 - eslint: 8.14.0 - eslint-plugin-es: 4.1.0_eslint@8.14.0 - eslint-utils: 3.0.0_eslint@8.14.0 + eslint: 8.15.0 + eslint-plugin-es: 4.1.0_eslint@8.15.0 + eslint-utils: 3.0.0_eslint@8.15.0 ignore: 5.2.0 is-core-module: 2.9.0 minimatch: 3.1.2 @@ -1041,13 +1083,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.14.0: + /eslint-plugin-promise/6.0.0_eslint@8.15.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.14.0 + eslint: 8.15.0 dev: true /eslint-scope/5.1.1: @@ -1073,13 +1115,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.14.0: + /eslint-utils/3.0.0_eslint@8.15.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.14.0 + eslint: 8.15.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1098,12 +1140,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.14.0: - resolution: {integrity: sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==} + /eslint/8.15.0: + resolution: {integrity: sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.2 + '@eslint/eslintrc': 1.2.3 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -1112,16 +1154,16 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.14.0 + eslint-utils: 3.0.0_eslint@8.15.0 eslint-visitor-keys: 3.3.0 - espree: 9.3.1 + espree: 9.3.2 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.13.0 + globals: 13.15.0 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1142,8 +1184,8 @@ packages: - supports-color dev: true - /espree/9.3.1: - resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.7.1 @@ -1283,10 +1325,24 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} dev: true + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -1322,8 +1378,8 @@ packages: is-glob: 4.0.3 dev: true - /glob/7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + /glob/7.2.2: + resolution: {integrity: sha512-NzDgHDiJwKYByLrL5lONmQFpK/2G78SMMfo+E9CuGlX4IkvfKDsiQSNPwAYxEy+e6p7ZQ3uslSLlwlJcqezBmQ==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1333,8 +1389,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/13.13.0: - resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} + /globals/13.15.0: + resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1705,8 +1761,8 @@ packages: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} dev: true - /nanoid/3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1755,7 +1811,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.19.5 + es-abstract: 1.20.0 dev: true /once/1.4.0: @@ -1880,6 +1936,15 @@ packages: picomatch: 2.3.1 dev: true + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -1918,7 +1983,7 @@ packages: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: - glob: 7.2.0 + glob: 7.2.2 dev: true /run-parallel/1.2.0: @@ -2028,18 +2093,20 @@ packages: strip-ansi: 6.0.1 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true /strip-ansi/6.0.1: @@ -2076,7 +2143,7 @@ packages: engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.0 + glob: 7.2.2 minimatch: 3.1.2 dev: true @@ -2091,7 +2158,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.7.0_706dd5b3c16966aa1e66930b7cc80c2b: + /ts-node/10.7.0_2e3zkt3gzqz6r43dj4x46rot3i: resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true peerDependencies: @@ -2110,7 +2177,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.30 + '@types/node': 17.0.33 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2212,7 +2279,7 @@ packages: resolution: {integrity: sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@jridgewell/trace-mapping': 0.3.13 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 dev: true From e36ed17cc62add2b4f80d8abcfb3136152800f32 Mon Sep 17 00:00:00 2001 From: Ben Lau <408736066@qq.com> Date: Wed, 18 May 2022 15:57:36 +0800 Subject: [PATCH 2531/3047] Update plugins.md --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 0de9906e5..b89a7d6f4 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -526,6 +526,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-rem-to-px`] converts `rem` values to `px` values. * [`postcss-design-tokens`] provides a function to retrieve design tokens expressed in JS or JSON, within CSS. +* [`postcss-pixel-to-remvw`] converting px to both of rem and vw, also one of them [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -926,3 +927,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-prefix-hover`]: https://github.com/larsmunkholm/postcss-prefix-hover [`postcss-resolve-urls`]: https://github.com/bognarlaszlo/postcss-resolve-urls [`postcss-design-tokens`]: https://github.com/jptaranto/postcss-design-tokens +[`postcss-pixel-to-remvw`]: https://github.com/ben-lau/postcss-pixel-to-remvw From 57006b463866b63d2ac128abb774bcaa30ea46a8 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 18 May 2022 15:03:35 +0200 Subject: [PATCH 2532/3047] Update dependencies --- package.json | 8 +-- pnpm-lock.yaml | 138 ++++++++++++++++++++++++------------------------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/package.json b/package.json index 9be5dc7b7..15239dd49 100755 --- a/package.json +++ b/package.json @@ -83,10 +83,10 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.33", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", - "c8": "^7.11.2", + "@types/node": "^17.0.34", + "@typescript-eslint/eslint-plugin": "^5.25.0", + "@typescript-eslint/parser": "^5.25.0", + "c8": "^7.11.3", "check-dts": "^0.6.7", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5fe399b0..72400d81b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,10 +4,10 @@ specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.33 - '@typescript-eslint/eslint-plugin': ^5.23.0 - '@typescript-eslint/parser': ^5.23.0 - c8: ^7.11.2 + '@types/node': ^17.0.34 + '@typescript-eslint/eslint-plugin': ^5.25.0 + '@typescript-eslint/parser': ^5.25.0 + c8: ^7.11.3 check-dts: ^0.6.7 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 @@ -40,16 +40,16 @@ devDependencies: '@logux/eslint-config': 47.2.0_4zaonxvyaqytwhmnesacmrehqa '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.33 - '@typescript-eslint/eslint-plugin': 5.23.0_c63nfttrfhylg3zmgcxfslaw44 - '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu - c8: 7.11.2 + '@types/node': 17.0.34 + '@typescript-eslint/eslint-plugin': 5.25.0_qo2hgs5jt7x2a3p77h2rutcdae + '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu + c8: 7.11.3 check-dts: 0.6.7_typescript@4.6.4 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 eslint: 8.15.0 eslint-config-standard: 17.0.0_4b4uawhw2diczlyyjnbxhuzoii - eslint-plugin-import: 2.26.0_doddzorl55y6dbr5ij3nshfl64 + eslint-plugin-import: 2.26.0_eor5fr4wgkua4fh2zz3r4cqkce eslint-plugin-n: 15.2.0_eslint@8.15.0 eslint-plugin-prefer-let: 3.0.1 eslint-plugin-promise: 6.0.0_eslint@8.15.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.7.0_2e3zkt3gzqz6r43dj4x46rot3i + ts-node: 10.7.0_3smuweqyuzdazdnyhhezld6mfa typescript: 4.6.4 uvu: 0.5.3 @@ -148,7 +148,7 @@ packages: dependencies: eslint: 8.15.0 eslint-config-standard: 17.0.0_4b4uawhw2diczlyyjnbxhuzoii - eslint-plugin-import: 2.26.0_doddzorl55y6dbr5ij3nshfl64 + eslint-plugin-import: 2.26.0_eor5fr4wgkua4fh2zz3r4cqkce eslint-plugin-n: 15.2.0_eslint@8.15.0 eslint-plugin-prefer-let: 3.0.1 eslint-plugin-promise: 6.0.0_eslint@8.15.0 @@ -225,7 +225,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.33 + '@types/node': 17.0.34 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -237,19 +237,19 @@ packages: dev: true /@types/json5/0.0.29: - resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/17.0.33: - resolution: {integrity: sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==} + /@types/node/17.0.34: + resolution: {integrity: sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.23.0_c63nfttrfhylg3zmgcxfslaw44: - resolution: {integrity: sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==} + /@typescript-eslint/eslint-plugin/5.25.0_qo2hgs5jt7x2a3p77h2rutcdae: + resolution: {integrity: sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -259,10 +259,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu - '@typescript-eslint/scope-manager': 5.23.0 - '@typescript-eslint/type-utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu - '@typescript-eslint/utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/scope-manager': 5.25.0 + '@typescript-eslint/type-utils': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/utils': 5.25.0_hcfsmds2fshutdssjqluwm76uu debug: 4.3.4 eslint: 8.15.0 functional-red-black-tree: 1.0.1 @@ -275,8 +275,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.23.0_hcfsmds2fshutdssjqluwm76uu: - resolution: {integrity: sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==} + /@typescript-eslint/parser/5.25.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -285,9 +285,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.23.0 - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.25.0 + '@typescript-eslint/types': 5.25.0 + '@typescript-eslint/typescript-estree': 5.25.0_typescript@4.6.4 debug: 4.3.4 eslint: 8.15.0 typescript: 4.6.4 @@ -295,16 +295,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.23.0: - resolution: {integrity: sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==} + /@typescript-eslint/scope-manager/5.25.0: + resolution: {integrity: sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/visitor-keys': 5.23.0 + '@typescript-eslint/types': 5.25.0 + '@typescript-eslint/visitor-keys': 5.25.0 dev: true - /@typescript-eslint/type-utils/5.23.0_hcfsmds2fshutdssjqluwm76uu: - resolution: {integrity: sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==} + /@typescript-eslint/type-utils/5.25.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -313,7 +313,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/utils': 5.25.0_hcfsmds2fshutdssjqluwm76uu debug: 4.3.4 eslint: 8.15.0 tsutils: 3.21.0_typescript@4.6.4 @@ -322,13 +322,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.23.0: - resolution: {integrity: sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==} + /@typescript-eslint/types/5.25.0: + resolution: {integrity: sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.23.0_typescript@4.6.4: - resolution: {integrity: sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==} + /@typescript-eslint/typescript-estree/5.25.0_typescript@4.6.4: + resolution: {integrity: sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -336,8 +336,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/visitor-keys': 5.23.0 + '@typescript-eslint/types': 5.25.0 + '@typescript-eslint/visitor-keys': 5.25.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -348,16 +348,16 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.23.0_hcfsmds2fshutdssjqluwm76uu: - resolution: {integrity: sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==} + /@typescript-eslint/utils/5.25.0_hcfsmds2fshutdssjqluwm76uu: + resolution: {integrity: sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.23.0 - '@typescript-eslint/types': 5.23.0 - '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.25.0 + '@typescript-eslint/types': 5.25.0 + '@typescript-eslint/typescript-estree': 5.25.0_typescript@4.6.4 eslint: 8.15.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.15.0 @@ -366,11 +366,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.23.0: - resolution: {integrity: sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==} + /@typescript-eslint/visitor-keys/5.25.0: + resolution: {integrity: sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.23.0 + '@typescript-eslint/types': 5.25.0 eslint-visitor-keys: 3.3.0 dev: true @@ -436,7 +436,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.0 + es-abstract: 1.20.1 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -452,7 +452,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.0 + es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 dev: true @@ -490,8 +490,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /c8/7.11.2: - resolution: {integrity: sha512-6ahJSrhS6TqSghHm+HnWt/8Y2+z0hM/FQyB1ybKhAR30+NYL9CTQ1uwHxuWw6U7BHlHv6wvhgOrH81I+lfCkxg==} + /c8/7.11.3: + resolution: {integrity: sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -706,8 +706,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.20.0: - resolution: {integrity: sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==} + /es-abstract/1.20.1: + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -977,7 +977,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.15.0 - eslint-plugin-import: 2.26.0_doddzorl55y6dbr5ij3nshfl64 + eslint-plugin-import: 2.26.0_eor5fr4wgkua4fh2zz3r4cqkce eslint-plugin-n: 15.2.0_eslint@8.15.0 eslint-plugin-promise: 6.0.0_eslint@8.15.0 dev: true @@ -991,7 +991,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_cphntlaow2spielwlvsegonsm4: + /eslint-module-utils/2.7.3_mcjqbk7r2nrqjiufidliyvmmpu: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -1009,7 +1009,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -1028,7 +1028,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_doddzorl55y6dbr5ij3nshfl64: + /eslint-plugin-import/2.26.0_eor5fr4wgkua4fh2zz3r4cqkce: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1038,14 +1038,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.23.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.15.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_cphntlaow2spielwlvsegonsm4 + eslint-module-utils: 2.7.3_mcjqbk7r2nrqjiufidliyvmmpu has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -1331,7 +1331,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.0 + es-abstract: 1.20.1 functions-have-names: 1.2.3 dev: true @@ -1378,8 +1378,8 @@ packages: is-glob: 4.0.3 dev: true - /glob/7.2.2: - resolution: {integrity: sha512-NzDgHDiJwKYByLrL5lONmQFpK/2G78SMMfo+E9CuGlX4IkvfKDsiQSNPwAYxEy+e6p7ZQ3uslSLlwlJcqezBmQ==} + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1811,7 +1811,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.0 + es-abstract: 1.20.1 dev: true /once/1.4.0: @@ -1983,7 +1983,7 @@ packages: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: - glob: 7.2.2 + glob: 7.2.3 dev: true /run-parallel/1.2.0: @@ -2098,7 +2098,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.0 + es-abstract: 1.20.1 dev: true /string.prototype.trimstart/1.0.5: @@ -2106,7 +2106,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.0 + es-abstract: 1.20.1 dev: true /strip-ansi/6.0.1: @@ -2143,7 +2143,7 @@ packages: engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.2 + glob: 7.2.3 minimatch: 3.1.2 dev: true @@ -2158,7 +2158,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.7.0_2e3zkt3gzqz6r43dj4x46rot3i: + /ts-node/10.7.0_3smuweqyuzdazdnyhhezld6mfa: resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true peerDependencies: @@ -2177,7 +2177,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.33 + '@types/node': 17.0.34 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 From b7d1836dc8a7511e4cd6b8c840c0b39aff56c4b2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 18 May 2022 18:12:12 +0200 Subject: [PATCH 2533/3047] Release 8.4.14 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f2ddbe57..87714a2d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.14 +* Print “old plugin API” warning only if plugin was used (by @zardoy). + ## 8.4.13 * Fixed `append()` error after using `.parent` (by Jordan Pittman). diff --git a/lib/processor.js b/lib/processor.js index 555a925ff..bb7ca9a8c 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.13' + this.version = '8.4.14' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 15239dd49..61f7875d1 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.13", + "version": "8.4.14", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 5ecbfdeaae964ac3e431856da9dbc318078076f9 Mon Sep 17 00:00:00 2001 From: fabercancio <64930955+fabercancio@users.noreply.github.com> Date: Sat, 21 May 2022 02:26:02 +0200 Subject: [PATCH 2534/3047] Replace two unmaintained plugins on README This commit replaces two unmaintained plugins on the favorite plugin list: * `postcss-assets` by `postcss-url` * `postcss-rtl` by `postcss-rtlcss` --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 728d76928..28d8f0880 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ If you have any new ideas, [PostCSS plugin development] is really easy. ### Images and Fonts -* [`postcss-assets`] inserts image dimensions and inlines files. +* [`postcss-url`] postcss plugin to rebase url(), inline or copy asset. * [`postcss-sprites`] generates image sprites. * [`font-magician`] generates all the `@font-face` rules needed in CSS. * [`postcss-inline-svg`] allows you to inline SVG and customize its styles. @@ -116,7 +116,7 @@ If you have any new ideas, [PostCSS plugin development] is really easy. ### Other -* [`postcss-rtl`] combines both-directional (left-to-right and right-to-left) styles in one CSS file. +* [`postcss-rtlcss`] postcss plugin to build CSS files with LTR and RTL rules. * [`cssnano`] is a modular CSS minifier. * [`lost`] is a feature-rich `calc()` grid system. * [`rtlcss`] mirrors styles for right-to-left locales. @@ -132,11 +132,11 @@ If you have any new ideas, [PostCSS plugin development] is really easy. [`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites [`postcss-modules`]: https://github.com/outpunk/postcss-modules [`postcss-sorting`]: https://github.com/hudochenkov/postcss-sorting -[`postcss-assets`]: https://github.com/assetsjs/postcss-assets [`font-magician`]: https://github.com/jonathantneal/postcss-font-magician [`autoprefixer`]: https://github.com/postcss/autoprefixer [`cq-prolyfill`]: https://github.com/ausi/cq-prolyfill -[`postcss-rtl`]: https://github.com/vkalinichev/postcss-rtl +[`postcss-rtlcss`]: https://github.com/elchininet/postcss-rtlcss +[`postcss-url`]: https://github.com/postcss/postcss-url [`postcss-use`]: https://github.com/postcss/postcss-use [`css-modules`]: https://github.com/css-modules/css-modules [`webp-in-css`]: https://github.com/ai/webp-in-css From 4395bd317f2593f2a008f70ed5edb8957625c860 Mon Sep 17 00:00:00 2001 From: fabercancio <64930955+fabercancio@users.noreply.github.com> Date: Sat, 21 May 2022 02:39:48 +0200 Subject: [PATCH 2535/3047] Remove postcss-rtlcss --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 28d8f0880..fcbed4a34 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,6 @@ If you have any new ideas, [PostCSS plugin development] is really easy. ### Other -* [`postcss-rtlcss`] postcss plugin to build CSS files with LTR and RTL rules. * [`cssnano`] is a modular CSS minifier. * [`lost`] is a feature-rich `calc()` grid system. * [`rtlcss`] mirrors styles for right-to-left locales. @@ -135,7 +134,6 @@ If you have any new ideas, [PostCSS plugin development] is really easy. [`font-magician`]: https://github.com/jonathantneal/postcss-font-magician [`autoprefixer`]: https://github.com/postcss/autoprefixer [`cq-prolyfill`]: https://github.com/ausi/cq-prolyfill -[`postcss-rtlcss`]: https://github.com/elchininet/postcss-rtlcss [`postcss-url`]: https://github.com/postcss/postcss-url [`postcss-use`]: https://github.com/postcss/postcss-use [`css-modules`]: https://github.com/css-modules/css-modules From 2d3f675107733a4591c104c2f71d1127adb7d8aa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 May 2022 07:00:57 +0200 Subject: [PATCH 2536/3047] Update depenencies --- package.json | 12 +-- pnpm-lock.yaml | 250 +++++++++++++++++++++++++------------------------ 2 files changed, 132 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 61f7875d1..932fbb5f5 100755 --- a/package.json +++ b/package.json @@ -83,14 +83,14 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.34", - "@typescript-eslint/eslint-plugin": "^5.25.0", - "@typescript-eslint/parser": "^5.25.0", + "@types/node": "^17.0.35", + "@typescript-eslint/eslint-plugin": "^5.26.0", + "@typescript-eslint/parser": "^5.26.0", "c8": "^7.11.3", "check-dts": "^0.6.7", "clean-publish": "^4.0.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.15.0", + "eslint": "^8.16.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.2.0", @@ -103,8 +103,8 @@ "simple-git-hooks": "^2.7.0", "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", - "ts-node": "^10.7.0", - "typescript": "^4.6.4", + "ts-node": "^10.8.0", + "typescript": "^4.7.2", "uvu": "^0.5.3" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72400d81b..c622da98f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,14 @@ specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.34 - '@typescript-eslint/eslint-plugin': ^5.25.0 - '@typescript-eslint/parser': ^5.25.0 + '@types/node': ^17.0.35 + '@typescript-eslint/eslint-plugin': ^5.26.0 + '@typescript-eslint/parser': ^5.26.0 c8: ^7.11.3 check-dts: ^0.6.7 clean-publish: ^4.0.0 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.15.0 + eslint: ^8.16.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.2.0 @@ -27,8 +27,8 @@ specifiers: size-limit: ^7.0.8 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 - ts-node: ^10.7.0 - typescript: ^4.6.4 + ts-node: ^10.8.0 + typescript: ^4.7.2 uvu: ^0.5.3 dependencies: @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_4zaonxvyaqytwhmnesacmrehqa + '@logux/eslint-config': 47.2.0_lhtz73wfehni54bazjfts5soxa '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.34 - '@typescript-eslint/eslint-plugin': 5.25.0_qo2hgs5jt7x2a3p77h2rutcdae - '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@types/node': 17.0.35 + '@typescript-eslint/eslint-plugin': 5.26.0_hzuh7e2up357pvq3mkokjvu2lq + '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle c8: 7.11.3 - check-dts: 0.6.7_typescript@4.6.4 + check-dts: 0.6.7_typescript@4.7.2 clean-publish: 4.0.0 concat-with-sourcemaps: 1.1.0 - eslint: 8.15.0 - eslint-config-standard: 17.0.0_4b4uawhw2diczlyyjnbxhuzoii - eslint-plugin-import: 2.26.0_eor5fr4wgkua4fh2zz3r4cqkce - eslint-plugin-n: 15.2.0_eslint@8.15.0 + eslint: 8.16.0 + eslint-config-standard: 17.0.0_a34zldniqa7pmczppzwphgpvau + eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e + eslint-plugin-n: 15.2.0_eslint@8.16.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.15.0 + eslint-plugin-promise: 6.0.0_eslint@8.16.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -60,8 +60,8 @@ devDependencies: simple-git-hooks: 2.7.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.7.0_3smuweqyuzdazdnyhhezld6mfa - typescript: 4.6.4 + ts-node: 10.8.0_smgpfffxrhk5i4ijhe3532b4hq + typescript: 4.7.2 uvu: 0.5.3 packages: @@ -70,20 +70,15 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@cspotcode/source-map-consumer/0.8.0: - resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} - engines: {node: '>= 12'} - dev: true - - /@cspotcode/source-map-support/0.7.0: - resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: - '@cspotcode/source-map-consumer': 0.8.0 + '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint/eslintrc/1.2.3: - resolution: {integrity: sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==} + /@eslint/eslintrc/1.3.0: + resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -135,7 +130,14 @@ packages: '@jridgewell/sourcemap-codec': 1.4.13 dev: true - /@logux/eslint-config/47.2.0_4zaonxvyaqytwhmnesacmrehqa: + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: true + + /@logux/eslint-config/47.2.0_lhtz73wfehni54bazjfts5soxa: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -146,12 +148,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.15.0 - eslint-config-standard: 17.0.0_4b4uawhw2diczlyyjnbxhuzoii - eslint-plugin-import: 2.26.0_eor5fr4wgkua4fh2zz3r4cqkce - eslint-plugin-n: 15.2.0_eslint@8.15.0 + eslint: 8.16.0 + eslint-config-standard: 17.0.0_a34zldniqa7pmczppzwphgpvau + eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e + eslint-plugin-n: 15.2.0_eslint@8.16.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.15.0 + eslint-plugin-promise: 6.0.0_eslint@8.16.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -225,7 +227,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.34 + '@types/node': 17.0.35 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -240,16 +242,16 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/17.0.34: - resolution: {integrity: sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA==} + /@types/node/17.0.35: + resolution: {integrity: sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.25.0_qo2hgs5jt7x2a3p77h2rutcdae: - resolution: {integrity: sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg==} + /@typescript-eslint/eslint-plugin/5.26.0_hzuh7e2up357pvq3mkokjvu2lq: + resolution: {integrity: sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -259,24 +261,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu - '@typescript-eslint/scope-manager': 5.25.0 - '@typescript-eslint/type-utils': 5.25.0_hcfsmds2fshutdssjqluwm76uu - '@typescript-eslint/utils': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@typescript-eslint/scope-manager': 5.26.0 + '@typescript-eslint/type-utils': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@typescript-eslint/utils': 5.26.0_xztl6dhthcahlo6akmb2bmjmle debug: 4.3.4 - eslint: 8.15.0 + eslint: 8.16.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.4 - typescript: 4.6.4 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.25.0_hcfsmds2fshutdssjqluwm76uu: - resolution: {integrity: sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA==} + /@typescript-eslint/parser/5.26.0_xztl6dhthcahlo6akmb2bmjmle: + resolution: {integrity: sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -285,26 +287,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.25.0 - '@typescript-eslint/types': 5.25.0 - '@typescript-eslint/typescript-estree': 5.25.0_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.26.0 + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/typescript-estree': 5.26.0_typescript@4.7.2 debug: 4.3.4 - eslint: 8.15.0 - typescript: 4.6.4 + eslint: 8.16.0 + typescript: 4.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.25.0: - resolution: {integrity: sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww==} + /@typescript-eslint/scope-manager/5.26.0: + resolution: {integrity: sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.25.0 - '@typescript-eslint/visitor-keys': 5.25.0 + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/visitor-keys': 5.26.0 dev: true - /@typescript-eslint/type-utils/5.25.0_hcfsmds2fshutdssjqluwm76uu: - resolution: {integrity: sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw==} + /@typescript-eslint/type-utils/5.26.0_xztl6dhthcahlo6akmb2bmjmle: + resolution: {integrity: sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -313,22 +315,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/utils': 5.26.0_xztl6dhthcahlo6akmb2bmjmle debug: 4.3.4 - eslint: 8.15.0 - tsutils: 3.21.0_typescript@4.6.4 - typescript: 4.6.4 + eslint: 8.16.0 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.25.0: - resolution: {integrity: sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA==} + /@typescript-eslint/types/5.26.0: + resolution: {integrity: sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.25.0_typescript@4.6.4: - resolution: {integrity: sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw==} + /@typescript-eslint/typescript-estree/5.26.0_typescript@4.7.2: + resolution: {integrity: sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -336,41 +338,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.25.0 - '@typescript-eslint/visitor-keys': 5.25.0 + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/visitor-keys': 5.26.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.4 - typescript: 4.6.4 + tsutils: 3.21.0_typescript@4.7.2 + typescript: 4.7.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.25.0_hcfsmds2fshutdssjqluwm76uu: - resolution: {integrity: sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g==} + /@typescript-eslint/utils/5.26.0_xztl6dhthcahlo6akmb2bmjmle: + resolution: {integrity: sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.25.0 - '@typescript-eslint/types': 5.25.0 - '@typescript-eslint/typescript-estree': 5.25.0_typescript@4.6.4 - eslint: 8.15.0 + '@typescript-eslint/scope-manager': 5.26.0 + '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/typescript-estree': 5.26.0_typescript@4.7.2 + eslint: 8.16.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.15.0 + eslint-utils: 3.0.0_eslint@8.16.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.25.0: - resolution: {integrity: sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA==} + /@typescript-eslint/visitor-keys/5.26.0: + resolution: {integrity: sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.25.0 + '@typescript-eslint/types': 5.26.0 eslint-visitor-keys: 3.3.0 dev: true @@ -529,7 +531,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.6.4: + /check-dts/0.6.7_typescript@4.7.2: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true @@ -539,7 +541,7 @@ packages: fast-glob: 3.2.11 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.6.4 + typescript: 4.7.2 vfile-location: 4.0.1 dev: true @@ -676,8 +678,8 @@ packages: engines: {node: '>=0.3.1'} dev: true - /diff/5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + /diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} dev: true @@ -726,7 +728,7 @@ packages: is-shared-array-buffer: 1.0.2 is-string: 1.0.7 is-weakref: 1.0.2 - object-inspect: 1.12.0 + object-inspect: 1.12.1 object-keys: 1.1.1 object.assign: 4.1.2 regexp.prototype.flags: 1.4.3 @@ -968,7 +970,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_4b4uawhw2diczlyyjnbxhuzoii: + /eslint-config-standard/17.0.0_a34zldniqa7pmczppzwphgpvau: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -976,10 +978,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.15.0 - eslint-plugin-import: 2.26.0_eor5fr4wgkua4fh2zz3r4cqkce - eslint-plugin-n: 15.2.0_eslint@8.15.0 - eslint-plugin-promise: 6.0.0_eslint@8.15.0 + eslint: 8.16.0 + eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e + eslint-plugin-n: 15.2.0_eslint@8.16.0 + eslint-plugin-promise: 6.0.0_eslint@8.16.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -991,7 +993,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_mcjqbk7r2nrqjiufidliyvmmpu: + /eslint-module-utils/2.7.3_zhgf6mw2wzy6dnrak3ta47vb3m: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -1009,7 +1011,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -1017,18 +1019,18 @@ packages: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.15.0: + /eslint-plugin-es/4.1.0_eslint@8.16.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.15.0 + eslint: 8.16.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_eor5fr4wgkua4fh2zz3r4cqkce: + /eslint-plugin-import/2.26.0_grfei5yostfimvqdpf73rlhy3e: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1038,14 +1040,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.25.0_hcfsmds2fshutdssjqluwm76uu + '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.15.0 + eslint: 8.16.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_mcjqbk7r2nrqjiufidliyvmmpu + eslint-module-utils: 2.7.3_zhgf6mw2wzy6dnrak3ta47vb3m has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -1059,16 +1061,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.2.0_eslint@8.15.0: + /eslint-plugin-n/15.2.0_eslint@8.16.0: resolution: {integrity: sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 4.1.0 - eslint: 8.15.0 - eslint-plugin-es: 4.1.0_eslint@8.15.0 - eslint-utils: 3.0.0_eslint@8.15.0 + eslint: 8.16.0 + eslint-plugin-es: 4.1.0_eslint@8.16.0 + eslint-utils: 3.0.0_eslint@8.16.0 ignore: 5.2.0 is-core-module: 2.9.0 minimatch: 3.1.2 @@ -1083,13 +1085,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.15.0: + /eslint-plugin-promise/6.0.0_eslint@8.16.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.15.0 + eslint: 8.16.0 dev: true /eslint-scope/5.1.1: @@ -1115,13 +1117,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.15.0: + /eslint-utils/3.0.0_eslint@8.16.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.15.0 + eslint: 8.16.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1140,12 +1142,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.15.0: - resolution: {integrity: sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==} + /eslint/8.16.0: + resolution: {integrity: sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.3 + '@eslint/eslintrc': 1.3.0 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -1154,7 +1156,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.15.0 + eslint-utils: 3.0.0_eslint@8.16.0 eslint-visitor-keys: 3.3.0 espree: 9.3.2 esquery: 1.4.0 @@ -1786,8 +1788,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.12.0: - resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} + /object-inspect/1.12.1: + resolution: {integrity: sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==} dev: true /object-keys/1.1.1: @@ -2041,7 +2043,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 - object-inspect: 1.12.0 + object-inspect: 1.12.1 dev: true /signal-exit/3.0.7: @@ -2158,8 +2160,8 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.7.0_3smuweqyuzdazdnyhhezld6mfa: - resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} + /ts-node/10.8.0_smgpfffxrhk5i4ijhe3532b4hq: + resolution: {integrity: sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -2172,19 +2174,19 @@ packages: '@swc/wasm': optional: true dependencies: - '@cspotcode/source-map-support': 0.7.0 + '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.8 '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.34 + '@types/node': 17.0.35 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.6.4 + typescript: 4.7.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2202,14 +2204,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.6.4: + /tsutils/3.21.0_typescript@4.7.2: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.6.4 + typescript: 4.7.2 dev: true /type-check/0.4.0: @@ -2224,8 +2226,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.6.4: - resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} + /typescript/4.7.2: + resolution: {integrity: sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2262,7 +2264,7 @@ packages: hasBin: true dependencies: dequal: 2.0.2 - diff: 5.0.0 + diff: 5.1.0 kleur: 4.1.4 sade: 1.8.1 dev: true From 80f02d9b5e183493f0763141414232284b5682f0 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 26 May 2022 07:01:08 +0200 Subject: [PATCH 2537/3047] Avoid type changes --- lib/list.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/list.js b/lib/list.js index 08e94162c..c3f9646c0 100644 --- a/lib/list.js +++ b/lib/list.js @@ -7,7 +7,8 @@ let list = { let split = false let func = 0 - let quote = false + let inQuote = false + let prevQuote = '' let escape = false for (let letter of string) { @@ -15,12 +16,13 @@ let list = { escape = false } else if (letter === '\\') { escape = true - } else if (quote) { - if (letter === quote) { - quote = false + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false } } else if (letter === '"' || letter === "'") { - quote = letter + inQuote = true + prevQuote = letter } else if (letter === '(') { func += 1 } else if (letter === ')') { From 97091c2bea52f1bb5c1257dd57f78f3aba01b09d Mon Sep 17 00:00:00 2001 From: Lei Chen Date: Wed, 15 Jun 2022 14:35:59 +0800 Subject: [PATCH 2538/3047] chore: update vscode extension infomation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fcbed4a34..334a6829f 100644 --- a/README.md +++ b/README.md @@ -475,9 +475,9 @@ module.exports = { ### VS Code -* [`mhmadhamster.postcss-language`] adds PostCSS and SugarSS support. +* [`csstools.postcss`] adds PostCSS support. -[`mhmadhamster.postcss-language`]: https://marketplace.visualstudio.com/items?itemName=mhmadhamster.postcss-language +[`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss ### Atom From 45a88fc0d83764e22328a1a841559d43673247c3 Mon Sep 17 00:00:00 2001 From: romainmenke Date: Sun, 3 Jul 2022 11:20:35 +0200 Subject: [PATCH 2539/3047] update plugins --- docs/plugins.md | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index b89a7d6f4..e5e05c96b 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -52,14 +52,14 @@ Or enable plugins directly in CSS using [`postcss-use`]: on your targeted browsers or runtime environments. * [`postcss-ui-theme`] gives you syntax sugar and allow you change theme. -[`postcss-preset-env`]: https://github.com/jonathantneal/postcss-preset-env/ +[`postcss-preset-env`]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env [`postcss-utilities`]: https://github.com/ismamz/postcss-utilities [`postcss-hamster`]: https://github.com/h0tc0d3/postcss-hamster [`stylelint`]: https://github.com/stylelint/stylelint [`rucksack`]: https://github.com/seaneking/rucksack [`cssnano`]: https://cssnano.co/ [`level4`]: https://github.com/stephenway/level4 -[`oldie`]: https://github.com/jonathantneal/oldie +[`oldie`]: https://github.com/csstools/oldie [`atcss`]: https://github.com/morishitter/atcss [`postcss-ui-theme`]: https://github.com/cleverboy32/postcss-ui-theme @@ -230,6 +230,8 @@ for targeting all button elements. to CSS variables. * [`postcss-easy-z`] lets you organize z-indices by declaring relations between them. +* [`@csstools/postcss-design-tokens`] lets you import and use design tokens + from CSS. [Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html @@ -584,7 +586,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-background-image-auto-size`]: https://github.com/JustClear/postcss-background-image-auto-size [`postcss-letter-tracking`]: https://github.com/letsjaam/postcss-letter-tracking [`postcss-combine-duplicated-selectors`]: https://github.com/ChristianMurphy/postcss-combine-duplicated-selectors -[`postcss-attribute-case-insensitive`]: https://github.com/Semigradsky/postcss-attribute-case-insensitive +[`postcss-attribute-case-insensitive`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-attribute-case-insensitive [`postcss-alter-property-value`]: https://github.com/kunukn/postcss-alter-property-value [`postcss-attribute-selector-prefix`]: https://github.com/GitScrum/postcss-attribute-selector-prefix [`postcss-gradient-transparency-fix`]: https://github.com/gilmoreorless/postcss-gradient-transparency-fix @@ -597,7 +599,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-andalusian-stylesheets`]: https://github.com/bameda/postcss-andalusian-stylesheets [`postcss-australian-stylesheets`]: https://github.com/dp-lewis/postcss-australian-stylesheets [`postcss-responsive-properties`]: https://github.com/alexandr-solovyov/postcss-responsive-properties -[`postcss-pseudo-class-any-link`]: https://github.com/jonathantneal/postcss-pseudo-class-any-link +[`postcss-pseudo-class-any-link`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-pseudo-class-any-link [`postcss-pseudo-content-insert`]: https://github.com/liquidlight/postcss-pseudo-content-insert [`postcss-canadian-stylesheets`]: https://github.com/chancancode/postcss-canadian-stylesheets [`postcss-increase-specificity`]: https://github.com/MadLittleMods/postcss-increase-specificity @@ -605,7 +607,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-italian-stylesheets`]: https://github.com/Pustur/postcss-italian-stylesheets [`postcss-russian-stylesheets`]: https://github.com/Semigradsky/postcss-russian-stylesheets [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets -[`postcss-color-rebeccapurple`]: https://github.com/postcss/postcss-color-rebeccapurple +[`postcss-color-rebeccapurple`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-rebeccapurple [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-spanish-stylesheets`]: https://github.com/ismamz/postcss-spanish-stylesheets [`postcss-at-rules-variables`]: https://github.com/GitScrum/postcss-at-rules-variables @@ -615,10 +617,10 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-bidirection`]: https://github.com/gasolin/postcss-bidirection [`postcss-lolcat-stylesheets`]: https://github.com/sandralundgren/postcss-lolcat-stylesheets [`postcss-minify-font-weight`]: https://github.com/ben-eb/postcss-minify-font-weight -[`postcss-pseudo-class-enter`]: https://github.com/jonathantneal/postcss-pseudo-class-enter -[`postcss-transform-shortcut`]: https://github.com/jonathantneal/postcss-transform-shortcut +[`postcss-pseudo-class-enter`]: https://github.com/csstools/postcss-pseudo-class-enter +[`postcss-transform-shortcut`]: https://github.com/csstools/postcss-transform-shortcut [`postcss-unicode-characters`]: https://github.com/ben-eb/postcss-unicode-characters -[`postcss-custom-properties`]: https://github.com/postcss/postcss-custom-properties +[`postcss-custom-properties`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-custom-properties [`postcss-czech-stylesheets`]: https://github.com/HoBi/postcss-czech-stylesheets [`postcss-discard-font-face`]: https://github.com/ben-eb/postcss-discard-font-face [`postcss-responsive-images`]: https://github.com/azat-io/postcss-responsive-images @@ -626,7 +628,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-tatar-stylesheets`]: https://github.com/azat-io/postcss-tatar-stylesheets [`postcss-browser-reporter`]: https://github.com/postcss/postcss-browser-reporter [`postcss-current-selector`]: https://github.com/komlev/postcss-current-selector -[`postcss-custom-selectors`]: https://github.com/postcss/postcss-custom-selectors +[`postcss-custom-selectors`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-custom-selectors [`postcss-discard-comments`]: https://github.com/ben-eb/postcss-discard-comments [`postcss-forced-variables`]: https://github.com/alekhrycaiko/postcss-forced-variables [`postcss-magic-animations`]: https://github.com/nucliweb/postcss-magic-animations/ @@ -639,7 +641,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-theme-colors`]: https://github.com/ambar/postcss-theme-colors [`postcss-all-link-colors`]: https://github.com/jedmao/postcss-all-link-colors [`postcss-border-shortcut`]: https://github.com/michelemazzucco/postcss-border-shortcut -[`postcss-color-hex-alpha`]: https://github.com/postcss/postcss-color-hex-alpha +[`postcss-color-hex-alpha`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-hex-alpha [`postcss-define-property`]: https://github.com/daleeidd/postcss-define-property [`postcss-define-function`]: https://github.com/titancat/postcss-define-function [`postcss-filter-gradient`]: https://github.com/yuezk/postcss-filter-gradient @@ -653,23 +655,23 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-range-value`]: https://github.com/soberwp/postcss-range-value [`postcss-responsive-type`]: https://github.com/seaneking/postcss-responsive-type [`postcss-round-subpixels`]: https://github.com/himynameisdave/postcss-round-subpixels -[`postcss-short-font-size`]: https://github.com/jonathantneal/postcss-short-font-size +[`postcss-short-font-size`]: https://github.com/csstools/postcss-short-font-size [`postcss-vertical-rhythm`]: https://github.com/markgoodyear/postcss-vertical-rhythm [`postcss-border-9-patch`]: https://github.com/teaualune/postcss-border-9-patch [`postcss-color-function`]: https://github.com/postcss/postcss-color-function -[`postcss-conic-gradient`]: https://github.com/jonathantneal/postcss-conic-gradient +[`postcss-conic-gradient`]: https://github.com/csstools/postcss-conic-gradient [`postcss-convert-values`]: https://github.com/ben-eb/postcss-convert-values [`postcss-flexbugs-fixes`]: https://github.com/luisrudge/postcss-flexbugs-fixes [`postcss-font-format-keywords`]: https://github.com/valtlai/postcss-font-format-keywords [`postcss-font-normalize`]: https://github.com/iahu/postcss-font-normalize [`postcss-hash-classname`]: https://github.com/ctxhou/postcss-hash-classname [`postcss-oldschool-grid`]: https://github.com/lordgiotto/postcss-oldschool-grid -[`postcss-partial-import`]: https://github.com/jonathantneal/postcss-partial-import +[`postcss-partial-import`]: https://github.com/csstools/postcss-partial-import [`postcss-pseudoelements`]: https://github.com/axa-ch/postcss-pseudoelements [`postcss-resemble-image`]: https://github.com/ben-eb/postcss-resemble-image [`postcss-safe-important`]: https://github.com/Crimx/postcss-safe-important [`postcss-shades-of-gray`]: https://github.com/laureanoarcanio/postcss-shades-of-gray -[`postcss-short-position`]: https://github.com/jonathantneal/postcss-short-position +[`postcss-short-position`]: https://github.com/csstools/postcss-short-position [`postcss-single-charset`]: https://github.com/hail2u/postcss-single-charset [`css-declaration-sorter`]: https://github.com/Siilwyn/css-declaration-sorter [`postcss-alias-atrules`]: https://github.com/maximkoretskiy/postcss-alias-atrules @@ -688,15 +690,15 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-regexp-detect`]: https://github.com/devex-web-frontend/postcss-regexp-detect [`postcss-reverse-media`]: https://github.com/MadLittleMods/postcss-reverse-media [`postcss-russian-units`]: https://github.com/Semigradsky/postcss-russian-units -[`postcss-short-spacing`]: https://github.com/jonathantneal/postcss-short-spacing +[`postcss-short-spacing`]: https://github.com/csstools/postcss-short-spacing [`postcss-simple-extend`]: https://github.com/davidtheclark/postcss-simple-extend [`postcss-speech-bubble`]: https://github.com/archana-s/postcss-speech-bubble [`postcss-aspect-ratio`]: https://github.com/arccoza/postcss-aspect-ratio [`postcss-brand-colors`]: https://github.com/postcss/postcss-brand-colors -[`postcss-no-important`]: https://github.com/DUBANGARCIA/postcss-no-important +[`postcss-no-important`]: https://github.com/DUBANGARCIA/postcss-no-important [`postcss-class-prefix`]: https://github.com/thompsongl/postcss-class-prefix [`postcss-conditionals`]: https://github.com/andyjansson/postcss-conditionals -[`postcss-custom-media`]: https://github.com/postcss/postcss-custom-media +[`postcss-custom-media`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-custom-media [`postcss-default-unit`]: https://github.com/antyakushev/postcss-default-unit [`postcss-flexboxfixer`]: https://github.com/hallvors/postcss-flexboxfixer [`postcss-font-awesome`]: https://github.com/dan-gamble/postcss-font-awesome @@ -708,7 +710,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-mq-keyframes`]: https://github.com/TCotton/postcss-mq-keyframes [`postcss-nested-props`]: https://github.com/jedmao/postcss-nested-props [`postcss-sassy-mixins`]: https://github.com/andyjansson/postcss-sassy-mixins -[`postcss-selector-not`]: https://github.com/postcss/postcss-selector-not +[`postcss-selector-not`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-selector-not [`postcss-svg-fallback`]: https://github.com/justim/postcss-svg-fallback [`postcss-cachebuster`]: https://github.com/glebmachine/postcss-cachebuster [`postcss-color-alpha`]: https://github.com/avanes/postcss-color-alpha @@ -744,7 +746,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-grid-fluid`]: https://github.com/francoisromain/postcss-grid-fluid [`postcss-inline-rtl`]: https://github.com/jakob101/postcss-inline-rtl [`postcss-inline-svg`]: https://github.com/TrySound/postcss-inline-svg -[`postcss-short-text`]: https://github.com/jonathantneal/postcss-short-text +[`postcss-short-text`]: https://github.com/csstools/postcss-short-text [`postcss-animation`]: https://github.com/zhouwenbin/postcss-animation [`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset [`postcss-color-hcl`]: https://github.com/devgru/postcss-color-hcl @@ -762,7 +764,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-placehold`]: https://github.com/awayken/postcss-placehold [`postcss-reference`]: https://github.com/dehuszar/postcss-reference [`postcss-typescale`]: https://github.com/francoisromain/postcss-typescale -[`postcss-write-svg`]: https://github.com/jonathantneal/postcss-write-svg +[`postcss-write-svg`]: https://github.com/csstools/postcss-write-svg [`postcss-disabled`]: https://github.com/cocco3/postcss-disabled [`postcss-clearfix`]: https://github.com/seaneking/postcss-clearfix [`postcss-colormin`]: https://github.com/ben-eb/colormin @@ -824,7 +826,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-match`]: https://github.com/rtsao/postcss-match [`postcss-scrib`]: https://github.com/sneakertack/postcss-scrib [`css2modernizr`]: https://github.com/vovanbo/css2modernizr -[`font-magician`]: https://github.com/jonathantneal/postcss-font-magician +[`font-magician`]: https://github.com/csstools/postcss-font-magician [`immutable-css`]: https://github.com/johnotander/immutable-css [`perfectionist`]: https://github.com/ben-eb/perfectionist [`postcss-uncss`]: https://github.com/RyanZim/postcss-uncss @@ -842,7 +844,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-size`]: https://github.com/postcss/postcss-size [`postcss-size-advanced`]: https://github.com/jhpratt/postcss-size-advanced [`postcss-svgo`]: https://github.com/ben-eb/postcss-svgo -[`postcss-unmq`]: https://github.com/jonathantneal/postcss-unmq +[`postcss-unmq`]: https://github.com/csstools/postcss-unmq [`postcss-vmin`]: https://github.com/iamvdo/postcss-vmin [`postcss-nope`]: https://github.com/dariopog/postcss-nope [`autoprefixer`]: https://github.com/postcss/autoprefixer @@ -867,7 +869,7 @@ See also plugins in modular minifier [`cssnano`]. [`pixrem`]: https://github.com/robwierzbowski/node-pixrem [`postcss-fixie`]: https://github.com/tivac/fixie [`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`short`]: https://github.com/jonathantneal/postcss-short +[`short`]: https://github.com/csstools/postcss-short [`lost`]: https://github.com/corysimmons/lost [`postcss-text-remove-gap`]: https://github.com/m18ru/postcss-text-remove-gap [`postcss-closest`]: https://github.com/m18ru/postcss-closest @@ -928,3 +930,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-resolve-urls`]: https://github.com/bognarlaszlo/postcss-resolve-urls [`postcss-design-tokens`]: https://github.com/jptaranto/postcss-design-tokens [`postcss-pixel-to-remvw`]: https://github.com/ben-lau/postcss-pixel-to-remvw +[`@csstools/postcss-design-tokens`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-design-tokens From cbaa8fc572241a2dfc8ce09c1a8ef5ff2caa8ba7 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 14 Jul 2022 13:28:11 +0200 Subject: [PATCH 2540/3047] Fix link --- docs/writing-a-plugin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index 37f2a7626..8afa7f279 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -97,7 +97,7 @@ module.exports.postcss = true [PostCSS plugin boilerplate]: https://github.com/postcss/postcss-plugin-boilerplate/ [our Sharec config]: https://github.com/postcss/postcss-sharec-config -[plugin template]: https://github.com/postcss/postcss-plugin-boilerplate/blob/main/index.js +[plugin template]: https://github.com/postcss/postcss-plugin-boilerplate/blob/main/template/index.t.js ## Step 3: Find nodes From cd8cd28d7e48108d4e965fdec2447d9e76f9524b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 14 Jul 2022 13:29:29 +0200 Subject: [PATCH 2541/3047] Update dependencies --- package.json | 20 +- pnpm-lock.yaml | 549 +++++++++++++++++++++++++------------------------ 2 files changed, 285 insertions(+), 284 deletions(-) diff --git a/package.json b/package.json index 932fbb5f5..f503dc64e 100755 --- a/package.json +++ b/package.json @@ -83,29 +83,29 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^7.0.8", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.35", - "@typescript-eslint/eslint-plugin": "^5.26.0", - "@typescript-eslint/parser": "^5.26.0", + "@types/node": "^18.0.4", + "@typescript-eslint/eslint-plugin": "^5.30.6", + "@typescript-eslint/parser": "^5.30.6", "c8": "^7.11.3", "check-dts": "^0.6.7", - "clean-publish": "^4.0.0", + "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.16.0", + "eslint": "^8.19.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.2.0", + "eslint-plugin-n": "^15.2.4", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.0", "fs-extra": "^10.1.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.1", - "simple-git-hooks": "^2.7.0", + "simple-git-hooks": "^2.8.0", "size-limit": "^7.0.8", "strip-ansi": "^6.0.1", - "ts-node": "^10.8.0", - "typescript": "^4.7.2", - "uvu": "^0.5.3" + "ts-node": "^10.9.1", + "typescript": "^4.7.4", + "uvu": "^0.5.6" }, "c8": { "exclude": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c622da98f..8dfd30aa9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,17 +4,17 @@ specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^7.0.8 '@types/fs-extra': ^9.0.13 - '@types/node': ^17.0.35 - '@typescript-eslint/eslint-plugin': ^5.26.0 - '@typescript-eslint/parser': ^5.26.0 + '@types/node': ^18.0.4 + '@typescript-eslint/eslint-plugin': ^5.30.6 + '@typescript-eslint/parser': ^5.30.6 c8: ^7.11.3 check-dts: ^0.6.7 - clean-publish: ^4.0.0 + clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.16.0 + eslint: ^8.19.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.2.0 + eslint-plugin-n: ^15.2.4 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 fs-extra: ^10.1.0 @@ -23,13 +23,13 @@ specifiers: nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 - simple-git-hooks: ^2.7.0 + simple-git-hooks: ^2.8.0 size-limit: ^7.0.8 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 - ts-node: ^10.8.0 - typescript: ^4.7.2 - uvu: ^0.5.3 + ts-node: ^10.9.1 + typescript: ^4.7.4 + uvu: ^0.5.6 dependencies: nanoid: 3.3.4 @@ -37,32 +37,32 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_lhtz73wfehni54bazjfts5soxa + '@logux/eslint-config': 47.2.0_tqihzqmyb75kf2julhmubxluta '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 '@types/fs-extra': 9.0.13 - '@types/node': 17.0.35 - '@typescript-eslint/eslint-plugin': 5.26.0_hzuh7e2up357pvq3mkokjvu2lq - '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@types/node': 18.0.4 + '@typescript-eslint/eslint-plugin': 5.30.6_2vt5mtrqleafs33qg2bhpmbaqm + '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm c8: 7.11.3 - check-dts: 0.6.7_typescript@4.7.2 - clean-publish: 4.0.0 + check-dts: 0.6.7_typescript@4.7.4 + clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.16.0 - eslint-config-standard: 17.0.0_a34zldniqa7pmczppzwphgpvau - eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e - eslint-plugin-n: 15.2.0_eslint@8.16.0 + eslint: 8.19.0 + eslint-config-standard: 17.0.0_3y77imf4oat3akor274t4exgn4 + eslint-plugin-import: 2.26.0_rywvbqnelbznwddhxv2glfjuay + eslint-plugin-n: 15.2.4_eslint@8.19.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.16.0 + eslint-plugin-promise: 6.0.0_eslint@8.19.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.1 - simple-git-hooks: 2.7.0 + simple-git-hooks: 2.8.0 size-limit: 7.0.8 strip-ansi: 6.0.1 - ts-node: 10.8.0_smgpfffxrhk5i4ijhe3532b4hq - typescript: 4.7.2 - uvu: 0.5.3 + ts-node: 10.9.1_2zqz24ol5yhbv2blv4fh7akzrq + typescript: 4.7.4 + uvu: 0.5.6 packages: @@ -84,7 +84,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.3.2 - globals: 13.15.0 + globals: 13.16.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -114,30 +114,30 @@ packages: engines: {node: '>=8'} dev: true - /@jridgewell/resolve-uri/3.0.7: - resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.13: - resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.13: - resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} + /@jridgewell/trace-mapping/0.3.14: + resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} dependencies: - '@jridgewell/resolve-uri': 3.0.7 - '@jridgewell/sourcemap-codec': 1.4.13 + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 dev: true /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.0.7 - '@jridgewell/sourcemap-codec': 1.4.13 + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_lhtz73wfehni54bazjfts5soxa: + /@logux/eslint-config/47.2.0_tqihzqmyb75kf2julhmubxluta: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -148,12 +148,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.16.0 - eslint-config-standard: 17.0.0_a34zldniqa7pmczppzwphgpvau - eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e - eslint-plugin-n: 15.2.0_eslint@8.16.0 + eslint: 8.19.0 + eslint-config-standard: 17.0.0_3y77imf4oat3akor274t4exgn4 + eslint-plugin-import: 2.26.0_rywvbqnelbznwddhxv2glfjuay + eslint-plugin-n: 15.2.4_eslint@8.19.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.16.0 + eslint-plugin-promise: 6.0.0_eslint@8.19.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -183,7 +183,7 @@ packages: peerDependencies: size-limit: 7.0.8 dependencies: - esbuild: 0.14.39 + esbuild: 0.14.49 nanoid: 3.3.4 size-limit: 7.0.8 dev: true @@ -208,26 +208,26 @@ packages: size-limit: 7.0.8 dev: true - /@tsconfig/node10/1.0.8: - resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} dev: true - /@tsconfig/node12/1.0.9: - resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} dev: true - /@tsconfig/node14/1.0.1: - resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} dev: true - /@tsconfig/node16/1.0.2: - resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} + /@tsconfig/node16/1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.35 + '@types/node': 18.0.4 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -242,16 +242,16 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/17.0.35: - resolution: {integrity: sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==} + /@types/node/18.0.4: + resolution: {integrity: sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.26.0_hzuh7e2up357pvq3mkokjvu2lq: - resolution: {integrity: sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==} + /@typescript-eslint/eslint-plugin/5.30.6_2vt5mtrqleafs33qg2bhpmbaqm: + resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -261,24 +261,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle - '@typescript-eslint/scope-manager': 5.26.0 - '@typescript-eslint/type-utils': 5.26.0_xztl6dhthcahlo6akmb2bmjmle - '@typescript-eslint/utils': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/type-utils': 5.30.6_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/utils': 5.30.6_4x5o4skxv6sl53vpwefgt23khm debug: 4.3.4 - eslint: 8.16.0 + eslint: 8.19.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.2 - typescript: 4.7.2 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.26.0_xztl6dhthcahlo6akmb2bmjmle: - resolution: {integrity: sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==} + /@typescript-eslint/parser/5.30.6_4x5o4skxv6sl53vpwefgt23khm: + resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -287,26 +287,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.26.0 - '@typescript-eslint/types': 5.26.0 - '@typescript-eslint/typescript-estree': 5.26.0_typescript@4.7.2 + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4 debug: 4.3.4 - eslint: 8.16.0 - typescript: 4.7.2 + eslint: 8.19.0 + typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.26.0: - resolution: {integrity: sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==} + /@typescript-eslint/scope-manager/5.30.6: + resolution: {integrity: sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.26.0 - '@typescript-eslint/visitor-keys': 5.26.0 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/visitor-keys': 5.30.6 dev: true - /@typescript-eslint/type-utils/5.26.0_xztl6dhthcahlo6akmb2bmjmle: - resolution: {integrity: sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==} + /@typescript-eslint/type-utils/5.30.6_4x5o4skxv6sl53vpwefgt23khm: + resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -315,22 +315,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@typescript-eslint/utils': 5.30.6_4x5o4skxv6sl53vpwefgt23khm debug: 4.3.4 - eslint: 8.16.0 - tsutils: 3.21.0_typescript@4.7.2 - typescript: 4.7.2 + eslint: 8.19.0 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.26.0: - resolution: {integrity: sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==} + /@typescript-eslint/types/5.30.6: + resolution: {integrity: sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.26.0_typescript@4.7.2: - resolution: {integrity: sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==} + /@typescript-eslint/typescript-estree/5.30.6_typescript@4.7.4: + resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -338,41 +338,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.26.0 - '@typescript-eslint/visitor-keys': 5.26.0 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/visitor-keys': 5.30.6 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.2 - typescript: 4.7.2 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.26.0_xztl6dhthcahlo6akmb2bmjmle: - resolution: {integrity: sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==} + /@typescript-eslint/utils/5.30.6_4x5o4skxv6sl53vpwefgt23khm: + resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.26.0 - '@typescript-eslint/types': 5.26.0 - '@typescript-eslint/typescript-estree': 5.26.0_typescript@4.7.2 - eslint: 8.16.0 + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4 + eslint: 8.19.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.16.0 + eslint-utils: 3.0.0_eslint@8.19.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.26.0: - resolution: {integrity: sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==} + /@typescript-eslint/visitor-keys/5.30.6: + resolution: {integrity: sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.26.0 + '@typescript-eslint/types': 5.30.6 eslint-visitor-keys: 3.3.0 dev: true @@ -439,7 +439,7 @@ packages: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 is-string: 1.0.7 dev: true @@ -481,8 +481,8 @@ packages: fill-range: 7.0.1 dev: true - /builtins/4.1.0: - resolution: {integrity: sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==} + /builtins/5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.3.7 dev: true @@ -503,10 +503,10 @@ packages: foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.4 + istanbul-reports: 3.1.5 rimraf: 3.0.2 test-exclude: 6.0.0 - v8-to-istanbul: 9.0.0 + v8-to-istanbul: 9.0.1 yargs: 16.2.0 yargs-parser: 20.2.9 dev: true @@ -515,7 +515,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 dev: true /callsites/3.1.0: @@ -531,7 +531,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.7.2: + /check-dts/0.6.7_typescript@4.7.4: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true @@ -541,7 +541,7 @@ packages: fast-glob: 3.2.11 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.7.2 + typescript: 4.7.4 vfile-location: 4.0.1 dev: true @@ -564,13 +564,14 @@ packages: resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==} dev: true - /clean-publish/4.0.0: - resolution: {integrity: sha512-PcOxJSnPgncx/ANmgPw8hj9DDtdLHTxIc6Vh/yXCX7IA9w1oUSx2POL0Vno/7omhyrKxMKTpnRh2wlzwH5zaCw==} + /clean-publish/4.0.1: + resolution: {integrity: sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==} + engines: {node: '>= 16.0.0'} hasBin: true dependencies: cross-spawn: 7.0.3 fast-glob: 3.2.11 - lilconfig: 2.0.5 + lilconfig: 2.0.6 micromatch: 4.0.5 dev: true @@ -668,8 +669,8 @@ packages: object-keys: 1.1.1 dev: true - /dequal/2.0.2: - resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} dev: true @@ -716,7 +717,7 @@ packages: es-to-primitive: 1.2.1 function-bind: 1.1.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 get-symbol-description: 1.0.0 has: 1.0.3 has-property-descriptors: 1.0.0 @@ -728,7 +729,7 @@ packages: is-shared-array-buffer: 1.0.2 is-string: 1.0.7 is-weakref: 1.0.2 - object-inspect: 1.12.1 + object-inspect: 1.12.2 object-keys: 1.1.1 object.assign: 4.1.2 regexp.prototype.flags: 1.4.3 @@ -752,8 +753,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.39: - resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==} + /esbuild-android-64/0.14.49: + resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -761,8 +762,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.39: - resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==} + /esbuild-android-arm64/0.14.49: + resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -770,8 +771,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.39: - resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==} + /esbuild-darwin-64/0.14.49: + resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -779,8 +780,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.39: - resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==} + /esbuild-darwin-arm64/0.14.49: + resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -788,8 +789,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.39: - resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==} + /esbuild-freebsd-64/0.14.49: + resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -797,8 +798,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.39: - resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==} + /esbuild-freebsd-arm64/0.14.49: + resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -806,8 +807,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.39: - resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==} + /esbuild-linux-32/0.14.49: + resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -815,8 +816,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.39: - resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==} + /esbuild-linux-64/0.14.49: + resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -824,8 +825,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.39: - resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==} + /esbuild-linux-arm/0.14.49: + resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -833,8 +834,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.39: - resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==} + /esbuild-linux-arm64/0.14.49: + resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -842,8 +843,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.39: - resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==} + /esbuild-linux-mips64le/0.14.49: + resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -851,8 +852,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.39: - resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==} + /esbuild-linux-ppc64le/0.14.49: + resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -860,8 +861,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.39: - resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==} + /esbuild-linux-riscv64/0.14.49: + resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -869,8 +870,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.39: - resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==} + /esbuild-linux-s390x/0.14.49: + resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -878,8 +879,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.39: - resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==} + /esbuild-netbsd-64/0.14.49: + resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -887,8 +888,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.39: - resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==} + /esbuild-openbsd-64/0.14.49: + resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -896,8 +897,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.39: - resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==} + /esbuild-sunos-64/0.14.49: + resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -905,8 +906,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.39: - resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==} + /esbuild-windows-32/0.14.49: + resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -914,8 +915,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.39: - resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==} + /esbuild-windows-64/0.14.49: + resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -923,8 +924,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.39: - resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==} + /esbuild-windows-arm64/0.14.49: + resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -932,32 +933,32 @@ packages: dev: true optional: true - /esbuild/0.14.39: - resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==} + /esbuild/0.14.49: + resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.39 - esbuild-android-arm64: 0.14.39 - esbuild-darwin-64: 0.14.39 - esbuild-darwin-arm64: 0.14.39 - esbuild-freebsd-64: 0.14.39 - esbuild-freebsd-arm64: 0.14.39 - esbuild-linux-32: 0.14.39 - esbuild-linux-64: 0.14.39 - esbuild-linux-arm: 0.14.39 - esbuild-linux-arm64: 0.14.39 - esbuild-linux-mips64le: 0.14.39 - esbuild-linux-ppc64le: 0.14.39 - esbuild-linux-riscv64: 0.14.39 - esbuild-linux-s390x: 0.14.39 - esbuild-netbsd-64: 0.14.39 - esbuild-openbsd-64: 0.14.39 - esbuild-sunos-64: 0.14.39 - esbuild-windows-32: 0.14.39 - esbuild-windows-64: 0.14.39 - esbuild-windows-arm64: 0.14.39 + esbuild-android-64: 0.14.49 + esbuild-android-arm64: 0.14.49 + esbuild-darwin-64: 0.14.49 + esbuild-darwin-arm64: 0.14.49 + esbuild-freebsd-64: 0.14.49 + esbuild-freebsd-arm64: 0.14.49 + esbuild-linux-32: 0.14.49 + esbuild-linux-64: 0.14.49 + esbuild-linux-arm: 0.14.49 + esbuild-linux-arm64: 0.14.49 + esbuild-linux-mips64le: 0.14.49 + esbuild-linux-ppc64le: 0.14.49 + esbuild-linux-riscv64: 0.14.49 + esbuild-linux-s390x: 0.14.49 + esbuild-netbsd-64: 0.14.49 + esbuild-openbsd-64: 0.14.49 + esbuild-sunos-64: 0.14.49 + esbuild-windows-32: 0.14.49 + esbuild-windows-64: 0.14.49 + esbuild-windows-arm64: 0.14.49 dev: true /escalade/3.1.1: @@ -970,7 +971,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_a34zldniqa7pmczppzwphgpvau: + /eslint-config-standard/17.0.0_3y77imf4oat3akor274t4exgn4: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -978,22 +979,22 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.16.0 - eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e - eslint-plugin-n: 15.2.0_eslint@8.16.0 - eslint-plugin-promise: 6.0.0_eslint@8.16.0 + eslint: 8.19.0 + eslint-plugin-import: 2.26.0_rywvbqnelbznwddhxv2glfjuay + eslint-plugin-n: 15.2.4_eslint@8.19.0 + eslint-plugin-promise: 6.0.0_eslint@8.19.0 dev: true /eslint-import-resolver-node/0.3.6: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: debug: 3.2.7 - resolve: 1.22.0 + resolve: 1.22.1 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.7.3_zhgf6mw2wzy6dnrak3ta47vb3m: + /eslint-module-utils/2.7.3_bsugbhruclroeiaqnd7gqoy7ya: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -1011,7 +1012,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -1019,18 +1020,18 @@ packages: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.16.0: + /eslint-plugin-es/4.1.0_eslint@8.19.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.16.0 + eslint: 8.19.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_grfei5yostfimvqdpf73rlhy3e: + /eslint-plugin-import/2.26.0_rywvbqnelbznwddhxv2glfjuay: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1040,20 +1041,20 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.26.0_xztl6dhthcahlo6akmb2bmjmle + '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.16.0 + eslint: 8.19.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_zhgf6mw2wzy6dnrak3ta47vb3m + eslint-module-utils: 2.7.3_bsugbhruclroeiaqnd7gqoy7ya has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 - resolve: 1.22.0 + resolve: 1.22.1 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -1061,21 +1062,21 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.2.0_eslint@8.16.0: - resolution: {integrity: sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==} + /eslint-plugin-n/15.2.4_eslint@8.19.0: + resolution: {integrity: sha512-tjnVMv2fiXYMnuiIFI8QMtyUFI42SckEEWvi8h68SWGWshfqO6SSCASy24dGMGAiy7NUk6DZt90DM0iNUsmQ5w==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - builtins: 4.1.0 - eslint: 8.16.0 - eslint-plugin-es: 4.1.0_eslint@8.16.0 - eslint-utils: 3.0.0_eslint@8.16.0 + builtins: 5.0.1 + eslint: 8.19.0 + eslint-plugin-es: 4.1.0_eslint@8.19.0 + eslint-utils: 3.0.0_eslint@8.19.0 ignore: 5.2.0 is-core-module: 2.9.0 minimatch: 3.1.2 - resolve: 1.22.0 - semver: 6.3.0 + resolve: 1.22.1 + semver: 7.3.7 dev: true /eslint-plugin-prefer-let/3.0.1: @@ -1085,13 +1086,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.16.0: + /eslint-plugin-promise/6.0.0_eslint@8.19.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.16.0 + eslint: 8.19.0 dev: true /eslint-scope/5.1.1: @@ -1117,13 +1118,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.16.0: + /eslint-utils/3.0.0_eslint@8.19.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.16.0 + eslint: 8.19.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1142,8 +1143,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.16.0: - resolution: {integrity: sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==} + /eslint/8.19.0: + resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1156,7 +1157,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.16.0 + eslint-utils: 3.0.0_eslint@8.19.0 eslint-visitor-keys: 3.3.0 espree: 9.3.2 esquery: 1.4.0 @@ -1165,7 +1166,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.15.0 + globals: 13.16.0 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1244,7 +1245,7 @@ packages: dev: true /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fastq/1.13.0: @@ -1268,7 +1269,7 @@ packages: dev: true /find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} dependencies: locate-path: 2.0.0 @@ -1286,12 +1287,12 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.5 + flatted: 3.2.6 rimraf: 3.0.2 dev: true - /flatted/3.2.5: - resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} + /flatted/3.2.6: + resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} dev: true /foreground-child/2.0.0: @@ -1312,7 +1313,7 @@ packages: dev: true /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true /fsevents/2.3.2: @@ -1338,7 +1339,7 @@ packages: dev: true /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true /functions-have-names/1.2.3: @@ -1350,8 +1351,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + /get-intrinsic/1.1.2: + resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -1363,7 +1364,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 dev: true /glob-parent/5.1.2: @@ -1391,8 +1392,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/13.15.0: - resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} + /globals/13.16.0: + resolution: {integrity: sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1426,7 +1427,7 @@ packages: /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 dev: true /has-symbols/1.0.3: @@ -1466,12 +1467,12 @@ packages: dev: true /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -1485,7 +1486,7 @@ packages: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.1.2 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -1535,7 +1536,7 @@ packages: dev: true /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true @@ -1603,7 +1604,7 @@ packages: dev: true /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true /istanbul-lib-coverage/3.2.0: @@ -1620,8 +1621,8 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-reports/3.1.4: - resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} + /istanbul-reports/3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -1640,7 +1641,7 @@ packages: dev: true /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true /json5/1.0.1: @@ -1658,8 +1659,8 @@ packages: graceful-fs: 4.2.10 dev: true - /kleur/4.1.4: - resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} + /kleur/4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true @@ -1671,13 +1672,13 @@ packages: type-check: 0.4.0 dev: true - /lilconfig/2.0.5: - resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + /lilconfig/2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} dev: true /locate-path/2.0.0: - resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} dependencies: p-locate: 2.0.0 @@ -1748,7 +1749,7 @@ packages: dev: true /ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true /ms/2.1.2: @@ -1780,7 +1781,7 @@ packages: dev: true /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true /normalize-path/3.0.0: @@ -1788,8 +1789,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.12.1: - resolution: {integrity: sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==} + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true /object-keys/1.1.1: @@ -1817,7 +1818,7 @@ packages: dev: true /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true @@ -1849,7 +1850,7 @@ packages: dev: true /p-locate/2.0.0: - resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} dependencies: p-limit: 1.3.0 @@ -1863,7 +1864,7 @@ packages: dev: true /p-try/1.0.0: - resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} dev: true @@ -1875,7 +1876,7 @@ packages: dev: true /path-exists/3.0.0: - resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} dev: true @@ -1885,7 +1886,7 @@ packages: dev: true /path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true @@ -1953,7 +1954,7 @@ packages: dev: true /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true @@ -1967,8 +1968,8 @@ packages: engines: {node: '>=4'} dev: true - /resolve/1.22.0: - resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: is-core-module: 2.9.0 @@ -2042,16 +2043,16 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 - object-inspect: 1.12.1 + get-intrinsic: 1.1.2 + object-inspect: 1.12.2 dev: true /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /simple-git-hooks/2.7.0: - resolution: {integrity: sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==} + /simple-git-hooks/2.8.0: + resolution: {integrity: sha512-ocmZQORwa6x9mxg+gVIAp5o4wXiWOHGXyrDBA0+UxGKIEKOyFtL4LWNKkP/2ornQPdlnlDGDteVeYP5FjhIoWA==} hasBin: true requiresBuild: true dev: true @@ -2065,7 +2066,7 @@ packages: chokidar: 3.5.3 ci-job-number: 1.2.2 globby: 11.1.0 - lilconfig: 2.0.5 + lilconfig: 2.0.6 mkdirp: 1.0.4 nanospinner: 1.1.0 picocolors: 1.0.0 @@ -2119,7 +2120,7 @@ packages: dev: true /strip-bom/3.0.0: - resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true @@ -2150,7 +2151,7 @@ packages: dev: true /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /to-regex-range/5.0.1: @@ -2160,8 +2161,8 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.8.0_smgpfffxrhk5i4ijhe3532b4hq: - resolution: {integrity: sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==} + /ts-node/10.9.1_2zqz24ol5yhbv2blv4fh7akzrq: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -2175,18 +2176,18 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.8 - '@tsconfig/node12': 1.0.9 - '@tsconfig/node14': 1.0.1 - '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.35 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.0.4 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.7.2 + typescript: 4.7.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2204,14 +2205,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.7.2: + /tsutils/3.21.0_typescript@4.7.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.7.2 + typescript: 4.7.4 dev: true /type-check/0.4.0: @@ -2226,8 +2227,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.7.2: - resolution: {integrity: sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==} + /typescript/4.7.4: + resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2258,14 +2259,14 @@ packages: punycode: 2.1.1 dev: true - /uvu/0.5.3: - resolution: {integrity: sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==} + /uvu/0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} engines: {node: '>=8'} hasBin: true dependencies: - dequal: 2.0.2 + dequal: 2.0.3 diff: 5.1.0 - kleur: 4.1.4 + kleur: 4.1.5 sade: 1.8.1 dev: true @@ -2277,11 +2278,11 @@ packages: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /v8-to-istanbul/9.0.0: - resolution: {integrity: sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==} + /v8-to-istanbul/9.0.1: + resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.14 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 dev: true @@ -2290,7 +2291,7 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.3.2 + vfile: 5.3.4 dev: true /vfile-message/3.1.2: @@ -2300,8 +2301,8 @@ packages: unist-util-stringify-position: 3.0.2 dev: true - /vfile/5.3.2: - resolution: {integrity: sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==} + /vfile/5.3.4: + resolution: {integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==} dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 @@ -2342,7 +2343,7 @@ packages: dev: true /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true /y18n/5.0.8: From 3c518200e0479cd38fd9b781697e142e34b34beb Mon Sep 17 00:00:00 2001 From: Ikko Ashimine Date: Thu, 21 Jul 2022 00:32:08 +0900 Subject: [PATCH 2542/3047] Fix typo in postcss.test.ts creat -> create --- test/postcss.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/postcss.test.ts b/test/postcss.test.ts index ee2b88dba..7c61c0123 100755 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -112,7 +112,7 @@ test('works with null', () => { }, /PostCSS received null instead of CSS string/) }) -test('has deprecated method to creat plugins', () => { +test('has deprecated method to create plugins', () => { let warn = spyOn(console, 'warn', () => {}) let plugin = (postcss as any).plugin('test', (filter?: string) => { return (root: Root) => { From fec19518f03bd51f7369be455a81906a23db7c23 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 6 Aug 2022 14:44:36 +0200 Subject: [PATCH 2543/3047] Update dependencies --- package.json | 14 +- pnpm-lock.yaml | 436 +++++++++++++++++++++++++------------------------ 2 files changed, 232 insertions(+), 218 deletions(-) diff --git a/package.json b/package.json index f503dc64e..74e45c6c4 100755 --- a/package.json +++ b/package.json @@ -81,16 +81,16 @@ }, "devDependencies": { "@logux/eslint-config": "^47.2.0", - "@size-limit/preset-small-lib": "^7.0.8", + "@size-limit/preset-small-lib": "^8.0.0", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.0.4", - "@typescript-eslint/eslint-plugin": "^5.30.6", - "@typescript-eslint/parser": "^5.30.6", - "c8": "^7.11.3", + "@types/node": "^18.6.4", + "@typescript-eslint/eslint-plugin": "^5.32.0", + "@typescript-eslint/parser": "^5.32.0", + "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.19.0", + "eslint": "^8.21.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.2.4", @@ -101,7 +101,7 @@ "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.1", "simple-git-hooks": "^2.8.0", - "size-limit": "^7.0.8", + "size-limit": "^8.0.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.1", "typescript": "^4.7.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8dfd30aa9..ecc736700 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,16 +2,16 @@ lockfileVersion: 5.4 specifiers: '@logux/eslint-config': ^47.2.0 - '@size-limit/preset-small-lib': ^7.0.8 + '@size-limit/preset-small-lib': ^8.0.0 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.0.4 - '@typescript-eslint/eslint-plugin': ^5.30.6 - '@typescript-eslint/parser': ^5.30.6 - c8: ^7.11.3 + '@types/node': ^18.6.4 + '@typescript-eslint/eslint-plugin': ^5.32.0 + '@typescript-eslint/parser': ^5.32.0 + c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.19.0 + eslint: ^8.21.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.2.4 @@ -24,7 +24,7 @@ specifiers: picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 simple-git-hooks: ^2.8.0 - size-limit: ^7.0.8 + size-limit: ^8.0.0 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.9.1 @@ -37,30 +37,30 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_tqihzqmyb75kf2julhmubxluta - '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 + '@logux/eslint-config': 47.2.0_7hz3xvmviof7onfgk6hpedqcom + '@size-limit/preset-small-lib': 8.0.0_size-limit@8.0.0 '@types/fs-extra': 9.0.13 - '@types/node': 18.0.4 - '@typescript-eslint/eslint-plugin': 5.30.6_2vt5mtrqleafs33qg2bhpmbaqm - '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm - c8: 7.11.3 + '@types/node': 18.6.4 + '@typescript-eslint/eslint-plugin': 5.32.0_iosr3hrei2tubxveewluhu5lhy + '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + c8: 7.12.0 check-dts: 0.6.7_typescript@4.7.4 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.19.0 - eslint-config-standard: 17.0.0_3y77imf4oat3akor274t4exgn4 - eslint-plugin-import: 2.26.0_rywvbqnelbznwddhxv2glfjuay - eslint-plugin-n: 15.2.4_eslint@8.19.0 + eslint: 8.21.0 + eslint-config-standard: 17.0.0_dfwa53o44x4e5xhsfv5mvfhk5a + eslint-plugin-import: 2.26.0_wuikv5nqgdfyng42xxm7lklfmi + eslint-plugin-n: 15.2.4_eslint@8.21.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.19.0 + eslint-plugin-promise: 6.0.0_eslint@8.21.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.1 simple-git-hooks: 2.8.0 - size-limit: 7.0.8 + size-limit: 8.0.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_2zqz24ol5yhbv2blv4fh7akzrq + ts-node: 10.9.1_hn66opzbaneygq52jmwjxha6su typescript: 4.7.4 uvu: 0.5.6 @@ -77,14 +77,23 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@esbuild/linux-loong64/0.14.53: + resolution: {integrity: sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@eslint/eslintrc/1.3.0: resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.3.2 - globals: 13.16.0 + espree: 9.3.3 + globals: 13.17.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -94,8 +103,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.9.5: - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + /@humanwhocodes/config-array/0.10.4: + resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -105,6 +114,10 @@ packages: - supports-color dev: true + /@humanwhocodes/gitignore-to-minimatch/1.0.2: + resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} + dev: true + /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true @@ -137,7 +150,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_tqihzqmyb75kf2julhmubxluta: + /@logux/eslint-config/47.2.0_7hz3xvmviof7onfgk6hpedqcom: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -148,12 +161,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.19.0 - eslint-config-standard: 17.0.0_3y77imf4oat3akor274t4exgn4 - eslint-plugin-import: 2.26.0_rywvbqnelbznwddhxv2glfjuay - eslint-plugin-n: 15.2.4_eslint@8.19.0 + eslint: 8.21.0 + eslint-config-standard: 17.0.0_dfwa53o44x4e5xhsfv5mvfhk5a + eslint-plugin-import: 2.26.0_wuikv5nqgdfyng42xxm7lklfmi + eslint-plugin-n: 15.2.4_eslint@8.21.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.19.0 + eslint-plugin-promise: 6.0.0_eslint@8.21.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -177,35 +190,35 @@ packages: fastq: 1.13.0 dev: true - /@size-limit/esbuild/7.0.8_size-limit@7.0.8: - resolution: {integrity: sha512-AzCrxJJThDvHrBNoolebYVgXu46c6HuS3fOxoXr3V0YWNM0qz81z5F3j7RruzboZnls8ZgME4WrH6GM5rB9gtA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@size-limit/esbuild/8.0.0_size-limit@8.0.0: + resolution: {integrity: sha512-du3gGKAzeh8fKEbqG0PcHKyyilpHTC+z/e6r0a82G+9KMCQd2PBHfOrTyN+of8u6EZXkrp0zdwgr84nKLp1nPg==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} peerDependencies: - size-limit: 7.0.8 + size-limit: 8.0.0 dependencies: - esbuild: 0.14.49 + esbuild: 0.14.53 nanoid: 3.3.4 - size-limit: 7.0.8 + size-limit: 8.0.0 dev: true - /@size-limit/file/7.0.8_size-limit@7.0.8: - resolution: {integrity: sha512-1KeFQuMXIXAH/iELqIX7x+YNYDFvzIvmxcp9PrdwEoSNL0dXdaDIo9WE/yz8xvOmUcKaLfqbWkL75DM0k91WHQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@size-limit/file/8.0.0_size-limit@8.0.0: + resolution: {integrity: sha512-xd4bBk/YyezsMQfpi2V3/blodCuPNVF5UwMd4L9LxBvon0PK4C1+3zBXxZpvN7AcMvPbJ8RUMS+iHpD4KcwaOg==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} peerDependencies: - size-limit: 7.0.8 + size-limit: 8.0.0 dependencies: - semver: 7.3.5 - size-limit: 7.0.8 + semver: 7.3.7 + size-limit: 8.0.0 dev: true - /@size-limit/preset-small-lib/7.0.8_size-limit@7.0.8: - resolution: {integrity: sha512-CT8nIYA/c2CSD+X4rAUgwqYccQMahJ6rBnaZxvi3YKFdkXIbuGNXHNjHsYaFksgwG9P4UjG/unyO5L73f3zQBw==} + /@size-limit/preset-small-lib/8.0.0_size-limit@8.0.0: + resolution: {integrity: sha512-6Q2fJFuPalvANQIoxYAmQLGk1Rxerw/qtqpEi1dhF9czfWxtYxKwlVQgsE/d0j5eum/N7iJxioDeKZQJjzKPrQ==} peerDependencies: - size-limit: 7.0.8 + size-limit: 8.0.0 dependencies: - '@size-limit/esbuild': 7.0.8_size-limit@7.0.8 - '@size-limit/file': 7.0.8_size-limit@7.0.8 - size-limit: 7.0.8 + '@size-limit/esbuild': 8.0.0_size-limit@8.0.0 + '@size-limit/file': 8.0.0_size-limit@8.0.0 + size-limit: 8.0.0 dev: true /@tsconfig/node10/1.0.9: @@ -227,7 +240,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.0.4 + '@types/node': 18.6.4 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -242,16 +255,16 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.0.4: - resolution: {integrity: sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA==} + /@types/node/18.6.4: + resolution: {integrity: sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.30.6_2vt5mtrqleafs33qg2bhpmbaqm: - resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==} + /@typescript-eslint/eslint-plugin/5.32.0_iosr3hrei2tubxveewluhu5lhy: + resolution: {integrity: sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -261,12 +274,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm - '@typescript-eslint/scope-manager': 5.30.6 - '@typescript-eslint/type-utils': 5.30.6_4x5o4skxv6sl53vpwefgt23khm - '@typescript-eslint/utils': 5.30.6_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/scope-manager': 5.32.0 + '@typescript-eslint/type-utils': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/utils': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq debug: 4.3.4 - eslint: 8.19.0 + eslint: 8.21.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -277,8 +290,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.30.6_4x5o4skxv6sl53vpwefgt23khm: - resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==} + /@typescript-eslint/parser/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: + resolution: {integrity: sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -287,26 +300,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.30.6 - '@typescript-eslint/types': 5.30.6 - '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4 + '@typescript-eslint/scope-manager': 5.32.0 + '@typescript-eslint/types': 5.32.0 + '@typescript-eslint/typescript-estree': 5.32.0_typescript@4.7.4 debug: 4.3.4 - eslint: 8.19.0 + eslint: 8.21.0 typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.30.6: - resolution: {integrity: sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==} + /@typescript-eslint/scope-manager/5.32.0: + resolution: {integrity: sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.30.6 - '@typescript-eslint/visitor-keys': 5.30.6 + '@typescript-eslint/types': 5.32.0 + '@typescript-eslint/visitor-keys': 5.32.0 dev: true - /@typescript-eslint/type-utils/5.30.6_4x5o4skxv6sl53vpwefgt23khm: - resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==} + /@typescript-eslint/type-utils/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: + resolution: {integrity: sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -315,22 +328,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.30.6_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/utils': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq debug: 4.3.4 - eslint: 8.19.0 + eslint: 8.21.0 tsutils: 3.21.0_typescript@4.7.4 typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.30.6: - resolution: {integrity: sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==} + /@typescript-eslint/types/5.32.0: + resolution: {integrity: sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.30.6_typescript@4.7.4: - resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==} + /@typescript-eslint/typescript-estree/5.32.0_typescript@4.7.4: + resolution: {integrity: sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -338,8 +351,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.30.6 - '@typescript-eslint/visitor-keys': 5.30.6 + '@typescript-eslint/types': 5.32.0 + '@typescript-eslint/visitor-keys': 5.32.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -350,38 +363,38 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.30.6_4x5o4skxv6sl53vpwefgt23khm: - resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==} + /@typescript-eslint/utils/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: + resolution: {integrity: sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.30.6 - '@typescript-eslint/types': 5.30.6 - '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.7.4 - eslint: 8.19.0 + '@typescript-eslint/scope-manager': 5.32.0 + '@typescript-eslint/types': 5.32.0 + '@typescript-eslint/typescript-estree': 5.32.0_typescript@4.7.4 + eslint: 8.21.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.19.0 + eslint-utils: 3.0.0_eslint@8.21.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.30.6: - resolution: {integrity: sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==} + /@typescript-eslint/visitor-keys/5.32.0: + resolution: {integrity: sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/types': 5.32.0 eslint-visitor-keys: 3.3.0 dev: true - /acorn-jsx/5.3.2_acorn@8.7.1: + /acorn-jsx/5.3.2_acorn@8.8.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.1 + acorn: 8.8.0 dev: true /acorn-walk/8.2.0: @@ -389,8 +402,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/8.7.1: - resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} + /acorn/8.8.0: + resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -492,8 +505,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /c8/7.11.3: - resolution: {integrity: sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==} + /c8/7.12.0: + resolution: {integrity: sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -731,7 +744,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.12.2 object-keys: 1.1.1 - object.assign: 4.1.2 + object.assign: 4.1.3 regexp.prototype.flags: 1.4.3 string.prototype.trimend: 1.0.5 string.prototype.trimstart: 1.0.5 @@ -753,8 +766,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.49: - resolution: {integrity: sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==} + /esbuild-android-64/0.14.53: + resolution: {integrity: sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -762,8 +775,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.49: - resolution: {integrity: sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==} + /esbuild-android-arm64/0.14.53: + resolution: {integrity: sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -771,8 +784,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.49: - resolution: {integrity: sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==} + /esbuild-darwin-64/0.14.53: + resolution: {integrity: sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -780,8 +793,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.49: - resolution: {integrity: sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==} + /esbuild-darwin-arm64/0.14.53: + resolution: {integrity: sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -789,8 +802,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.49: - resolution: {integrity: sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==} + /esbuild-freebsd-64/0.14.53: + resolution: {integrity: sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -798,8 +811,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.49: - resolution: {integrity: sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==} + /esbuild-freebsd-arm64/0.14.53: + resolution: {integrity: sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -807,8 +820,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.49: - resolution: {integrity: sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==} + /esbuild-linux-32/0.14.53: + resolution: {integrity: sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -816,8 +829,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.49: - resolution: {integrity: sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==} + /esbuild-linux-64/0.14.53: + resolution: {integrity: sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -825,8 +838,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.49: - resolution: {integrity: sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==} + /esbuild-linux-arm/0.14.53: + resolution: {integrity: sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -834,8 +847,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.49: - resolution: {integrity: sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==} + /esbuild-linux-arm64/0.14.53: + resolution: {integrity: sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -843,8 +856,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.49: - resolution: {integrity: sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==} + /esbuild-linux-mips64le/0.14.53: + resolution: {integrity: sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -852,8 +865,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.49: - resolution: {integrity: sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==} + /esbuild-linux-ppc64le/0.14.53: + resolution: {integrity: sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -861,8 +874,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.49: - resolution: {integrity: sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==} + /esbuild-linux-riscv64/0.14.53: + resolution: {integrity: sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -870,8 +883,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.49: - resolution: {integrity: sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==} + /esbuild-linux-s390x/0.14.53: + resolution: {integrity: sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -879,8 +892,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.49: - resolution: {integrity: sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==} + /esbuild-netbsd-64/0.14.53: + resolution: {integrity: sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -888,8 +901,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.49: - resolution: {integrity: sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==} + /esbuild-openbsd-64/0.14.53: + resolution: {integrity: sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -897,8 +910,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.49: - resolution: {integrity: sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==} + /esbuild-sunos-64/0.14.53: + resolution: {integrity: sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -906,8 +919,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.49: - resolution: {integrity: sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==} + /esbuild-windows-32/0.14.53: + resolution: {integrity: sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -915,8 +928,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.49: - resolution: {integrity: sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==} + /esbuild-windows-64/0.14.53: + resolution: {integrity: sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -924,8 +937,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.49: - resolution: {integrity: sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==} + /esbuild-windows-arm64/0.14.53: + resolution: {integrity: sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -933,32 +946,33 @@ packages: dev: true optional: true - /esbuild/0.14.49: - resolution: {integrity: sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==} + /esbuild/0.14.53: + resolution: {integrity: sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.49 - esbuild-android-arm64: 0.14.49 - esbuild-darwin-64: 0.14.49 - esbuild-darwin-arm64: 0.14.49 - esbuild-freebsd-64: 0.14.49 - esbuild-freebsd-arm64: 0.14.49 - esbuild-linux-32: 0.14.49 - esbuild-linux-64: 0.14.49 - esbuild-linux-arm: 0.14.49 - esbuild-linux-arm64: 0.14.49 - esbuild-linux-mips64le: 0.14.49 - esbuild-linux-ppc64le: 0.14.49 - esbuild-linux-riscv64: 0.14.49 - esbuild-linux-s390x: 0.14.49 - esbuild-netbsd-64: 0.14.49 - esbuild-openbsd-64: 0.14.49 - esbuild-sunos-64: 0.14.49 - esbuild-windows-32: 0.14.49 - esbuild-windows-64: 0.14.49 - esbuild-windows-arm64: 0.14.49 + '@esbuild/linux-loong64': 0.14.53 + esbuild-android-64: 0.14.53 + esbuild-android-arm64: 0.14.53 + esbuild-darwin-64: 0.14.53 + esbuild-darwin-arm64: 0.14.53 + esbuild-freebsd-64: 0.14.53 + esbuild-freebsd-arm64: 0.14.53 + esbuild-linux-32: 0.14.53 + esbuild-linux-64: 0.14.53 + esbuild-linux-arm: 0.14.53 + esbuild-linux-arm64: 0.14.53 + esbuild-linux-mips64le: 0.14.53 + esbuild-linux-ppc64le: 0.14.53 + esbuild-linux-riscv64: 0.14.53 + esbuild-linux-s390x: 0.14.53 + esbuild-netbsd-64: 0.14.53 + esbuild-openbsd-64: 0.14.53 + esbuild-sunos-64: 0.14.53 + esbuild-windows-32: 0.14.53 + esbuild-windows-64: 0.14.53 + esbuild-windows-arm64: 0.14.53 dev: true /escalade/3.1.1: @@ -971,7 +985,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_3y77imf4oat3akor274t4exgn4: + /eslint-config-standard/17.0.0_dfwa53o44x4e5xhsfv5mvfhk5a: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -979,10 +993,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.19.0 - eslint-plugin-import: 2.26.0_rywvbqnelbznwddhxv2glfjuay - eslint-plugin-n: 15.2.4_eslint@8.19.0 - eslint-plugin-promise: 6.0.0_eslint@8.19.0 + eslint: 8.21.0 + eslint-plugin-import: 2.26.0_wuikv5nqgdfyng42xxm7lklfmi + eslint-plugin-n: 15.2.4_eslint@8.21.0 + eslint-plugin-promise: 6.0.0_eslint@8.21.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -994,7 +1008,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_bsugbhruclroeiaqnd7gqoy7ya: + /eslint-module-utils/2.7.3_gjpiwexkhexdr4bbgrtzf23bg4: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -1012,7 +1026,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -1020,18 +1034,18 @@ packages: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.19.0: + /eslint-plugin-es/4.1.0_eslint@8.21.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.19.0 + eslint: 8.21.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_rywvbqnelbznwddhxv2glfjuay: + /eslint-plugin-import/2.26.0_wuikv5nqgdfyng42xxm7lklfmi: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1041,16 +1055,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.30.6_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.19.0 + eslint: 8.21.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_bsugbhruclroeiaqnd7gqoy7ya + eslint-module-utils: 2.7.3_gjpiwexkhexdr4bbgrtzf23bg4 has: 1.0.3 - is-core-module: 2.9.0 + is-core-module: 2.10.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 @@ -1062,18 +1076,18 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.2.4_eslint@8.19.0: + /eslint-plugin-n/15.2.4_eslint@8.21.0: resolution: {integrity: sha512-tjnVMv2fiXYMnuiIFI8QMtyUFI42SckEEWvi8h68SWGWshfqO6SSCASy24dGMGAiy7NUk6DZt90DM0iNUsmQ5w==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.19.0 - eslint-plugin-es: 4.1.0_eslint@8.19.0 - eslint-utils: 3.0.0_eslint@8.19.0 + eslint: 8.21.0 + eslint-plugin-es: 4.1.0_eslint@8.21.0 + eslint-utils: 3.0.0_eslint@8.21.0 ignore: 5.2.0 - is-core-module: 2.9.0 + is-core-module: 2.10.0 minimatch: 3.1.2 resolve: 1.22.1 semver: 7.3.7 @@ -1086,13 +1100,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.19.0: + /eslint-plugin-promise/6.0.0_eslint@8.21.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.19.0 + eslint: 8.21.0 dev: true /eslint-scope/5.1.1: @@ -1118,13 +1132,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.19.0: + /eslint-utils/3.0.0_eslint@8.21.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.19.0 + eslint: 8.21.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1143,13 +1157,14 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.19.0: - resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==} + /eslint/8.21.0: + resolution: {integrity: sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: '@eslint/eslintrc': 1.3.0 - '@humanwhocodes/config-array': 0.9.5 + '@humanwhocodes/config-array': 0.10.4 + '@humanwhocodes/gitignore-to-minimatch': 1.0.2 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1157,16 +1172,19 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.19.0 + eslint-utils: 3.0.0_eslint@8.21.0 eslint-visitor-keys: 3.3.0 - espree: 9.3.2 + espree: 9.3.3 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 + find-up: 5.0.0 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.16.0 + globals: 13.17.0 + globby: 11.1.0 + grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1187,12 +1205,12 @@ packages: - supports-color dev: true - /espree/9.3.2: - resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} + /espree/9.3.3: + resolution: {integrity: sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.7.1 - acorn-jsx: 5.3.2_acorn@8.7.1 + acorn: 8.8.0 + acorn-jsx: 5.3.2_acorn@8.8.0 eslint-visitor-keys: 3.3.0 dev: true @@ -1392,8 +1410,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/13.16.0: - resolution: {integrity: sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==} + /globals/13.17.0: + resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1415,6 +1433,10 @@ packages: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + /has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -1522,8 +1544,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module/2.9.0: - resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} + /is-core-module/2.10.0: + resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 dev: true @@ -1798,8 +1820,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign/4.1.2: - resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + /object.assign/4.1.3: + resolution: {integrity: sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -1972,7 +1994,7 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.9.0 + is-core-module: 2.10.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -2011,14 +2033,6 @@ packages: hasBin: true dev: true - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver/7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} engines: {node: '>=10'} @@ -2057,9 +2071,9 @@ packages: requiresBuild: true dev: true - /size-limit/7.0.8: - resolution: {integrity: sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /size-limit/8.0.0: + resolution: {integrity: sha512-344dzCZZiTz+N0WS801SNG/qd8MCa6dzJhsj8gLQg4JlmddwUdi/Ol0HfliEVL7jgtOz8fNgDeB2+14xwalvVA==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} hasBin: true dependencies: bytes-iec: 3.1.1 @@ -2161,7 +2175,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_2zqz24ol5yhbv2blv4fh7akzrq: + /ts-node/10.9.1_hn66opzbaneygq52jmwjxha6su: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2180,8 +2194,8 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.0.4 - acorn: 8.7.1 + '@types/node': 18.6.4 + acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 From f289e173b07bfb72265692662db94e5c49e5f583 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 6 Aug 2022 20:22:49 +0200 Subject: [PATCH 2544/3047] Improve AST migration --- lib/container.js | 8 +++++++- lib/root.js | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/container.js b/lib/container.js index 328779d1c..f934b23fd 100644 --- a/lib/container.js +++ b/lib/container.js @@ -5,7 +5,7 @@ let Declaration = require('./declaration') let Comment = require('./comment') let Node = require('./node') -let parse, Rule, AtRule +let parse, Rule, AtRule, Root function cleanSource(nodes) { return nodes.map(i => { @@ -407,6 +407,10 @@ Container.registerAtRule = dependant => { AtRule = dependant } +Container.registerRoot = dependant => { + Rule = dependant +} + module.exports = Container Container.default = Container @@ -420,6 +424,8 @@ Container.rebuild = node => { Object.setPrototypeOf(node, Declaration.prototype) } else if (node.type === 'comment') { Object.setPrototypeOf(node, Comment.prototype) + } else if (node.type === 'root') { + Object.setPrototypeOf(node, Root.prototype) } node[my] = true diff --git a/lib/root.js b/lib/root.js index 18e4ceaf7..6f3dbb6fe 100644 --- a/lib/root.js +++ b/lib/root.js @@ -57,3 +57,5 @@ Root.registerProcessor = dependant => { module.exports = Root Root.default = Root + +Container.registerRoot(Root) From 8aad149577339aa5d04d8e6026b25b9ea45ea568 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 6 Aug 2022 20:24:43 +0200 Subject: [PATCH 2545/3047] Release 8.4.15 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87714a2d3..44a1dfd54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.15 +* Fixed AST normalization after using custom parser with old PostCSS AST. + ## 8.4.14 * Print “old plugin API” warning only if plugin was used (by @zardoy). diff --git a/lib/processor.js b/lib/processor.js index bb7ca9a8c..f743e29ed 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.14' + this.version = '8.4.15' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 74e45c6c4..936c592c8 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.14", + "version": "8.4.15", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From c3fc8e47b2484d7b728ea78e1069d3a5dc4d720e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 6 Aug 2022 20:58:41 +0200 Subject: [PATCH 2546/3047] Typo --- lib/container.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/container.js b/lib/container.js index f934b23fd..d18a33845 100644 --- a/lib/container.js +++ b/lib/container.js @@ -408,7 +408,7 @@ Container.registerAtRule = dependant => { } Container.registerRoot = dependant => { - Rule = dependant + Root = dependant } module.exports = Container From bc18340b6bcbea43839e56a8b61b939396b487ef Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 6 Aug 2022 20:59:14 +0200 Subject: [PATCH 2547/3047] Release 8.4.16 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44a1dfd54..9623be5c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.16 +* Fixed `Root` AST migration. + ## 8.4.15 * Fixed AST normalization after using custom parser with old PostCSS AST. diff --git a/lib/processor.js b/lib/processor.js index f743e29ed..cbbf12d78 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.15' + this.version = '8.4.16' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 936c592c8..848e8e95f 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.15", + "version": "8.4.16", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 951030f3d04e141ac639ed6609d95e5c52a04999 Mon Sep 17 00:00:00 2001 From: fpetrakov Date: Sat, 13 Aug 2022 12:35:02 +0300 Subject: [PATCH 2548/3047] add postcss-easy-import to the plugin list --- docs/plugins.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index e5e05c96b..84281f1c9 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -529,7 +529,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-design-tokens`] provides a function to retrieve design tokens expressed in JS or JSON, within CSS. * [`postcss-pixel-to-remvw`] converting px to both of rem and vw, also one of them - +* [`postcss-easy-import`] inline @import rules content with extra features. [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -931,3 +931,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-design-tokens`]: https://github.com/jptaranto/postcss-design-tokens [`postcss-pixel-to-remvw`]: https://github.com/ben-lau/postcss-pixel-to-remvw [`@csstools/postcss-design-tokens`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-design-tokens +[`postcss-easy-import`]: https://https://github.com/TrySound/postcss-easy-import From 9a49a1e0766e446b7d1d52ea1f56f57c7766131d Mon Sep 17 00:00:00 2001 From: fpetrakov Date: Sat, 13 Aug 2022 12:44:32 +0300 Subject: [PATCH 2549/3047] hotfix --- docs/plugins.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 84281f1c9..ac65966ce 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -531,6 +531,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-pixel-to-remvw`] converting px to both of rem and vw, also one of them * [`postcss-easy-import`] inline @import rules content with extra features. + [flexbox bugs]: https://github.com/philipwalton/flexbugs @@ -931,4 +932,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-design-tokens`]: https://github.com/jptaranto/postcss-design-tokens [`postcss-pixel-to-remvw`]: https://github.com/ben-lau/postcss-pixel-to-remvw [`@csstools/postcss-design-tokens`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-design-tokens -[`postcss-easy-import`]: https://https://github.com/TrySound/postcss-easy-import +[`postcss-easy-import`]: https://https://github.com/TrySound/postcss-easy-import From 627f01a1c91aa1b26eec60f089e5851d03816064 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 13 Aug 2022 14:44:07 +0200 Subject: [PATCH 2550/3047] Update docs/plugins.md --- docs/plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index ac65966ce..5adabdd82 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -529,7 +529,7 @@ See also plugins in modular minifier [`cssnano`]. * [`postcss-design-tokens`] provides a function to retrieve design tokens expressed in JS or JSON, within CSS. * [`postcss-pixel-to-remvw`] converting px to both of rem and vw, also one of them -* [`postcss-easy-import`] inline @import rules content with extra features. +* [`postcss-easy-import`] inline `@import` rules content with extra features. [flexbox bugs]: https://github.com/philipwalton/flexbugs From 98ec84be7202cc52db8b6080c57c5db1b264cd05 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 31 Aug 2022 21:16:40 +0200 Subject: [PATCH 2551/3047] Improve CI security --- .github/workflows/deno.yml | 4 ++-- .github/workflows/test.yml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deno.yml b/.github/workflows/deno.yml index 41b567c31..97b46de65 100644 --- a/.github/workflows/deno.yml +++ b/.github/workflows/deno.yml @@ -1,10 +1,10 @@ name: Deno - on: push: tags: - "8.*" - +permissions: + contents: read jobs: build: runs-on: ubuntu-latest diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2d7e3b5d7..f7d2eec25 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,8 @@ on: branches: - main pull_request: +permissions: + contents: read jobs: full: name: Node.js Latest Full From 50cbc6c3352c319794d7d3c47ed281e5ebc17c29 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 31 Aug 2022 21:17:36 +0200 Subject: [PATCH 2552/3047] Update dependencies --- package.json | 18 +- pnpm-lock.yaml | 476 +++++++++++++++++++++++-------------------------- 2 files changed, 230 insertions(+), 264 deletions(-) diff --git a/package.json b/package.json index 848e8e95f..a64b5de49 100755 --- a/package.json +++ b/package.json @@ -81,30 +81,30 @@ }, "devDependencies": { "@logux/eslint-config": "^47.2.0", - "@size-limit/preset-small-lib": "^8.0.0", + "@size-limit/preset-small-lib": "^8.0.1", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.6.4", - "@typescript-eslint/eslint-plugin": "^5.32.0", - "@typescript-eslint/parser": "^5.32.0", + "@types/node": "^18.7.14", + "@typescript-eslint/eslint-plugin": "^5.36.1", + "@typescript-eslint/parser": "^5.36.1", "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.21.0", + "eslint": "^8.23.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.2.4", + "eslint-plugin-n": "^15.2.5", "eslint-plugin-prefer-let": "^3.0.1", - "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-promise": "^6.0.1", "fs-extra": "^10.1.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.1", "simple-git-hooks": "^2.8.0", - "size-limit": "^8.0.0", + "size-limit": "^8.0.1", "strip-ansi": "^6.0.1", "ts-node": "^10.9.1", - "typescript": "^4.7.4", + "typescript": "^4.8.2", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ecc736700..3ea696f97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,21 +2,21 @@ lockfileVersion: 5.4 specifiers: '@logux/eslint-config': ^47.2.0 - '@size-limit/preset-small-lib': ^8.0.0 + '@size-limit/preset-small-lib': ^8.0.1 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.6.4 - '@typescript-eslint/eslint-plugin': ^5.32.0 - '@typescript-eslint/parser': ^5.32.0 + '@types/node': ^18.7.14 + '@typescript-eslint/eslint-plugin': ^5.36.1 + '@typescript-eslint/parser': ^5.36.1 c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.21.0 + eslint: ^8.23.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.2.4 + eslint-plugin-n: ^15.2.5 eslint-plugin-prefer-let: ^3.0.1 - eslint-plugin-promise: ^6.0.0 + eslint-plugin-promise: ^6.0.1 fs-extra: ^10.1.0 nanodelay: ^1.0.8 nanoid: ^3.3.4 @@ -24,11 +24,11 @@ specifiers: picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 simple-git-hooks: ^2.8.0 - size-limit: ^8.0.0 + size-limit: ^8.0.1 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.9.1 - typescript: ^4.7.4 + typescript: ^4.8.2 uvu: ^0.5.6 dependencies: @@ -37,31 +37,31 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_7hz3xvmviof7onfgk6hpedqcom - '@size-limit/preset-small-lib': 8.0.0_size-limit@8.0.0 + '@logux/eslint-config': 47.2.0_c5zrp42zbc5s4i6yiprz55kwaq + '@size-limit/preset-small-lib': 8.0.1_size-limit@8.0.1 '@types/fs-extra': 9.0.13 - '@types/node': 18.6.4 - '@typescript-eslint/eslint-plugin': 5.32.0_iosr3hrei2tubxveewluhu5lhy - '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@types/node': 18.7.14 + '@typescript-eslint/eslint-plugin': 5.36.1_lbwfnm54o3pmr3ypeqp3btnera + '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm c8: 7.12.0 - check-dts: 0.6.7_typescript@4.7.4 + check-dts: 0.6.7_typescript@4.8.2 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.21.0 - eslint-config-standard: 17.0.0_dfwa53o44x4e5xhsfv5mvfhk5a - eslint-plugin-import: 2.26.0_wuikv5nqgdfyng42xxm7lklfmi - eslint-plugin-n: 15.2.4_eslint@8.21.0 + eslint: 8.23.0 + eslint-config-standard: 17.0.0_ci7jzfiysajw25w4iodapaa2cq + eslint-plugin-import: 2.26.0_wyxuyzvlfep3lsyoibc4fosfq4 + eslint-plugin-n: 15.2.5_eslint@8.23.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.21.0 + eslint-plugin-promise: 6.0.1_eslint@8.23.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.1 simple-git-hooks: 2.8.0 - size-limit: 8.0.0 + size-limit: 8.0.1 strip-ansi: 6.0.1 - ts-node: 10.9.1_hn66opzbaneygq52jmwjxha6su - typescript: 4.7.4 + ts-node: 10.9.1_tphhiizkxv2hzwkunblc3hbmra + typescript: 4.8.2 uvu: 0.5.6 packages: @@ -77,8 +77,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/linux-loong64/0.14.53: - resolution: {integrity: sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg==} + /@esbuild/linux-loong64/0.15.6: + resolution: {integrity: sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -86,13 +86,13 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.0: - resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} + /@eslint/eslintrc/1.3.1: + resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.3.3 + espree: 9.4.0 globals: 13.17.0 ignore: 5.2.0 import-fresh: 3.3.0 @@ -118,6 +118,11 @@ packages: resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} dev: true + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true @@ -136,8 +141,8 @@ packages: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.14: - resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} + /@jridgewell/trace-mapping/0.3.15: + resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 @@ -150,7 +155,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_7hz3xvmviof7onfgk6hpedqcom: + /@logux/eslint-config/47.2.0_c5zrp42zbc5s4i6yiprz55kwaq: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -161,12 +166,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.21.0 - eslint-config-standard: 17.0.0_dfwa53o44x4e5xhsfv5mvfhk5a - eslint-plugin-import: 2.26.0_wuikv5nqgdfyng42xxm7lklfmi - eslint-plugin-n: 15.2.4_eslint@8.21.0 + eslint: 8.23.0 + eslint-config-standard: 17.0.0_ci7jzfiysajw25w4iodapaa2cq + eslint-plugin-import: 2.26.0_wyxuyzvlfep3lsyoibc4fosfq4 + eslint-plugin-n: 15.2.5_eslint@8.23.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.0_eslint@8.21.0 + eslint-plugin-promise: 6.0.1_eslint@8.23.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -190,35 +195,35 @@ packages: fastq: 1.13.0 dev: true - /@size-limit/esbuild/8.0.0_size-limit@8.0.0: - resolution: {integrity: sha512-du3gGKAzeh8fKEbqG0PcHKyyilpHTC+z/e6r0a82G+9KMCQd2PBHfOrTyN+of8u6EZXkrp0zdwgr84nKLp1nPg==} + /@size-limit/esbuild/8.0.1_size-limit@8.0.1: + resolution: {integrity: sha512-EnfRweoQc4P91G45sPfzAWMVPibK5SEV6sUWC46DcGlT9xrYeCQYtInbsny1/lSorC/sfJKN84aGm4A+q6SgOw==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} peerDependencies: - size-limit: 8.0.0 + size-limit: 8.0.1 dependencies: - esbuild: 0.14.53 + esbuild: 0.15.6 nanoid: 3.3.4 - size-limit: 8.0.0 + size-limit: 8.0.1 dev: true - /@size-limit/file/8.0.0_size-limit@8.0.0: - resolution: {integrity: sha512-xd4bBk/YyezsMQfpi2V3/blodCuPNVF5UwMd4L9LxBvon0PK4C1+3zBXxZpvN7AcMvPbJ8RUMS+iHpD4KcwaOg==} + /@size-limit/file/8.0.1_size-limit@8.0.1: + resolution: {integrity: sha512-kwgc5UJQIz5qbRow3atSiW2K7vEIIw4DelT4WLn09cOwcJgWs82Imgz2UqVivHJmCisn/ltPjT4qmxaDfjFflw==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} peerDependencies: - size-limit: 8.0.0 + size-limit: 8.0.1 dependencies: semver: 7.3.7 - size-limit: 8.0.0 + size-limit: 8.0.1 dev: true - /@size-limit/preset-small-lib/8.0.0_size-limit@8.0.0: - resolution: {integrity: sha512-6Q2fJFuPalvANQIoxYAmQLGk1Rxerw/qtqpEi1dhF9czfWxtYxKwlVQgsE/d0j5eum/N7iJxioDeKZQJjzKPrQ==} + /@size-limit/preset-small-lib/8.0.1_size-limit@8.0.1: + resolution: {integrity: sha512-EV+UXGZJU9kiT8R4N9dxjRAJ37tzjuP+e2DfpRtv7cx1ErFiB6k//wEhw9nLmJMWWhfvcVEvJYyKm3+i0pbWUQ==} peerDependencies: - size-limit: 8.0.0 + size-limit: 8.0.1 dependencies: - '@size-limit/esbuild': 8.0.0_size-limit@8.0.0 - '@size-limit/file': 8.0.0_size-limit@8.0.0 - size-limit: 8.0.0 + '@size-limit/esbuild': 8.0.1_size-limit@8.0.1 + '@size-limit/file': 8.0.1_size-limit@8.0.1 + size-limit: 8.0.1 dev: true /@tsconfig/node10/1.0.9: @@ -240,7 +245,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.6.4 + '@types/node': 18.7.14 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -255,16 +260,16 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.6.4: - resolution: {integrity: sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg==} + /@types/node/18.7.14: + resolution: {integrity: sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.32.0_iosr3hrei2tubxveewluhu5lhy: - resolution: {integrity: sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew==} + /@typescript-eslint/eslint-plugin/5.36.1_lbwfnm54o3pmr3ypeqp3btnera: + resolution: {integrity: sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -274,24 +279,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - '@typescript-eslint/scope-manager': 5.32.0 - '@typescript-eslint/type-utils': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq - '@typescript-eslint/utils': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/scope-manager': 5.36.1 + '@typescript-eslint/type-utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm debug: 4.3.4 - eslint: 8.21.0 + eslint: 8.23.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 + tsutils: 3.21.0_typescript@4.8.2 + typescript: 4.8.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: - resolution: {integrity: sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A==} + /@typescript-eslint/parser/5.36.1_yqf6kl63nyoq5megxukfnom5rm: + resolution: {integrity: sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -300,26 +305,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.32.0 - '@typescript-eslint/types': 5.32.0 - '@typescript-eslint/typescript-estree': 5.32.0_typescript@4.7.4 + '@typescript-eslint/scope-manager': 5.36.1 + '@typescript-eslint/types': 5.36.1 + '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 debug: 4.3.4 - eslint: 8.21.0 - typescript: 4.7.4 + eslint: 8.23.0 + typescript: 4.8.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.32.0: - resolution: {integrity: sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg==} + /@typescript-eslint/scope-manager/5.36.1: + resolution: {integrity: sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.32.0 - '@typescript-eslint/visitor-keys': 5.32.0 + '@typescript-eslint/types': 5.36.1 + '@typescript-eslint/visitor-keys': 5.36.1 dev: true - /@typescript-eslint/type-utils/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: - resolution: {integrity: sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg==} + /@typescript-eslint/type-utils/5.36.1_yqf6kl63nyoq5megxukfnom5rm: + resolution: {integrity: sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -328,22 +333,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 + '@typescript-eslint/utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm debug: 4.3.4 - eslint: 8.21.0 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 + eslint: 8.23.0 + tsutils: 3.21.0_typescript@4.8.2 + typescript: 4.8.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.32.0: - resolution: {integrity: sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ==} + /@typescript-eslint/types/5.36.1: + resolution: {integrity: sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.32.0_typescript@4.7.4: - resolution: {integrity: sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg==} + /@typescript-eslint/typescript-estree/5.36.1_typescript@4.8.2: + resolution: {integrity: sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -351,41 +357,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.32.0 - '@typescript-eslint/visitor-keys': 5.32.0 + '@typescript-eslint/types': 5.36.1 + '@typescript-eslint/visitor-keys': 5.36.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 + tsutils: 3.21.0_typescript@4.8.2 + typescript: 4.8.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.32.0_qugx7qdu5zevzvxaiqyxfiwquq: - resolution: {integrity: sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ==} + /@typescript-eslint/utils/5.36.1_yqf6kl63nyoq5megxukfnom5rm: + resolution: {integrity: sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.32.0 - '@typescript-eslint/types': 5.32.0 - '@typescript-eslint/typescript-estree': 5.32.0_typescript@4.7.4 - eslint: 8.21.0 + '@typescript-eslint/scope-manager': 5.36.1 + '@typescript-eslint/types': 5.36.1 + '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 + eslint: 8.23.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint-utils: 3.0.0_eslint@8.23.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.32.0: - resolution: {integrity: sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g==} + /@typescript-eslint/visitor-keys/5.36.1: + resolution: {integrity: sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.32.0 + '@typescript-eslint/types': 5.36.1 eslint-visitor-keys: 3.3.0 dev: true @@ -544,7 +550,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.7.4: + /check-dts/0.6.7_typescript@4.8.2: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true @@ -554,7 +560,7 @@ packages: fast-glob: 3.2.11 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.7.4 + typescript: 4.8.2 vfile-location: 4.0.1 dev: true @@ -744,7 +750,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.12.2 object-keys: 1.1.1 - object.assign: 4.1.3 + object.assign: 4.1.4 regexp.prototype.flags: 1.4.3 string.prototype.trimend: 1.0.5 string.prototype.trimstart: 1.0.5 @@ -766,8 +772,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.53: - resolution: {integrity: sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA==} + /esbuild-android-64/0.15.6: + resolution: {integrity: sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -775,8 +781,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.53: - resolution: {integrity: sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A==} + /esbuild-android-arm64/0.15.6: + resolution: {integrity: sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -784,8 +790,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.53: - resolution: {integrity: sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg==} + /esbuild-darwin-64/0.15.6: + resolution: {integrity: sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -793,8 +799,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.53: - resolution: {integrity: sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA==} + /esbuild-darwin-arm64/0.15.6: + resolution: {integrity: sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -802,8 +808,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.53: - resolution: {integrity: sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w==} + /esbuild-freebsd-64/0.15.6: + resolution: {integrity: sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -811,8 +817,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.53: - resolution: {integrity: sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ==} + /esbuild-freebsd-arm64/0.15.6: + resolution: {integrity: sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -820,8 +826,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.53: - resolution: {integrity: sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg==} + /esbuild-linux-32/0.15.6: + resolution: {integrity: sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -829,8 +835,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.53: - resolution: {integrity: sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ==} + /esbuild-linux-64/0.15.6: + resolution: {integrity: sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -838,8 +844,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.53: - resolution: {integrity: sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA==} + /esbuild-linux-arm/0.15.6: + resolution: {integrity: sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -847,8 +853,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.53: - resolution: {integrity: sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw==} + /esbuild-linux-arm64/0.15.6: + resolution: {integrity: sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -856,8 +862,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.53: - resolution: {integrity: sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ==} + /esbuild-linux-mips64le/0.15.6: + resolution: {integrity: sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -865,8 +871,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.53: - resolution: {integrity: sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA==} + /esbuild-linux-ppc64le/0.15.6: + resolution: {integrity: sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -874,8 +880,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.53: - resolution: {integrity: sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ==} + /esbuild-linux-riscv64/0.15.6: + resolution: {integrity: sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -883,8 +889,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.53: - resolution: {integrity: sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg==} + /esbuild-linux-s390x/0.15.6: + resolution: {integrity: sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -892,8 +898,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.53: - resolution: {integrity: sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ==} + /esbuild-netbsd-64/0.15.6: + resolution: {integrity: sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -901,8 +907,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.53: - resolution: {integrity: sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ==} + /esbuild-openbsd-64/0.15.6: + resolution: {integrity: sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -910,8 +916,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.53: - resolution: {integrity: sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g==} + /esbuild-sunos-64/0.15.6: + resolution: {integrity: sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -919,8 +925,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.53: - resolution: {integrity: sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg==} + /esbuild-windows-32/0.15.6: + resolution: {integrity: sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -928,8 +934,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.53: - resolution: {integrity: sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ==} + /esbuild-windows-64/0.15.6: + resolution: {integrity: sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -937,8 +943,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.53: - resolution: {integrity: sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ==} + /esbuild-windows-arm64/0.15.6: + resolution: {integrity: sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -946,33 +952,33 @@ packages: dev: true optional: true - /esbuild/0.14.53: - resolution: {integrity: sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw==} + /esbuild/0.15.6: + resolution: {integrity: sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/linux-loong64': 0.14.53 - esbuild-android-64: 0.14.53 - esbuild-android-arm64: 0.14.53 - esbuild-darwin-64: 0.14.53 - esbuild-darwin-arm64: 0.14.53 - esbuild-freebsd-64: 0.14.53 - esbuild-freebsd-arm64: 0.14.53 - esbuild-linux-32: 0.14.53 - esbuild-linux-64: 0.14.53 - esbuild-linux-arm: 0.14.53 - esbuild-linux-arm64: 0.14.53 - esbuild-linux-mips64le: 0.14.53 - esbuild-linux-ppc64le: 0.14.53 - esbuild-linux-riscv64: 0.14.53 - esbuild-linux-s390x: 0.14.53 - esbuild-netbsd-64: 0.14.53 - esbuild-openbsd-64: 0.14.53 - esbuild-sunos-64: 0.14.53 - esbuild-windows-32: 0.14.53 - esbuild-windows-64: 0.14.53 - esbuild-windows-arm64: 0.14.53 + '@esbuild/linux-loong64': 0.15.6 + esbuild-android-64: 0.15.6 + esbuild-android-arm64: 0.15.6 + esbuild-darwin-64: 0.15.6 + esbuild-darwin-arm64: 0.15.6 + esbuild-freebsd-64: 0.15.6 + esbuild-freebsd-arm64: 0.15.6 + esbuild-linux-32: 0.15.6 + esbuild-linux-64: 0.15.6 + esbuild-linux-arm: 0.15.6 + esbuild-linux-arm64: 0.15.6 + esbuild-linux-mips64le: 0.15.6 + esbuild-linux-ppc64le: 0.15.6 + esbuild-linux-riscv64: 0.15.6 + esbuild-linux-s390x: 0.15.6 + esbuild-netbsd-64: 0.15.6 + esbuild-openbsd-64: 0.15.6 + esbuild-sunos-64: 0.15.6 + esbuild-windows-32: 0.15.6 + esbuild-windows-64: 0.15.6 + esbuild-windows-arm64: 0.15.6 dev: true /escalade/3.1.1: @@ -985,7 +991,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_dfwa53o44x4e5xhsfv5mvfhk5a: + /eslint-config-standard/17.0.0_ci7jzfiysajw25w4iodapaa2cq: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -993,10 +999,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.21.0 - eslint-plugin-import: 2.26.0_wuikv5nqgdfyng42xxm7lklfmi - eslint-plugin-n: 15.2.4_eslint@8.21.0 - eslint-plugin-promise: 6.0.0_eslint@8.21.0 + eslint: 8.23.0 + eslint-plugin-import: 2.26.0_wyxuyzvlfep3lsyoibc4fosfq4 + eslint-plugin-n: 15.2.5_eslint@8.23.0 + eslint-plugin-promise: 6.0.1_eslint@8.23.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1008,17 +1014,20 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_gjpiwexkhexdr4bbgrtzf23bg4: - resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + /eslint-module-utils/2.7.4_ykymimdrk6u2mbikrjd7umy4sm: + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' + eslint: '*' eslint-import-resolver-node: '*' eslint-import-resolver-typescript: '*' eslint-import-resolver-webpack: '*' peerDependenciesMeta: '@typescript-eslint/parser': optional: true + eslint: + optional: true eslint-import-resolver-node: optional: true eslint-import-resolver-typescript: @@ -1026,26 +1035,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm debug: 3.2.7 + eslint: 8.23.0 eslint-import-resolver-node: 0.3.6 - find-up: 2.1.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.21.0: + /eslint-plugin-es/4.1.0_eslint@8.23.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.21.0 + eslint: 8.23.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_wuikv5nqgdfyng42xxm7lklfmi: + /eslint-plugin-import/2.26.0_wyxuyzvlfep3lsyoibc4fosfq4: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1055,14 +1064,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.32.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.21.0 + eslint: 8.23.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_gjpiwexkhexdr4bbgrtzf23bg4 + eslint-module-utils: 2.7.4_ykymimdrk6u2mbikrjd7umy4sm has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -1076,16 +1085,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.2.4_eslint@8.21.0: - resolution: {integrity: sha512-tjnVMv2fiXYMnuiIFI8QMtyUFI42SckEEWvi8h68SWGWshfqO6SSCASy24dGMGAiy7NUk6DZt90DM0iNUsmQ5w==} + /eslint-plugin-n/15.2.5_eslint@8.23.0: + resolution: {integrity: sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.21.0 - eslint-plugin-es: 4.1.0_eslint@8.21.0 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint: 8.23.0 + eslint-plugin-es: 4.1.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.23.0 ignore: 5.2.0 is-core-module: 2.10.0 minimatch: 3.1.2 @@ -1100,13 +1109,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.21.0: - resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} + /eslint-plugin-promise/6.0.1_eslint@8.23.0: + resolution: {integrity: sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.21.0 + eslint: 8.23.0 dev: true /eslint-scope/5.1.1: @@ -1132,13 +1141,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.21.0: + /eslint-utils/3.0.0_eslint@8.23.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.21.0 + eslint: 8.23.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1157,14 +1166,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.21.0: - resolution: {integrity: sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==} + /eslint/8.23.0: + resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.0 + '@eslint/eslintrc': 1.3.1 '@humanwhocodes/config-array': 0.10.4 '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@humanwhocodes/module-importer': 1.0.1 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1172,9 +1182,9 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint-utils: 3.0.0_eslint@8.23.0 eslint-visitor-keys: 3.3.0 - espree: 9.3.3 + espree: 9.4.0 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -1200,13 +1210,12 @@ packages: strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree/9.3.3: - resolution: {integrity: sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==} + /espree/9.4.0: + resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.0 @@ -1286,13 +1295,6 @@ packages: to-regex-range: 5.0.1 dev: true - /find-up/2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -1305,12 +1307,12 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.6 + flatted: 3.2.7 rimraf: 3.0.2 dev: true - /flatted/3.2.6: - resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true /foreground-child/2.0.0: @@ -1699,14 +1701,6 @@ packages: engines: {node: '>=10'} dev: true - /locate-path/2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -1820,8 +1814,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign/4.1.3: - resolution: {integrity: sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==} + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -1857,13 +1851,6 @@ packages: word-wrap: 1.2.3 dev: true - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - /p-limit/3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -1871,13 +1858,6 @@ packages: yocto-queue: 0.1.0 dev: true - /p-locate/2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -1885,11 +1865,6 @@ packages: p-limit: 3.1.0 dev: true - /p-try/1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true - /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -1897,11 +1872,6 @@ packages: callsites: 3.1.0 dev: true - /path-exists/3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true - /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2071,8 +2041,8 @@ packages: requiresBuild: true dev: true - /size-limit/8.0.0: - resolution: {integrity: sha512-344dzCZZiTz+N0WS801SNG/qd8MCa6dzJhsj8gLQg4JlmddwUdi/Ol0HfliEVL7jgtOz8fNgDeB2+14xwalvVA==} + /size-limit/8.0.1: + resolution: {integrity: sha512-VHrozqkQTYfcv1OlZIRIL0x6f+xhZ3TT+RTXC5AvKn/yA+3PIWERrKWqHMJPD7G/Vi0SuBtWAn3IvCGx2/UB1g==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} hasBin: true dependencies: @@ -2175,7 +2145,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_hn66opzbaneygq52jmwjxha6su: + /ts-node/10.9.1_tphhiizkxv2hzwkunblc3hbmra: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2194,14 +2164,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.6.4 + '@types/node': 18.7.14 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.7.4 + typescript: 4.8.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2219,14 +2189,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.7.4: + /tsutils/3.21.0_typescript@4.8.2: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.7.4 + typescript: 4.8.2 dev: true /type-check/0.4.0: @@ -2241,8 +2211,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.7.4: - resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} + /typescript/4.8.2: + resolution: {integrity: sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2288,15 +2258,11 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - /v8-to-istanbul/9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/trace-mapping': 0.3.15 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 dev: true From 5f745ef3e39f8558e0fd0a0227489f709b01cb44 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 31 Aug 2022 21:18:05 +0200 Subject: [PATCH 2553/3047] Remove Deno port since Deno will have npm support --- .github/workflows/deno.yml | 49 -------------------------------------- README.md | 14 ----------- 2 files changed, 63 deletions(-) delete mode 100644 .github/workflows/deno.yml diff --git a/.github/workflows/deno.yml b/.github/workflows/deno.yml deleted file mode 100644 index 97b46de65..000000000 --- a/.github/workflows/deno.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Deno -on: - push: - tags: - - "8.*" -permissions: - contents: read -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Setup Deno environment - uses: denolib/setup-deno@v2.3.0 - with: - deno-version: v1.x - - - name: Checkout postcss-deno - uses: actions/checkout@v3 - with: - repository: postcss/postcss-deno - token: ${{ secrets.PAT }} - - - name: Checkout sources - uses: actions/checkout@v3 - with: - ref: main - path: postcss - - - name: Convert the code - run: | - rm -rf deno - deno run --unstable --allow-write --allow-read to_deno.js - deno fmt deno - deno test --unstable --allow-read --allow-env deno/test/* - - - name: Get the tag name - id: get_version - run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} - - - name: Commit the changes and create the tag - run: | - git config user.name deno-conversion - git config user.email github-actions@github.com - git add deno - git commit -m "update code" - git push - git tag ${{ steps.get_version.outputs.VERSION }} - git push --tags diff --git a/README.md b/README.md index 334a6829f..bf75fff99 100644 --- a/README.md +++ b/README.md @@ -371,20 +371,6 @@ prefixer({ display: 'flex' }) //=> { display: ['-webkit-box', '-webkit-flex', '- [webpack]: https://webpack.github.io/ -### Deno - -PostCSS also supports [Deno]: - -```js -import postcss from 'https://deno.land/x/postcss/mod.js' -import autoprefixer from 'https://jspm.dev/autoprefixer' - -const result = await postcss([autoprefixer]).process(css) -``` - -[Deno]: https://deno.land/ - - ### Runners * **Grunt**: [`@lodder/grunt-postcss`](https://github.com/C-Lodder/grunt-postcss) From aa4889d119b79898c597ab058bc8c369a54d2846 Mon Sep 17 00:00:00 2001 From: the-aaryan <111832348+the-aaryan@users.noreply.github.com> Date: Fri, 23 Sep 2022 23:41:21 +0530 Subject: [PATCH 2554/3047] Simple Grammar correction in plugins.md --- docs/plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 5adabdd82..3df2b38c4 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -50,7 +50,7 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-preset-env`] lets you convert modern CSS into something most browsers can understand, determining the polyfills you need based on your targeted browsers or runtime environments. -* [`postcss-ui-theme`] gives you syntax sugar and allow you change theme. +* [`postcss-ui-theme`] gives you syntax sugar and allows you to change theme. [`postcss-preset-env`]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env [`postcss-utilities`]: https://github.com/ismamz/postcss-utilities From ff855ba10c52bb524bddcccc494c3dab1505ae82 Mon Sep 17 00:00:00 2001 From: Ibrahim Qronfli Date: Mon, 26 Sep 2022 16:19:20 +0200 Subject: [PATCH 2555/3047] Typo mistake in architecture.md --- docs/architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture.md b/docs/architecture.md index 6cfa43fd1..9b124b4f5 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -56,7 +56,7 @@ That being said, there are few ways to write a parser. A lot of parsers like [`@babel/parser` (parser behind Babel)](https://github.com/babel/babel/tree/master/packages/babel-parser), [`CSSTree`](https://github.com/csstree/csstree) were written in such way. The main reasons to separate tokenization from parsing steps are performance and abstracting complexity. -Let think about why the second way is better for our needs. +Let's think about why the second way is better for our needs. First of all, because string to tokens step takes more time than parsing step. We operate on large source string and process it char by char, this is why it is very inefficient operation in terms of performance and we should perform it only once. From 0a8a3ce1d642ab2690b6662a0ecbd56ce3b313fe Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 19:54:39 +0300 Subject: [PATCH 2556/3047] Add index.md --- docs/index.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 docs/index.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..8dd962d18 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,47 @@ +**Index** +* [PostCSS Architecture](https://github.com/postcss/postcss/blob/main/docs/architecture.md#postcss-architecture) + * [Overview](https://github.com/postcss/postcss/blob/main/docs/architecture.md#overview) + * [Workflow](https://github.com/postcss/postcss/blob/main/docs/architecture.md#workflow) + * [Core Structures](https://github.com/postcss/postcss/blob/main/docs/architecture.md#core-structures) + * [API Reference](https://github.com/postcss/postcss/blob/main/docs/architecture.md#api-reference + +* [PostCSS Plugins](https://github.com/postcss/postcss/blob/main/docs/plugins.md#postcss-plugins) + * [Control](https://github.com/postcss/postcss/blob/main/docs/plugins.md#control) + * [Packs](https://github.com/postcss/postcss/blob/main/docs/plugins.md#packs) + * [Future CSS Syntax](https://github.com/postcss/postcss/blob/main/docs/plugins.md#future-css-syntax) + * [Fallbacks](https://github.com/postcss/postcss/blob/main/docs/plugins.md#fallbacks) + * [Language Extensions](https://github.com/postcss/postcss/blob/main/docs/plugins.md#language-extensions) + * [Colors](https://github.com/postcss/postcss/blob/main/docs/plugins.md#colors) + * [Images and Fonts](https://github.com/postcss/postcss/blob/main/docs/plugins.md#images-and-fonts) + * [Grids](https://github.com/postcss/postcss/blob/main/docs/plugins.md#grids) + * [Optimizations](https://github.com/postcss/postcss/blob/main/docs/plugins.md#optimizations) + * [Shortcuts](https://github.com/postcss/postcss/blob/main/docs/plugins.md#shortcuts) + * [Others](https://github.com/postcss/postcss/blob/main/docs/plugins.md#others) + * [Analysis](https://github.com/postcss/postcss/blob/main/docs/plugins.md#analysis) + * [Reporters](https://github.com/postcss/postcss/blob/main/docs/plugins.md#reporters) + * [Fun](https://github.com/postcss/postcss/blob/main/docs/plugins.md#fun) + +* [PostCSS and Source Maps](https://github.com/postcss/postcss/blob/main/docs/source-maps.md#postcss-and-source-maps) + +* [How to Write Custom Syntax](https://github.com/postcss/postcss/blob/main/docs/syntax.md#how-to-write-custom-syntax) + * [Syntax](https://github.com/postcss/postcss/blob/main/docs/syntax.md#syntax) + * [Parser](https://github.com/postcss/postcss/blob/main/docs/syntax.md#parser) + * [Main Theory](https://github.com/postcss/postcss/blob/main/docs/syntax.md#main-theory) + * [Performance](https://github.com/postcss/postcss/blob/main/docs/syntax.md#performance) + * [Node Source](https://github.com/postcss/postcss/blob/main/docs/syntax.md#node-source) + * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values) + * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests) + * [Stringifier](https://github.com/postcss/postcss/blob/main/docs/syntax.md#stringifier) + * [Main Theory](https://github.com/postcss/postcss/blob/main/docs/syntax.md#main-theory-1) + * [Builder Function](https://github.com/postcss/postcss/blob/main/docs/syntax.md#builder-function) + * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values-1) + * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests-1) + +* [Writing a PostCSS Plugin] + * [Links](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#links) + * [Step 1: Create an idea](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-1-create-an-idea) + * [Step 2: Create a project](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-2-create-a-project) + * [Step 3: Find nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-3-find-nodes) + * [Step 4: Change nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-4-change-nodes) + * [Step 5: Fight with frustration](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-5-fight-with-frustration) + * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) From c0f0b0a89459b676613efbfa1b1a529d8ceeeb43 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 19:56:56 +0300 Subject: [PATCH 2557/3047] fix typos --- docs/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 8dd962d18..c2469386f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,7 +3,7 @@ * [Overview](https://github.com/postcss/postcss/blob/main/docs/architecture.md#overview) * [Workflow](https://github.com/postcss/postcss/blob/main/docs/architecture.md#workflow) * [Core Structures](https://github.com/postcss/postcss/blob/main/docs/architecture.md#core-structures) - * [API Reference](https://github.com/postcss/postcss/blob/main/docs/architecture.md#api-reference + * [API Reference](https://github.com/postcss/postcss/blob/main/docs/architecture.md#api-reference) * [PostCSS Plugins](https://github.com/postcss/postcss/blob/main/docs/plugins.md#postcss-plugins) * [Control](https://github.com/postcss/postcss/blob/main/docs/plugins.md#control) @@ -37,7 +37,7 @@ * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values-1) * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests-1) -* [Writing a PostCSS Plugin] +* [Writing a PostCSS Plugin](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#writing-a-postcss-plugin) * [Links](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#links) * [Step 1: Create an idea](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-1-create-an-idea) * [Step 2: Create a project](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-2-create-a-project) From 3addecca5ba3b8c2c0925811ca8d7ce4453c5dbc Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 19:58:28 +0300 Subject: [PATCH 2558/3047] fix spacing --- docs/index.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/index.md b/docs/index.md index c2469386f..25a365338 100644 --- a/docs/index.md +++ b/docs/index.md @@ -5,6 +5,7 @@ * [Core Structures](https://github.com/postcss/postcss/blob/main/docs/architecture.md#core-structures) * [API Reference](https://github.com/postcss/postcss/blob/main/docs/architecture.md#api-reference) + * [PostCSS Plugins](https://github.com/postcss/postcss/blob/main/docs/plugins.md#postcss-plugins) * [Control](https://github.com/postcss/postcss/blob/main/docs/plugins.md#control) * [Packs](https://github.com/postcss/postcss/blob/main/docs/plugins.md#packs) @@ -21,8 +22,10 @@ * [Reporters](https://github.com/postcss/postcss/blob/main/docs/plugins.md#reporters) * [Fun](https://github.com/postcss/postcss/blob/main/docs/plugins.md#fun) + * [PostCSS and Source Maps](https://github.com/postcss/postcss/blob/main/docs/source-maps.md#postcss-and-source-maps) + * [How to Write Custom Syntax](https://github.com/postcss/postcss/blob/main/docs/syntax.md#how-to-write-custom-syntax) * [Syntax](https://github.com/postcss/postcss/blob/main/docs/syntax.md#syntax) * [Parser](https://github.com/postcss/postcss/blob/main/docs/syntax.md#parser) @@ -32,16 +35,16 @@ * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values) * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests) * [Stringifier](https://github.com/postcss/postcss/blob/main/docs/syntax.md#stringifier) - * [Main Theory](https://github.com/postcss/postcss/blob/main/docs/syntax.md#main-theory-1) - * [Builder Function](https://github.com/postcss/postcss/blob/main/docs/syntax.md#builder-function) - * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values-1) - * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests-1) + * [Main Theory](https://github.com/postcss/postcss/blob/main/docs/syntax.md#main-theory-1) + * [Builder Function](https://github.com/postcss/postcss/blob/main/docs/syntax.md#builder-function) + * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values-1) + * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests-1) * [Writing a PostCSS Plugin](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#writing-a-postcss-plugin) - * [Links](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#links) - * [Step 1: Create an idea](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-1-create-an-idea) - * [Step 2: Create a project](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-2-create-a-project) - * [Step 3: Find nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-3-find-nodes) - * [Step 4: Change nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-4-change-nodes) - * [Step 5: Fight with frustration](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-5-fight-with-frustration) - * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) + * [Links](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#links) + * [Step 1: Create an idea](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-1-create-an-idea) + * [Step 2: Create a project](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-2-create-a-project) + * [Step 3: Find nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-3-find-nodes) + * [Step 4: Change nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-4-change-nodes) + * [Step 5: Fight with frustration](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-5-fight-with-frustration) + * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) From d02f9336034009386ba13e29a352be674feb8049 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 19:59:30 +0300 Subject: [PATCH 2559/3047] fix lines b/w paragraphs --- docs/index.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/index.md b/docs/index.md index 25a365338..4c10f6698 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,8 +4,6 @@ * [Workflow](https://github.com/postcss/postcss/blob/main/docs/architecture.md#workflow) * [Core Structures](https://github.com/postcss/postcss/blob/main/docs/architecture.md#core-structures) * [API Reference](https://github.com/postcss/postcss/blob/main/docs/architecture.md#api-reference) - - * [PostCSS Plugins](https://github.com/postcss/postcss/blob/main/docs/plugins.md#postcss-plugins) * [Control](https://github.com/postcss/postcss/blob/main/docs/plugins.md#control) * [Packs](https://github.com/postcss/postcss/blob/main/docs/plugins.md#packs) @@ -21,11 +19,8 @@ * [Analysis](https://github.com/postcss/postcss/blob/main/docs/plugins.md#analysis) * [Reporters](https://github.com/postcss/postcss/blob/main/docs/plugins.md#reporters) * [Fun](https://github.com/postcss/postcss/blob/main/docs/plugins.md#fun) - - * [PostCSS and Source Maps](https://github.com/postcss/postcss/blob/main/docs/source-maps.md#postcss-and-source-maps) - * [How to Write Custom Syntax](https://github.com/postcss/postcss/blob/main/docs/syntax.md#how-to-write-custom-syntax) * [Syntax](https://github.com/postcss/postcss/blob/main/docs/syntax.md#syntax) * [Parser](https://github.com/postcss/postcss/blob/main/docs/syntax.md#parser) @@ -39,7 +34,6 @@ * [Builder Function](https://github.com/postcss/postcss/blob/main/docs/syntax.md#builder-function) * [Raw Values](https://github.com/postcss/postcss/blob/main/docs/syntax.md#raw-values-1) * [Tests](https://github.com/postcss/postcss/blob/main/docs/syntax.md#tests-1) - * [Writing a PostCSS Plugin](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#writing-a-postcss-plugin) * [Links](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#links) * [Step 1: Create an idea](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-1-create-an-idea) From b80938280b2dff7136b71003a65cf01816700484 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:20:05 +0300 Subject: [PATCH 2560/3047] add index for guidlines --- docs/index.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/docs/index.md b/docs/index.md index 4c10f6698..bbb9c4938 100644 --- a/docs/index.md +++ b/docs/index.md @@ -42,3 +42,46 @@ * [Step 4: Change nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-4-change-nodes) * [Step 5: Fight with frustration](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-5-fight-with-frustration) * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) +**Guidlines** +* [PostCSS Plugin Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#postcss-plugin-guidelines) + * [API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#1-api) + * [1.1 Clear name with `postcss-` prefix](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#11-clear-name-with-postcss--prefix) + * [1.2. Do one thing, and do it well](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#12-do-one-thing-and-do-it-well) + * [1.3. Do not use mixins](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#13-do-not-use-mixins) + * [1.4. Keep `postcss` to `peerDependencies`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#14-keep-postcss-to-peerdependencies) + * [1.5. Set `plugin.postcssPlugin` with plugin name](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#15-set-pluginpostcssplugin-with-plugin-name) + * [Processing](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#2-processing) + * [2.1. Plugin must be tested](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#21-plugin-must-be-tested) + * [2.2. Use asynchronous methods whenever possible](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#22-use-asynchronous-methods-whenever-possible) + * [2.3. Use fast node’s scanning](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#23-use-fast-nodes-scanning) + * [2.4. Set `node.source` for new nodes](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#24-set-nodesource-for-new-nodes) + * [2.5. Use only the public PostCSS API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#25-use-only-the-public-postcss-api) + * [Dependencies](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#3-dependencies) + * [3.1. Use messages to specify dependencies](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#31-use-messages-to-specify-dependencies) + * [Errors](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#4-errors) + * [4.1. Use `node.error` on CSS relevant errors](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#41-use-nodeerror-on-css-relevant-errors) + * [4.2. Use `result.warn` for warnings](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#42-use-resultwarn-for-warnings) + * [Documentation](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#5-documentation) + * [5.1. Document your plugin in English](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#51-document-your-plugin-in-english) + * [5.2. Include input and output examples](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#52-include-input-and-output-examples) + * [5.3. Maintain a changelog](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#53-maintain-a-changelog) + * [5.4. Include `postcss-plugin` keyword in `package.json`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#54-include-postcss-plugin-keyword-in-packagejson) + + [PostCSS Runner Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#postcss-runner-guidelines) + * [API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#1-api) + * [1.1. Accept functions in plugin parameters](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#11-accept-functions-in-plugin-parameters) + * [Processing](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) + * [2.1. Set `from` and `to` processing options](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) + * [2.2. Use only the asynchronous API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#22-use-only-the-asynchronous-api) + * [2.3. Use only the public PostCSS API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#23-use-only-the-public-postcss-api) + * [Dependencies](https) + * [3.1. Rebuild when dependencies change](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#31-rebuild-when-dependencies-change) + * [Output](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) + * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) + * [4.2. Display `result.warnings()`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#42-display-resultwarnings) + * [4.3. Allow the user to write source maps to different files](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#43-allow-the-user-to-write-source-maps-to-different-files) + * [Documentation](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) + * [5.1. Document your runner in English](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#51-document-your-runner-in-english) + * [5.2. Maintain a changelog](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#52-maintain-a-changelog) + * [5.3. `postcss-runner` keyword in `package.json`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#53-postcss-runner-keyword-in-packagejson) + * [5.4. Keep postcss to peerDependencies](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#54-keep-postcss-to-peerdependencies) From 5ab136eae4152274df4c676cebc30a0abfc2c8d7 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:22:21 +0300 Subject: [PATCH 2561/3047] fix spacing --- docs/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index bbb9c4938..b3c1acada 100644 --- a/docs/index.md +++ b/docs/index.md @@ -42,6 +42,7 @@ * [Step 4: Change nodes](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-4-change-nodes) * [Step 5: Fight with frustration](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-5-fight-with-frustration) * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) + **Guidlines** * [PostCSS Plugin Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#postcss-plugin-guidelines) * [API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#1-api) @@ -67,7 +68,7 @@ * [5.3. Maintain a changelog](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#53-maintain-a-changelog) * [5.4. Include `postcss-plugin` keyword in `package.json`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#54-include-postcss-plugin-keyword-in-packagejson) - [PostCSS Runner Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#postcss-runner-guidelines) +* [PostCSS Runner Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#postcss-runner-guidelines) * [API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#1-api) * [1.1. Accept functions in plugin parameters](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#11-accept-functions-in-plugin-parameters) * [Processing](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) From 7dece8f5f005c0a03b5993df7a956f7d3bd9fedc Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:29:42 +0300 Subject: [PATCH 2562/3047] table of contents for plugins.md --- docs/plugins.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 3df2b38c4..28dfb2759 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -1,5 +1,23 @@ # PostCSS Plugins +**Table of Contents** + +* [PostCSS Plugins](#postcss-plugins) + * [Control](#control) + * [Packs](#packs) + * [Control](#control) + * [Future CSS Syntax](#future-css-syntax) + * [Fallbacks](#fallbacks) + * [Language Extensions](#language-extensions) + * [Images and Fonts](#images-and-fonts) + * [Grids](#grids) + * [Optimizations](#optimizations) + * [Shortcuts](#shortcuts) + * [Others](#others) + * [Analysis](#analysis) + * [Reporters](#reporters) + * [Fun](#fun) + ## Control There are two ways to make PostCSS magic more explicit. From b092d273a6b2379443c82ae9f378ff9b0571ccea Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:36:25 +0300 Subject: [PATCH 2563/3047] table of contents for syntax.md --- docs/syntax.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/syntax.md b/docs/syntax.md index 5b5432896..a93b5e1d5 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -1,5 +1,19 @@ # How to Write Custom Syntax +* [How to Write Custom Syntax](#how-to-write-custom-syntax) + * [Syntax](#syntax) + * [Parser](#parser) + * [Main Theory](#main-theory) + * [Performance](#performance)) + * [Node Source](#node-source) + * [Raw Values](#raw-values) + * [Tests](#tests) + * [Stringifier](#stringifier) + * [Main Theory](#main-theory-1) + * [Builder Function](#builder-function) + * [Raw Values](#raw-values-1) + * [Tests](#tests-1) + PostCSS can transform styles in any syntax, and is not limited to just CSS. By writing a custom syntax, you can transform styles in any desired format. From 7934341bfbafe7317dd08dcc6f6f6f5373b89013 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:37:39 +0300 Subject: [PATCH 2564/3047] add title to table of contents --- docs/syntax.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/syntax.md b/docs/syntax.md index a93b5e1d5..d858fe402 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -1,5 +1,7 @@ # How to Write Custom Syntax +**Table of Contents** + * [How to Write Custom Syntax](#how-to-write-custom-syntax) * [Syntax](#syntax) * [Parser](#parser) From a555971d746ed401ae62c878094c41420f42689d Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:38:51 +0300 Subject: [PATCH 2565/3047] move table of contents further down --- docs/syntax.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index d858fe402..9fdca30f4 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -1,5 +1,17 @@ # How to Write Custom Syntax +PostCSS can transform styles in any syntax, and is not limited to just CSS. +By writing a custom syntax, you can transform styles in any desired format. + +Writing a custom syntax is much harder than writing a PostCSS plugin, but +it is an awesome adventure. + +There are 3 types of PostCSS syntax packages: + +* **Parser** to parse input string to node’s tree. +* **Stringifier** to generate output string by node’s tree. +* **Syntax** contains both parser and stringifier. + **Table of Contents** * [How to Write Custom Syntax](#how-to-write-custom-syntax) @@ -16,19 +28,6 @@ * [Raw Values](#raw-values-1) * [Tests](#tests-1) -PostCSS can transform styles in any syntax, and is not limited to just CSS. -By writing a custom syntax, you can transform styles in any desired format. - -Writing a custom syntax is much harder than writing a PostCSS plugin, but -it is an awesome adventure. - -There are 3 types of PostCSS syntax packages: - -* **Parser** to parse input string to node’s tree. -* **Stringifier** to generate output string by node’s tree. -* **Syntax** contains both parser and stringifier. - - ## Syntax A good example of a custom syntax is [SCSS]. Some users may want to transform From 121dff80a195a31538ff54ce6a5f6308759bed56 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:43:51 +0300 Subject: [PATCH 2566/3047] rable of contents for writing-a-plugin.md --- docs/writing-a-plugin.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index 8afa7f279..8255a7062 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -1,5 +1,14 @@ # Writing a PostCSS Plugin +* [Writing a PostCSS Plugin](#writing-a-postcss-plugin) + * [Links](#links) + * [Step 1: Create an idea](#step-1-create-an-idea) + * [Step 2: Create a project](#step-2-create-a-project) + * [Step 3: Find nodes](#step-3-find-nodes) + * [Step 4: Change nodes](#step-4-change-nodes) + * [Step 5: Fight with frustration](#step-5-fight-with-frustration) + * [Step 6: Make it public](#step-6-make-it-public) + ## Links Documentation: From b9f04dc417fbaf4c08d8d2c415e4e7634c4ca220 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:47:56 +0300 Subject: [PATCH 2567/3047] table of contents for plugin.md --- docs/guidelines/plugin.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 88a0ed497..167797f1e 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -9,6 +9,31 @@ See also [ClojureWerkz’s recommendations] for open source projects. [ClojureWerkz’s recommendations]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/ +**Table of Contents** + +* [PostCSS Plugin Guidelines](#postcss-plugin-guidelines) + * [API](#1-api) + * [1.1 Clear name with `postcss-` prefix](#11-clear-name-with-postcss--prefix) + * [1.2. Do one thing, and do it well](#12-do-one-thing-and-do-it-well) + * [1.3. Do not use mixins](#13-do-not-use-mixins) + * [1.4. Keep `postcss` to `peerDependencies`](#14-keep-postcss-to-peerdependencies) + * [1.5. Set `plugin.postcssPlugin` with plugin name](#15-set-pluginpostcssplugin-with-plugin-name) + * [Processing](#2-processing) + * [2.1. Plugin must be tested](#21-plugin-must-be-tested) + * [2.2. Use asynchronous methods whenever possible](#22-use-asynchronous-methods-whenever-possible) + * [2.3. Use fast node’s scanning](#23-use-fast-nodes-scanning) + * [2.4. Set `node.source` for new nodes](#24-set-nodesource-for-new-nodes) + * [2.5. Use only the public PostCSS API](#25-use-only-the-public-postcss-api) + * [Dependencies](#3-dependencies) + * [3.1. Use messages to specify dependencies](#31-use-messages-to-specify-dependencies) + * [Errors](#4-errors) + * [4.1. Use `node.error` on CSS relevant errors](#41-use-nodeerror-on-css-relevant-errors) + * [4.2. Use `result.warn` for warnings](#42-use-resultwarn-for-warnings) + * [Documentation](#5-documentation) + * [5.1. Document your plugin in English](#51-document-your-plugin-in-english) + * [5.2. Include input and output examples](#52-include-input-and-output-examples) + * [5.3. Maintain a changelog](#53-maintain-a-changelog) + * [5.4. Include `postcss-plugin` keyword in `package.json`](#54-include-postcss-plugin-keyword-in-packagejson) ## 1. API From 6b4e5e19c99b4b9c6983c40e5a10ef94fc0c8cf7 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:50:05 +0300 Subject: [PATCH 2568/3047] fix typo --- docs/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index b3c1acada..d58c63802 100644 --- a/docs/index.md +++ b/docs/index.md @@ -75,7 +75,6 @@ * [2.1. Set `from` and `to` processing options](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) * [2.2. Use only the asynchronous API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#22-use-only-the-asynchronous-api) * [2.3. Use only the public PostCSS API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#23-use-only-the-public-postcss-api) - * [Dependencies](https) * [3.1. Rebuild when dependencies change](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#31-rebuild-when-dependencies-change) * [Output](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) From b2871cb363a13f8dda4f5ed31fee76f655a0dbf9 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:52:24 +0300 Subject: [PATCH 2569/3047] fix wrong link --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index d58c63802..08a97f260 100644 --- a/docs/index.md +++ b/docs/index.md @@ -80,7 +80,7 @@ * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) * [4.2. Display `result.warnings()`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#42-display-resultwarnings) * [4.3. Allow the user to write source maps to different files](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#43-allow-the-user-to-write-source-maps-to-different-files) - * [Documentation](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) + * [Documentation](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#5-documentation) * [5.1. Document your runner in English](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#51-document-your-runner-in-english) * [5.2. Maintain a changelog](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#52-maintain-a-changelog) * [5.3. `postcss-runner` keyword in `package.json`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#53-postcss-runner-keyword-in-packagejson) From 770947fd115beef1fa5cdeddd413d07399584a20 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 20:53:34 +0300 Subject: [PATCH 2570/3047] table of contetns for runner.md --- docs/guidelines/runner.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 30abab2a4..624a10823 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -14,6 +14,25 @@ See also [ClojureWerkz’s recommendations] for open source projects. [`gulp‑postcss`]: https://github.com/w0rm/gulp-postcss [`postcss-cli`]: https://github.com/postcss/postcss-cli +**Table of Contents** + +* [PostCSS Runner Guidelines](#postcss-runner-guidelines) + * [API](#1-api) + * [1.1. Accept functions in plugin parameters](#11-accept-functions-in-plugin-parameters) + * [Processing](#21-set-from-and-to-processing-options) + * [2.1. Set `from` and `to` processing options](#21-set-from-and-to-processing-options) + * [2.2. Use only the asynchronous API](#22-use-only-the-asynchronous-api) + * [2.3. Use only the public PostCSS API](#23-use-only-the-public-postcss-api) + * [3.1. Rebuild when dependencies change](#31-rebuild-when-dependencies-change) + * [Output](#4-output) + * [4.1. Don’t show JS stack for `CssSyntaxError`](#41-dont-show-js-stack-for-csssyntaxerror) + * [4.2. Display `result.warnings()`](#42-display-resultwarnings) + * [4.3. Allow the user to write source maps to different files](#43-allow-the-user-to-write-source-maps-to-different-files) + * [Documentation](#5-output) + * [5.1. Document your runner in English](#51-document-your-runner-in-english) + * [5.2. Maintain a changelog](#52-maintain-a-changelog) + * [5.3. `postcss-runner` keyword in `package.json`](#53-postcss-runner-keyword-in-packagejson) + * [5.4. Keep postcss to peerDependencies](#54-keep-postcss-to-peerdependencies) ## 1. API From 9798c7340d69b86e770ee905e8e143fac266a6d1 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:15:20 +0300 Subject: [PATCH 2571/3047] delete root link --- docs/architecture.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index 9b124b4f5..0f6a6f561 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -4,8 +4,6 @@ General overview of the PostCSS architecture. It can be useful for everyone who wishes to contribute to the core or develop a better understanding of the tool. **Table of Contents** - -* [PostCSS Architecture](#postcss-architecture) * [Overview](#overview) * [Workflow](#workflow) * [Core Structures](#core-structures) From aaf5455d677dc6737b68c3b02d4450b9d93fc823 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:17:41 +0300 Subject: [PATCH 2572/3047] delete root link --- docs/plugins.md | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index 28dfb2759..80fcd5ade 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -2,21 +2,20 @@ **Table of Contents** -* [PostCSS Plugins](#postcss-plugins) - * [Control](#control) - * [Packs](#packs) - * [Control](#control) - * [Future CSS Syntax](#future-css-syntax) - * [Fallbacks](#fallbacks) - * [Language Extensions](#language-extensions) - * [Images and Fonts](#images-and-fonts) - * [Grids](#grids) - * [Optimizations](#optimizations) - * [Shortcuts](#shortcuts) - * [Others](#others) - * [Analysis](#analysis) - * [Reporters](#reporters) - * [Fun](#fun) +* [Control](#control) +* [Packs](#packs) +* [Control](#control) +* [Future CSS Syntax](#future-css-syntax) +* [Fallbacks](#fallbacks) +* [Language Extensions](#language-extensions) +* [Images and Fonts](#images-and-fonts) +* [Grids](#grids) +* [Optimizations](#optimizations) +* [Shortcuts](#shortcuts) +* [Others](#others) +* [Analysis](#analysis) +* [Reporters](#reporters) +* [Fun](#fun) ## Control From 8db2a67308554268b73777a089eda821f8bd3c62 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:19:14 +0300 Subject: [PATCH 2573/3047] delete root link --- docs/syntax.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/docs/syntax.md b/docs/syntax.md index 9fdca30f4..d722b4319 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -14,19 +14,18 @@ There are 3 types of PostCSS syntax packages: **Table of Contents** -* [How to Write Custom Syntax](#how-to-write-custom-syntax) - * [Syntax](#syntax) - * [Parser](#parser) - * [Main Theory](#main-theory) - * [Performance](#performance)) - * [Node Source](#node-source) - * [Raw Values](#raw-values) - * [Tests](#tests) - * [Stringifier](#stringifier) - * [Main Theory](#main-theory-1) - * [Builder Function](#builder-function) - * [Raw Values](#raw-values-1) - * [Tests](#tests-1) +* [Syntax](#syntax) +* [Parser](#parser) + * [Main Theory](#main-theory) + * [Performance](#performance)) + * [Node Source](#node-source) + * [Raw Values](#raw-values) + * [Tests](#tests) +* [Stringifier](#stringifier) + * [Main Theory](#main-theory-1) + * [Builder Function](#builder-function) + * [Raw Values](#raw-values-1) + * [Tests](#tests-1) ## Syntax From d13ebb6109ca5a8b3086b8a9453276375ceb794f Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:19:46 +0300 Subject: [PATCH 2574/3047] delete root link --- docs/writing-a-plugin.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index 8255a7062..c30d05d23 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -1,13 +1,12 @@ # Writing a PostCSS Plugin -* [Writing a PostCSS Plugin](#writing-a-postcss-plugin) - * [Links](#links) - * [Step 1: Create an idea](#step-1-create-an-idea) - * [Step 2: Create a project](#step-2-create-a-project) - * [Step 3: Find nodes](#step-3-find-nodes) - * [Step 4: Change nodes](#step-4-change-nodes) - * [Step 5: Fight with frustration](#step-5-fight-with-frustration) - * [Step 6: Make it public](#step-6-make-it-public) +* [Links](#links) +* [Step 1: Create an idea](#step-1-create-an-idea) +* [Step 2: Create a project](#step-2-create-a-project) +* [Step 3: Find nodes](#step-3-find-nodes) +* [Step 4: Change nodes](#step-4-change-nodes) +* [Step 5: Fight with frustration](#step-5-fight-with-frustration) +* [Step 6: Make it public](#step-6-make-it-public) ## Links From 6813d3954165292ebbb72bb81fc8e618c0774db3 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:21:07 +0300 Subject: [PATCH 2575/3047] delete root link --- docs/guidelines/plugin.md | 45 +++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/docs/guidelines/plugin.md b/docs/guidelines/plugin.md index 167797f1e..1660a02cd 100644 --- a/docs/guidelines/plugin.md +++ b/docs/guidelines/plugin.md @@ -11,29 +11,28 @@ See also [ClojureWerkz’s recommendations] for open source projects. **Table of Contents** -* [PostCSS Plugin Guidelines](#postcss-plugin-guidelines) - * [API](#1-api) - * [1.1 Clear name with `postcss-` prefix](#11-clear-name-with-postcss--prefix) - * [1.2. Do one thing, and do it well](#12-do-one-thing-and-do-it-well) - * [1.3. Do not use mixins](#13-do-not-use-mixins) - * [1.4. Keep `postcss` to `peerDependencies`](#14-keep-postcss-to-peerdependencies) - * [1.5. Set `plugin.postcssPlugin` with plugin name](#15-set-pluginpostcssplugin-with-plugin-name) - * [Processing](#2-processing) - * [2.1. Plugin must be tested](#21-plugin-must-be-tested) - * [2.2. Use asynchronous methods whenever possible](#22-use-asynchronous-methods-whenever-possible) - * [2.3. Use fast node’s scanning](#23-use-fast-nodes-scanning) - * [2.4. Set `node.source` for new nodes](#24-set-nodesource-for-new-nodes) - * [2.5. Use only the public PostCSS API](#25-use-only-the-public-postcss-api) - * [Dependencies](#3-dependencies) - * [3.1. Use messages to specify dependencies](#31-use-messages-to-specify-dependencies) - * [Errors](#4-errors) - * [4.1. Use `node.error` on CSS relevant errors](#41-use-nodeerror-on-css-relevant-errors) - * [4.2. Use `result.warn` for warnings](#42-use-resultwarn-for-warnings) - * [Documentation](#5-documentation) - * [5.1. Document your plugin in English](#51-document-your-plugin-in-english) - * [5.2. Include input and output examples](#52-include-input-and-output-examples) - * [5.3. Maintain a changelog](#53-maintain-a-changelog) - * [5.4. Include `postcss-plugin` keyword in `package.json`](#54-include-postcss-plugin-keyword-in-packagejson) +* [API](#1-api) + * [1.1 Clear name with `postcss-` prefix](#11-clear-name-with-postcss--prefix) + * [1.2. Do one thing, and do it well](#12-do-one-thing-and-do-it-well) + * [1.3. Do not use mixins](#13-do-not-use-mixins) + * [1.4. Keep `postcss` to `peerDependencies`](#14-keep-postcss-to-peerdependencies) + * [1.5. Set `plugin.postcssPlugin` with plugin name](#15-set-pluginpostcssplugin-with-plugin-name) +* [Processing](#2-processing) + * [2.1. Plugin must be tested](#21-plugin-must-be-tested) + * [2.2. Use asynchronous methods whenever possible](#22-use-asynchronous-methods-whenever-possible) + * [2.3. Use fast node’s scanning](#23-use-fast-nodes-scanning) + * [2.4. Set `node.source` for new nodes](#24-set-nodesource-for-new-nodes) + * [2.5. Use only the public PostCSS API](#25-use-only-the-public-postcss-api) +* [Dependencies](#3-dependencies) + * [3.1. Use messages to specify dependencies](#31-use-messages-to-specify-dependencies) +* [Errors](#4-errors) + * [4.1. Use `node.error` on CSS relevant errors](#41-use-nodeerror-on-css-relevant-errors) + * [4.2. Use `result.warn` for warnings](#42-use-resultwarn-for-warnings) +* [Documentation](#5-documentation) + * [5.1. Document your plugin in English](#51-document-your-plugin-in-english) + * [5.2. Include input and output examples](#52-include-input-and-output-examples) + * [5.3. Maintain a changelog](#53-maintain-a-changelog) + * [5.4. Include `postcss-plugin` keyword in `package.json`](#54-include-postcss-plugin-keyword-in-packagejson) ## 1. API From 8366cd5badf858c32a256c4a0bf10268d2fa1023 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:22:34 +0300 Subject: [PATCH 2576/3047] delete root link --- docs/guidelines/runner.md | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/guidelines/runner.md b/docs/guidelines/runner.md index 624a10823..a7cbbd00c 100644 --- a/docs/guidelines/runner.md +++ b/docs/guidelines/runner.md @@ -16,23 +16,22 @@ See also [ClojureWerkz’s recommendations] for open source projects. **Table of Contents** -* [PostCSS Runner Guidelines](#postcss-runner-guidelines) - * [API](#1-api) - * [1.1. Accept functions in plugin parameters](#11-accept-functions-in-plugin-parameters) - * [Processing](#21-set-from-and-to-processing-options) - * [2.1. Set `from` and `to` processing options](#21-set-from-and-to-processing-options) - * [2.2. Use only the asynchronous API](#22-use-only-the-asynchronous-api) - * [2.3. Use only the public PostCSS API](#23-use-only-the-public-postcss-api) - * [3.1. Rebuild when dependencies change](#31-rebuild-when-dependencies-change) - * [Output](#4-output) - * [4.1. Don’t show JS stack for `CssSyntaxError`](#41-dont-show-js-stack-for-csssyntaxerror) - * [4.2. Display `result.warnings()`](#42-display-resultwarnings) - * [4.3. Allow the user to write source maps to different files](#43-allow-the-user-to-write-source-maps-to-different-files) - * [Documentation](#5-output) - * [5.1. Document your runner in English](#51-document-your-runner-in-english) - * [5.2. Maintain a changelog](#52-maintain-a-changelog) - * [5.3. `postcss-runner` keyword in `package.json`](#53-postcss-runner-keyword-in-packagejson) - * [5.4. Keep postcss to peerDependencies](#54-keep-postcss-to-peerdependencies) +* [API](#1-api) + * [1.1. Accept functions in plugin parameters](#11-accept-functions-in-plugin-parameters) +* [Processing](#21-set-from-and-to-processing-options) + * [2.1. Set `from` and `to` processing options](#21-set-from-and-to-processing-options) + * [2.2. Use only the asynchronous API](#22-use-only-the-asynchronous-api) + * [2.3. Use only the public PostCSS API](#23-use-only-the-public-postcss-api) + * [3.1. Rebuild when dependencies change](#31-rebuild-when-dependencies-change) +* [Output](#4-output) + * [4.1. Don’t show JS stack for `CssSyntaxError`](#41-dont-show-js-stack-for-csssyntaxerror) + * [4.2. Display `result.warnings()`](#42-display-resultwarnings) + * [4.3. Allow the user to write source maps to different files](#43-allow-the-user-to-write-source-maps-to-different-files) +* [Documentation](#5-output) + * [5.1. Document your runner in English](#51-document-your-runner-in-english) + * [5.2. Maintain a changelog](#52-maintain-a-changelog) + * [5.3. `postcss-runner` keyword in `package.json`](#53-postcss-runner-keyword-in-packagejson) + * [5.4. Keep postcss to peerDependencies](#54-keep-postcss-to-peerdependencies) ## 1. API From 5b168240b029da35af1b732104a1a1dd131f2572 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:24:50 +0300 Subject: [PATCH 2577/3047] Update docs/index.md Co-authored-by: Andrey Sitnik --- docs/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 08a97f260..1027c061e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,5 @@ -**Index** +# Documentation + * [PostCSS Architecture](https://github.com/postcss/postcss/blob/main/docs/architecture.md#postcss-architecture) * [Overview](https://github.com/postcss/postcss/blob/main/docs/architecture.md#overview) * [Workflow](https://github.com/postcss/postcss/blob/main/docs/architecture.md#workflow) From a1abfa88e15a87874a27f2e4560c550993ffa489 Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:28:07 +0300 Subject: [PATCH 2578/3047] move table of contents --- docs/writing-a-plugin.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index c30d05d23..4f5b3ff84 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -1,5 +1,5 @@ -# Writing a PostCSS Plugin +**Table of Contents** * [Links](#links) * [Step 1: Create an idea](#step-1-create-an-idea) * [Step 2: Create a project](#step-2-create-a-project) @@ -8,6 +8,8 @@ * [Step 5: Fight with frustration](#step-5-fight-with-frustration) * [Step 6: Make it public](#step-6-make-it-public) +# Writing a PostCSS Plugin + ## Links Documentation: From 967d584cf5d7979e578e414eca9aeb67ed6abf4b Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 28 Sep 2022 21:29:58 +0300 Subject: [PATCH 2579/3047] Update docs/writing-a-plugin.md Co-authored-by: Andrey Sitnik --- docs/writing-a-plugin.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index 4f5b3ff84..8e5c9fb24 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -1,5 +1,6 @@ **Table of Contents** + * [Links](#links) * [Step 1: Create an idea](#step-1-create-an-idea) * [Step 2: Create a project](#step-2-create-a-project) From a002d8ed7e09d0953888732b262d365c44b434eb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 28 Sep 2022 20:40:17 +0200 Subject: [PATCH 2580/3047] Update docs --- package.json | 16 +- pnpm-lock.yaml | 488 +++++++++++++++++++++++++------------------------ 2 files changed, 261 insertions(+), 243 deletions(-) diff --git a/package.json b/package.json index a64b5de49..e0bc11962 100755 --- a/package.json +++ b/package.json @@ -81,19 +81,19 @@ }, "devDependencies": { "@logux/eslint-config": "^47.2.0", - "@size-limit/preset-small-lib": "^8.0.1", + "@size-limit/preset-small-lib": "^8.1.0", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.7.14", - "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/parser": "^5.36.1", + "@types/node": "^18.7.23", + "@typescript-eslint/eslint-plugin": "^5.38.1", + "@typescript-eslint/parser": "^5.38.1", "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.23.0", + "eslint": "^8.24.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.2.5", + "eslint-plugin-n": "^15.3.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.0.1", "fs-extra": "^10.1.0", @@ -101,10 +101,10 @@ "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.1", "simple-git-hooks": "^2.8.0", - "size-limit": "^8.0.1", + "size-limit": "^8.1.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.1", - "typescript": "^4.8.2", + "typescript": "^4.8.4", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ea696f97..b65e525c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,19 +2,19 @@ lockfileVersion: 5.4 specifiers: '@logux/eslint-config': ^47.2.0 - '@size-limit/preset-small-lib': ^8.0.1 + '@size-limit/preset-small-lib': ^8.1.0 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.7.14 - '@typescript-eslint/eslint-plugin': ^5.36.1 - '@typescript-eslint/parser': ^5.36.1 + '@types/node': ^18.7.23 + '@typescript-eslint/eslint-plugin': ^5.38.1 + '@typescript-eslint/parser': ^5.38.1 c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.23.0 + eslint: ^8.24.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.2.5 + eslint-plugin-n: ^15.3.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.1 fs-extra: ^10.1.0 @@ -24,11 +24,11 @@ specifiers: picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 simple-git-hooks: ^2.8.0 - size-limit: ^8.0.1 + size-limit: ^8.1.0 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.9.1 - typescript: ^4.8.2 + typescript: ^4.8.4 uvu: ^0.5.6 dependencies: @@ -37,31 +37,31 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_c5zrp42zbc5s4i6yiprz55kwaq - '@size-limit/preset-small-lib': 8.0.1_size-limit@8.0.1 + '@logux/eslint-config': 47.2.0_nzsxh47tssh6cfdl7hgsupz66q + '@size-limit/preset-small-lib': 8.1.0_size-limit@8.1.0 '@types/fs-extra': 9.0.13 - '@types/node': 18.7.14 - '@typescript-eslint/eslint-plugin': 5.36.1_lbwfnm54o3pmr3ypeqp3btnera - '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@types/node': 18.7.23 + '@typescript-eslint/eslint-plugin': 5.38.1_c7qepppml3d4ahu5cnfwqe6ltq + '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa c8: 7.12.0 - check-dts: 0.6.7_typescript@4.8.2 + check-dts: 0.6.7_typescript@4.8.4 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.23.0 - eslint-config-standard: 17.0.0_ci7jzfiysajw25w4iodapaa2cq - eslint-plugin-import: 2.26.0_wyxuyzvlfep3lsyoibc4fosfq4 - eslint-plugin-n: 15.2.5_eslint@8.23.0 + eslint: 8.24.0 + eslint-config-standard: 17.0.0_4ybqc3giaxsbo5btq74wfmkary + eslint-plugin-import: 2.26.0_gofx6msuqd4luqedfouzks2s4u + eslint-plugin-n: 15.3.0_eslint@8.24.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.1_eslint@8.23.0 + eslint-plugin-promise: 6.0.1_eslint@8.24.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.1 simple-git-hooks: 2.8.0 - size-limit: 8.0.1 + size-limit: 8.1.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_tphhiizkxv2hzwkunblc3hbmra - typescript: 4.8.2 + ts-node: 10.9.1_gbhfbbeqrol7fxixnzbkbuanxe + typescript: 4.8.4 uvu: 0.5.6 packages: @@ -77,8 +77,17 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/linux-loong64/0.15.6: - resolution: {integrity: sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw==} + /@esbuild/android-arm/0.15.9: + resolution: {integrity: sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.15.9: + resolution: {integrity: sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -86,8 +95,8 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.1: - resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} + /@eslint/eslintrc/1.3.2: + resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -103,8 +112,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.10.4: - resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} + /@humanwhocodes/config-array/0.10.5: + resolution: {integrity: sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -155,7 +164,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_c5zrp42zbc5s4i6yiprz55kwaq: + /@logux/eslint-config/47.2.0_nzsxh47tssh6cfdl7hgsupz66q: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -166,12 +175,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.23.0 - eslint-config-standard: 17.0.0_ci7jzfiysajw25w4iodapaa2cq - eslint-plugin-import: 2.26.0_wyxuyzvlfep3lsyoibc4fosfq4 - eslint-plugin-n: 15.2.5_eslint@8.23.0 + eslint: 8.24.0 + eslint-config-standard: 17.0.0_4ybqc3giaxsbo5btq74wfmkary + eslint-plugin-import: 2.26.0_gofx6msuqd4luqedfouzks2s4u + eslint-plugin-n: 15.3.0_eslint@8.24.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.1_eslint@8.23.0 + eslint-plugin-promise: 6.0.1_eslint@8.24.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -195,35 +204,35 @@ packages: fastq: 1.13.0 dev: true - /@size-limit/esbuild/8.0.1_size-limit@8.0.1: - resolution: {integrity: sha512-EnfRweoQc4P91G45sPfzAWMVPibK5SEV6sUWC46DcGlT9xrYeCQYtInbsny1/lSorC/sfJKN84aGm4A+q6SgOw==} + /@size-limit/esbuild/8.1.0_size-limit@8.1.0: + resolution: {integrity: sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} peerDependencies: - size-limit: 8.0.1 + size-limit: 8.1.0 dependencies: - esbuild: 0.15.6 + esbuild: 0.15.9 nanoid: 3.3.4 - size-limit: 8.0.1 + size-limit: 8.1.0 dev: true - /@size-limit/file/8.0.1_size-limit@8.0.1: - resolution: {integrity: sha512-kwgc5UJQIz5qbRow3atSiW2K7vEIIw4DelT4WLn09cOwcJgWs82Imgz2UqVivHJmCisn/ltPjT4qmxaDfjFflw==} + /@size-limit/file/8.1.0_size-limit@8.1.0: + resolution: {integrity: sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} peerDependencies: - size-limit: 8.0.1 + size-limit: 8.1.0 dependencies: semver: 7.3.7 - size-limit: 8.0.1 + size-limit: 8.1.0 dev: true - /@size-limit/preset-small-lib/8.0.1_size-limit@8.0.1: - resolution: {integrity: sha512-EV+UXGZJU9kiT8R4N9dxjRAJ37tzjuP+e2DfpRtv7cx1ErFiB6k//wEhw9nLmJMWWhfvcVEvJYyKm3+i0pbWUQ==} + /@size-limit/preset-small-lib/8.1.0_size-limit@8.1.0: + resolution: {integrity: sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==} peerDependencies: - size-limit: 8.0.1 + size-limit: 8.1.0 dependencies: - '@size-limit/esbuild': 8.0.1_size-limit@8.0.1 - '@size-limit/file': 8.0.1_size-limit@8.0.1 - size-limit: 8.0.1 + '@size-limit/esbuild': 8.1.0_size-limit@8.1.0 + '@size-limit/file': 8.1.0_size-limit@8.1.0 + size-limit: 8.1.0 dev: true /@tsconfig/node10/1.0.9: @@ -245,7 +254,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.7.14 + '@types/node': 18.7.23 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -260,16 +269,16 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.7.14: - resolution: {integrity: sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==} + /@types/node/18.7.23: + resolution: {integrity: sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.36.1_lbwfnm54o3pmr3ypeqp3btnera: - resolution: {integrity: sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==} + /@typescript-eslint/eslint-plugin/5.38.1_c7qepppml3d4ahu5cnfwqe6ltq: + resolution: {integrity: sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -279,24 +288,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm - '@typescript-eslint/scope-manager': 5.36.1 - '@typescript-eslint/type-utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm - '@typescript-eslint/utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/scope-manager': 5.38.1 + '@typescript-eslint/type-utils': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/utils': 5.38.1_ypn2ylkkyfa5i233caldtndbqa debug: 4.3.4 - eslint: 8.23.0 - functional-red-black-tree: 1.0.1 + eslint: 8.24.0 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.36.1_yqf6kl63nyoq5megxukfnom5rm: - resolution: {integrity: sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==} + /@typescript-eslint/parser/5.38.1_ypn2ylkkyfa5i233caldtndbqa: + resolution: {integrity: sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -305,26 +313,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.36.1 - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 + '@typescript-eslint/scope-manager': 5.38.1 + '@typescript-eslint/types': 5.38.1 + '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.23.0 - typescript: 4.8.2 + eslint: 8.24.0 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.36.1: - resolution: {integrity: sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==} + /@typescript-eslint/scope-manager/5.38.1: + resolution: {integrity: sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/visitor-keys': 5.36.1 + '@typescript-eslint/types': 5.38.1 + '@typescript-eslint/visitor-keys': 5.38.1 dev: true - /@typescript-eslint/type-utils/5.36.1_yqf6kl63nyoq5megxukfnom5rm: - resolution: {integrity: sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==} + /@typescript-eslint/type-utils/5.38.1_ypn2ylkkyfa5i233caldtndbqa: + resolution: {integrity: sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -333,23 +341,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 - '@typescript-eslint/utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.38.1_ypn2ylkkyfa5i233caldtndbqa debug: 4.3.4 - eslint: 8.23.0 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + eslint: 8.24.0 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.36.1: - resolution: {integrity: sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==} + /@typescript-eslint/types/5.38.1: + resolution: {integrity: sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.36.1_typescript@4.8.2: - resolution: {integrity: sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==} + /@typescript-eslint/typescript-estree/5.38.1_typescript@4.8.4: + resolution: {integrity: sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -357,41 +365,41 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/visitor-keys': 5.36.1 + '@typescript-eslint/types': 5.38.1 + '@typescript-eslint/visitor-keys': 5.38.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.36.1_yqf6kl63nyoq5megxukfnom5rm: - resolution: {integrity: sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==} + /@typescript-eslint/utils/5.38.1_ypn2ylkkyfa5i233caldtndbqa: + resolution: {integrity: sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.36.1 - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 - eslint: 8.23.0 + '@typescript-eslint/scope-manager': 5.38.1 + '@typescript-eslint/types': 5.38.1 + '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 + eslint: 8.24.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.24.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.36.1: - resolution: {integrity: sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==} + /@typescript-eslint/visitor-keys/5.38.1: + resolution: {integrity: sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.36.1 + '@typescript-eslint/types': 5.38.1 eslint-visitor-keys: 3.3.0 dev: true @@ -457,8 +465,8 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.1 - get-intrinsic: 1.1.2 + es-abstract: 1.20.3 + get-intrinsic: 1.1.3 is-string: 1.0.7 dev: true @@ -473,7 +481,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.1 + es-abstract: 1.20.3 es-shim-unscopables: 1.0.0 dev: true @@ -534,7 +542,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.2 + get-intrinsic: 1.1.3 dev: true /callsites/3.1.0: @@ -550,17 +558,17 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.8.2: + /check-dts/0.6.7_typescript@4.8.4: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true peerDependencies: typescript: '>=4.0.0' dependencies: - fast-glob: 3.2.11 + fast-glob: 3.2.12 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.8.2 + typescript: 4.8.4 vfile-location: 4.0.1 dev: true @@ -589,7 +597,7 @@ packages: hasBin: true dependencies: cross-spawn: 7.0.3 - fast-glob: 3.2.11 + fast-glob: 3.2.12 lilconfig: 2.0.6 micromatch: 4.0.5 dev: true @@ -614,7 +622,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true /concat-with-sourcemaps/1.1.0: @@ -728,21 +736,21 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.20.1: - resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} + /es-abstract/1.20.3: + resolution: {integrity: sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.1.2 + get-intrinsic: 1.1.3 get-symbol-description: 1.0.0 has: 1.0.3 has-property-descriptors: 1.0.0 has-symbols: 1.0.3 internal-slot: 1.0.3 - is-callable: 1.2.4 + is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 @@ -752,6 +760,7 @@ packages: object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 string.prototype.trimend: 1.0.5 string.prototype.trimstart: 1.0.5 unbox-primitive: 1.0.2 @@ -767,13 +776,13 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - is-callable: 1.2.4 + is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.6: - resolution: {integrity: sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA==} + /esbuild-android-64/0.15.9: + resolution: {integrity: sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -781,8 +790,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.6: - resolution: {integrity: sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw==} + /esbuild-android-arm64/0.15.9: + resolution: {integrity: sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -790,8 +799,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.6: - resolution: {integrity: sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw==} + /esbuild-darwin-64/0.15.9: + resolution: {integrity: sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -799,8 +808,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.6: - resolution: {integrity: sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA==} + /esbuild-darwin-arm64/0.15.9: + resolution: {integrity: sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -808,8 +817,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.6: - resolution: {integrity: sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg==} + /esbuild-freebsd-64/0.15.9: + resolution: {integrity: sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -817,8 +826,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.6: - resolution: {integrity: sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw==} + /esbuild-freebsd-arm64/0.15.9: + resolution: {integrity: sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -826,8 +835,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.6: - resolution: {integrity: sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg==} + /esbuild-linux-32/0.15.9: + resolution: {integrity: sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -835,8 +844,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.6: - resolution: {integrity: sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A==} + /esbuild-linux-64/0.15.9: + resolution: {integrity: sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -844,8 +853,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.6: - resolution: {integrity: sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==} + /esbuild-linux-arm/0.15.9: + resolution: {integrity: sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -853,8 +862,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.6: - resolution: {integrity: sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==} + /esbuild-linux-arm64/0.15.9: + resolution: {integrity: sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -862,8 +871,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.6: - resolution: {integrity: sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw==} + /esbuild-linux-mips64le/0.15.9: + resolution: {integrity: sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -871,8 +880,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.6: - resolution: {integrity: sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw==} + /esbuild-linux-ppc64le/0.15.9: + resolution: {integrity: sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -880,8 +889,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.6: - resolution: {integrity: sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw==} + /esbuild-linux-riscv64/0.15.9: + resolution: {integrity: sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -889,8 +898,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.6: - resolution: {integrity: sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q==} + /esbuild-linux-s390x/0.15.9: + resolution: {integrity: sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -898,8 +907,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.6: - resolution: {integrity: sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA==} + /esbuild-netbsd-64/0.15.9: + resolution: {integrity: sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -907,8 +916,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.6: - resolution: {integrity: sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw==} + /esbuild-openbsd-64/0.15.9: + resolution: {integrity: sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -916,8 +925,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.6: - resolution: {integrity: sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg==} + /esbuild-sunos-64/0.15.9: + resolution: {integrity: sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -925,8 +934,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.6: - resolution: {integrity: sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA==} + /esbuild-windows-32/0.15.9: + resolution: {integrity: sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -934,8 +943,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.6: - resolution: {integrity: sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg==} + /esbuild-windows-64/0.15.9: + resolution: {integrity: sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -943,8 +952,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.6: - resolution: {integrity: sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg==} + /esbuild-windows-arm64/0.15.9: + resolution: {integrity: sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -952,33 +961,34 @@ packages: dev: true optional: true - /esbuild/0.15.6: - resolution: {integrity: sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w==} + /esbuild/0.15.9: + resolution: {integrity: sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/linux-loong64': 0.15.6 - esbuild-android-64: 0.15.6 - esbuild-android-arm64: 0.15.6 - esbuild-darwin-64: 0.15.6 - esbuild-darwin-arm64: 0.15.6 - esbuild-freebsd-64: 0.15.6 - esbuild-freebsd-arm64: 0.15.6 - esbuild-linux-32: 0.15.6 - esbuild-linux-64: 0.15.6 - esbuild-linux-arm: 0.15.6 - esbuild-linux-arm64: 0.15.6 - esbuild-linux-mips64le: 0.15.6 - esbuild-linux-ppc64le: 0.15.6 - esbuild-linux-riscv64: 0.15.6 - esbuild-linux-s390x: 0.15.6 - esbuild-netbsd-64: 0.15.6 - esbuild-openbsd-64: 0.15.6 - esbuild-sunos-64: 0.15.6 - esbuild-windows-32: 0.15.6 - esbuild-windows-64: 0.15.6 - esbuild-windows-arm64: 0.15.6 + '@esbuild/android-arm': 0.15.9 + '@esbuild/linux-loong64': 0.15.9 + esbuild-android-64: 0.15.9 + esbuild-android-arm64: 0.15.9 + esbuild-darwin-64: 0.15.9 + esbuild-darwin-arm64: 0.15.9 + esbuild-freebsd-64: 0.15.9 + esbuild-freebsd-arm64: 0.15.9 + esbuild-linux-32: 0.15.9 + esbuild-linux-64: 0.15.9 + esbuild-linux-arm: 0.15.9 + esbuild-linux-arm64: 0.15.9 + esbuild-linux-mips64le: 0.15.9 + esbuild-linux-ppc64le: 0.15.9 + esbuild-linux-riscv64: 0.15.9 + esbuild-linux-s390x: 0.15.9 + esbuild-netbsd-64: 0.15.9 + esbuild-openbsd-64: 0.15.9 + esbuild-sunos-64: 0.15.9 + esbuild-windows-32: 0.15.9 + esbuild-windows-64: 0.15.9 + esbuild-windows-arm64: 0.15.9 dev: true /escalade/3.1.1: @@ -991,7 +1001,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_ci7jzfiysajw25w4iodapaa2cq: + /eslint-config-standard/17.0.0_4ybqc3giaxsbo5btq74wfmkary: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -999,10 +1009,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.23.0 - eslint-plugin-import: 2.26.0_wyxuyzvlfep3lsyoibc4fosfq4 - eslint-plugin-n: 15.2.5_eslint@8.23.0 - eslint-plugin-promise: 6.0.1_eslint@8.23.0 + eslint: 8.24.0 + eslint-plugin-import: 2.26.0_gofx6msuqd4luqedfouzks2s4u + eslint-plugin-n: 15.3.0_eslint@8.24.0 + eslint-plugin-promise: 6.0.1_eslint@8.24.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1014,7 +1024,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_ykymimdrk6u2mbikrjd7umy4sm: + /eslint-module-utils/2.7.4_k7674c2ukyqtflgonkjv2n7c7y: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -1035,26 +1045,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa debug: 3.2.7 - eslint: 8.23.0 + eslint: 8.24.0 eslint-import-resolver-node: 0.3.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.23.0: + /eslint-plugin-es/4.1.0_eslint@8.24.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.23.0 + eslint: 8.24.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_wyxuyzvlfep3lsyoibc4fosfq4: + /eslint-plugin-import/2.26.0_gofx6msuqd4luqedfouzks2s4u: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1064,14 +1074,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.23.0 + eslint: 8.24.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_ykymimdrk6u2mbikrjd7umy4sm + eslint-module-utils: 2.7.4_k7674c2ukyqtflgonkjv2n7c7y has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -1085,16 +1095,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.2.5_eslint@8.23.0: - resolution: {integrity: sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g==} + /eslint-plugin-n/15.3.0_eslint@8.24.0: + resolution: {integrity: sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.23.0 - eslint-plugin-es: 4.1.0_eslint@8.23.0 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint: 8.24.0 + eslint-plugin-es: 4.1.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.24.0 ignore: 5.2.0 is-core-module: 2.10.0 minimatch: 3.1.2 @@ -1109,13 +1119,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.1_eslint@8.23.0: + /eslint-plugin-promise/6.0.1_eslint@8.24.0: resolution: {integrity: sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.23.0 + eslint: 8.24.0 dev: true /eslint-scope/5.1.1: @@ -1141,13 +1151,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.23.0: + /eslint-utils/3.0.0_eslint@8.24.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.23.0 + eslint: 8.24.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1166,13 +1176,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.23.0: - resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} + /eslint/8.24.0: + resolution: {integrity: sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.1 - '@humanwhocodes/config-array': 0.10.4 + '@eslint/eslintrc': 1.3.2 + '@humanwhocodes/config-array': 0.10.5 '@humanwhocodes/gitignore-to-minimatch': 1.0.2 '@humanwhocodes/module-importer': 1.0.1 ajv: 6.12.6 @@ -1182,7 +1192,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.24.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -1190,7 +1200,6 @@ packages: fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 - functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 globals: 13.17.0 globby: 11.1.0 @@ -1199,6 +1208,7 @@ packages: import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + js-sdsl: 4.1.4 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -1256,8 +1266,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1354,14 +1364,10 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.1 + es-abstract: 1.20.3 functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -1371,8 +1377,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic/1.1.2: - resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} + /get-intrinsic/1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -1384,7 +1390,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.2 + get-intrinsic: 1.1.3 dev: true /glob-parent/5.1.2: @@ -1425,7 +1431,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.11 + fast-glob: 3.2.12 ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 @@ -1451,7 +1457,7 @@ packages: /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.1.2 + get-intrinsic: 1.1.3 dev: true /has-symbols/1.0.3: @@ -1510,7 +1516,7 @@ packages: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.2 + get-intrinsic: 1.1.3 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -1541,8 +1547,8 @@ packages: engines: {node: '>=4'} dev: true - /is-callable/1.2.4: - resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: true @@ -1653,6 +1659,10 @@ packages: istanbul-lib-report: 3.0.0 dev: true + /js-sdsl/4.1.4: + resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} + dev: true + /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1830,7 +1840,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.1 + es-abstract: 1.20.3 dev: true /once/1.4.0: @@ -1998,6 +2008,14 @@ packages: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + is-regex: 1.1.4 + dev: true + /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true @@ -2027,7 +2045,7 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.2 + get-intrinsic: 1.1.3 object-inspect: 1.12.2 dev: true @@ -2041,8 +2059,8 @@ packages: requiresBuild: true dev: true - /size-limit/8.0.1: - resolution: {integrity: sha512-VHrozqkQTYfcv1OlZIRIL0x6f+xhZ3TT+RTXC5AvKn/yA+3PIWERrKWqHMJPD7G/Vi0SuBtWAn3IvCGx2/UB1g==} + /size-limit/8.1.0: + resolution: {integrity: sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==} engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} hasBin: true dependencies: @@ -2085,7 +2103,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.1 + es-abstract: 1.20.3 dev: true /string.prototype.trimstart/1.0.5: @@ -2093,7 +2111,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.1 + es-abstract: 1.20.3 dev: true /strip-ansi/6.0.1: @@ -2145,7 +2163,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_tphhiizkxv2hzwkunblc3hbmra: + /ts-node/10.9.1_gbhfbbeqrol7fxixnzbkbuanxe: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2164,14 +2182,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.7.14 + '@types/node': 18.7.23 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.8.2 + typescript: 4.8.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2189,14 +2207,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.8.2: + /tsutils/3.21.0_typescript@4.8.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.8.2 + typescript: 4.8.4 dev: true /type-check/0.4.0: @@ -2211,8 +2229,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.8.2: - resolution: {integrity: sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==} + /typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2271,7 +2289,7 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.3.4 + vfile: 5.3.5 dev: true /vfile-message/3.1.2: @@ -2281,8 +2299,8 @@ packages: unist-util-stringify-position: 3.0.2 dev: true - /vfile/5.3.4: - resolution: {integrity: sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==} + /vfile/5.3.5: + resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 From b163f0782d384f7ab6fd618268e74bcf8bec341f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 28 Sep 2022 20:40:39 +0200 Subject: [PATCH 2581/3047] Clean up CI --- .github/workflows/test.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f7d2eec25..9083bdd06 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,8 +26,6 @@ jobs: run: pnpm install --frozen-lockfile --ignore-scripts - name: Run tests run: pnpm test - env: - FORCE_COLOR: 2 short: runs-on: ubuntu-latest strategy: @@ -52,8 +50,6 @@ jobs: run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests run: pnpm unit - env: - FORCE_COLOR: 2 old: runs-on: ubuntu-latest strategy: @@ -78,8 +74,6 @@ jobs: run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests run: pnpm unit - env: - FORCE_COLOR: 2 windows: runs-on: windows-latest name: Windows Quick @@ -99,5 +93,3 @@ jobs: run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests run: pnpm unit - env: - FORCE_COLOR: 2 From c047e0abd763ac161d24448c9f7120cceefcec11 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 28 Sep 2022 20:40:54 +0200 Subject: [PATCH 2582/3047] Fix index --- docs/{index.md => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{index.md => README.md} (100%) diff --git a/docs/index.md b/docs/README.md similarity index 100% rename from docs/index.md rename to docs/README.md From 24c1432432173963ea31fec2d56f4d59bf4ac24d Mon Sep 17 00:00:00 2001 From: romainmenke Date: Thu, 29 Sep 2022 08:54:48 +0200 Subject: [PATCH 2583/3047] add test for sorting container.nodes --- test/container.test.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/container.test.ts b/test/container.test.ts index 77817e102..419e06cc3 100755 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -814,4 +814,31 @@ test('allows to clone nodes', () => { is(root2.toString(), 'a { color: black; z-index: 1 } b {}') }) +test('container.nodes can be sorted', () => { + let root = parse('@b; @c; @a;') + let b = root.nodes[0]; + + root.nodes.sort((x, y) => { + return (x as AtRule).name.localeCompare((y as AtRule).name) + }) + + // Sorted nodes are reflected in "toString". + is(root.toString(), ' @a;@b; @c;') + + // Sorted nodes are reflected in "walk". + let result: string[] = []; + root.walkAtRules((atRule) => { + result.push(atRule.name.trim()) + }); + + is(result.join(' '), 'a b c') + + // Sorted nodes have the corect "index". + is(root.index(b), 1) + + // Inserting after a sorted node results in the correct order. + b.after('@d;'); + is(root.toString(), ' @a;@b;@d; @c;') +}) + test.run() From 727843268accce33bbcee21766f8799dbdc2cca0 Mon Sep 17 00:00:00 2001 From: Romain Menke Date: Fri, 30 Sep 2022 08:29:35 +0200 Subject: [PATCH 2584/3047] recalculate the insertion index after normalizing a node --- lib/container.js | 20 ++++++++++---------- test/container.test.ts | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/lib/container.js b/lib/container.js index d18a33845..39fe036f6 100644 --- a/lib/container.js +++ b/lib/container.js @@ -176,16 +176,16 @@ class Container extends Node { } insertBefore(exist, add) { - exist = this.index(exist) - + let existIndex = this.index(exist) let type = exist === 0 ? 'prepend' : false - let nodes = this.normalize(add, this.proxyOf.nodes[exist], type).reverse() - for (let node of nodes) this.proxyOf.nodes.splice(exist, 0, node) + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node) let index for (let id in this.indexes) { index = this.indexes[id] - if (exist <= index) { + if (existIndex <= index) { this.indexes[id] = index + nodes.length } } @@ -196,15 +196,15 @@ class Container extends Node { } insertAfter(exist, add) { - exist = this.index(exist) - - let nodes = this.normalize(add, this.proxyOf.nodes[exist]).reverse() - for (let node of nodes) this.proxyOf.nodes.splice(exist + 1, 0, node) + let existIndex = this.index(exist) + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node) let index for (let id in this.indexes) { index = this.indexes[id] - if (exist < index) { + if (existIndex < index) { this.indexes[id] = index + nodes.length } } diff --git a/test/container.test.ts b/test/container.test.ts index 419e06cc3..52f12ffb8 100755 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -636,6 +636,24 @@ test('insertBefore() receives array', () => { is(a.toString(), 'a{ color: red; width: 1; height: 2; z-index: 1 }') }) +test('insertBefore() receives pre-existing child node - a', () => { + let a = parse('a{ align-items: start; color: red; z-index: 1 }') + let declA = (a.first as Rule).nodes[0]; + let declC = (a.first as Rule).nodes[2]; + declC.before(declA); + + is(a.toString(), 'a{ color: red; align-items: start; z-index: 1 }') +}) + +test('insertBefore() receives pre-existing child node - b', () => { + let a = parse('a{ align-items: start; color: red; z-index: 1 }') + let declA = (a.first as Rule).nodes[0]; + let declC = (a.first as Rule).nodes[2]; + declA.before(declC); + + is(a.toString(), 'a{ z-index: 1; align-items: start; color: red }') +}) + test('insertAfter() inserts child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertAfter(0, { prop: 'c', value: '3' }) @@ -666,6 +684,24 @@ test('insertAfter() receives array', () => { is(a.toString(), 'a{ color: red; width: 1; height: 2; z-index: 1 }') }) +test('insertAfter() receives pre-existing child node - a', () => { + let a = parse('a{ align-items: start; color: red; z-index: 1 }') + let declA = (a.first as Rule).nodes[0]; + let declC = (a.first as Rule).nodes[2]; + declC.after(declA); + + is(a.toString(), 'a{ color: red; z-index: 1; align-items: start }') +}) + +test('insertAfter() receives pre-existing child node - b', () => { + let a = parse('a{ align-items: start; color: red; z-index: 1 }') + let declA = (a.first as Rule).nodes[0]; + let declC = (a.first as Rule).nodes[2]; + declA.after(declC); + + is(a.toString(), 'a{ align-items: start; z-index: 1; color: red }') +}) + test('removeChild() removes by index', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.removeChild(1) From 34c0de4017800e1028943257c3ac50ddff5f68bc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 30 Sep 2022 13:29:00 +0200 Subject: [PATCH 2585/3047] Release 8.4.17 version --- CHANGELOG.md | 4 ++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9623be5c6..2388c3d93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.17 +* Fixed `Node.before()` unexpected behavior (by Romain Menke). +* Added TOC to docs (by Mikhail Dedov). + ## 8.4.16 * Fixed `Root` AST migration. diff --git a/lib/processor.js b/lib/processor.js index cbbf12d78..04dae80f3 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.16' + this.version = '8.4.17' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index e0bc11962..e6b3c31e1 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.16", + "version": "8.4.17", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 5ca86e421d08866e82e0828ec272458d8bcea03d Mon Sep 17 00:00:00 2001 From: Romain Menke <11521496+romainmenke@users.noreply.github.com> Date: Sat, 1 Oct 2022 14:16:49 +0200 Subject: [PATCH 2586/3047] fix typo --- docs/syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/syntax.md b/docs/syntax.md index d722b4319..11f53bf65 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -17,7 +17,7 @@ There are 3 types of PostCSS syntax packages: * [Syntax](#syntax) * [Parser](#parser) * [Main Theory](#main-theory) - * [Performance](#performance)) + * [Performance](#performance) * [Node Source](#node-source) * [Raw Values](#raw-values) * [Tests](#tests) From b8a8ace48d3a1e7db348295b4e41fe3960ab4530 Mon Sep 17 00:00:00 2001 From: misha Date: Sun, 2 Oct 2022 16:39:27 +0300 Subject: [PATCH 2587/3047] Fix wrong repo link --- docs/README.md | 80 +++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/README.md b/docs/README.md index 1027c061e..82084012b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -45,44 +45,44 @@ * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) **Guidlines** -* [PostCSS Plugin Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#postcss-plugin-guidelines) - * [API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#1-api) - * [1.1 Clear name with `postcss-` prefix](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#11-clear-name-with-postcss--prefix) - * [1.2. Do one thing, and do it well](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#12-do-one-thing-and-do-it-well) - * [1.3. Do not use mixins](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#13-do-not-use-mixins) - * [1.4. Keep `postcss` to `peerDependencies`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#14-keep-postcss-to-peerdependencies) - * [1.5. Set `plugin.postcssPlugin` with plugin name](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#15-set-pluginpostcssplugin-with-plugin-name) - * [Processing](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#2-processing) - * [2.1. Plugin must be tested](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#21-plugin-must-be-tested) - * [2.2. Use asynchronous methods whenever possible](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#22-use-asynchronous-methods-whenever-possible) - * [2.3. Use fast node’s scanning](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#23-use-fast-nodes-scanning) - * [2.4. Set `node.source` for new nodes](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#24-set-nodesource-for-new-nodes) - * [2.5. Use only the public PostCSS API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#25-use-only-the-public-postcss-api) - * [Dependencies](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#3-dependencies) - * [3.1. Use messages to specify dependencies](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#31-use-messages-to-specify-dependencies) - * [Errors](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#4-errors) - * [4.1. Use `node.error` on CSS relevant errors](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#41-use-nodeerror-on-css-relevant-errors) - * [4.2. Use `result.warn` for warnings](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#42-use-resultwarn-for-warnings) - * [Documentation](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#5-documentation) - * [5.1. Document your plugin in English](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#51-document-your-plugin-in-english) - * [5.2. Include input and output examples](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#52-include-input-and-output-examples) - * [5.3. Maintain a changelog](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#53-maintain-a-changelog) - * [5.4. Include `postcss-plugin` keyword in `package.json`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/plugin.md#54-include-postcss-plugin-keyword-in-packagejson) +* [PostCSS Plugin Guidelines](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#postcss-plugin-guidelines) + * [API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#1-api) + * [1.1 Clear name with `postcss-` prefix](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#11-clear-name-with-postcss--prefix) + * [1.2. Do one thing, and do it well](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#12-do-one-thing-and-do-it-well) + * [1.3. Do not use mixins](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#13-do-not-use-mixins) + * [1.4. Keep `postcss` to `peerDependencies`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#14-keep-postcss-to-peerdependencies) + * [1.5. Set `plugin.postcssPlugin` with plugin name](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#15-set-pluginpostcssplugin-with-plugin-name) + * [Processing](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#2-processing) + * [2.1. Plugin must be tested](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#21-plugin-must-be-tested) + * [2.2. Use asynchronous methods whenever possible](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#22-use-asynchronous-methods-whenever-possible) + * [2.3. Use fast node’s scanning](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#23-use-fast-nodes-scanning) + * [2.4. Set `node.source` for new nodes](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#24-set-nodesource-for-new-nodes) + * [2.5. Use only the public PostCSS API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#25-use-only-the-public-postcss-api) + * [Dependencies](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#3-dependencies) + * [3.1. Use messages to specify dependencies](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#31-use-messages-to-specify-dependencies) + * [Errors](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#4-errors) + * [4.1. Use `node.error` on CSS relevant errors](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#41-use-nodeerror-on-css-relevant-errors) + * [4.2. Use `result.warn` for warnings](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#42-use-resultwarn-for-warnings) + * [Documentation](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#5-documentation) + * [5.1. Document your plugin in English](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#51-document-your-plugin-in-english) + * [5.2. Include input and output examples](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#52-include-input-and-output-examples) + * [5.3. Maintain a changelog](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#53-maintain-a-changelog) + * [5.4. Include `postcss-plugin` keyword in `package.json`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#54-include-postcss-plugin-keyword-in-packagejson) -* [PostCSS Runner Guidelines](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#postcss-runner-guidelines) - * [API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#1-api) - * [1.1. Accept functions in plugin parameters](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#11-accept-functions-in-plugin-parameters) - * [Processing](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) - * [2.1. Set `from` and `to` processing options](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) - * [2.2. Use only the asynchronous API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#22-use-only-the-asynchronous-api) - * [2.3. Use only the public PostCSS API](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#23-use-only-the-public-postcss-api) - * [3.1. Rebuild when dependencies change](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#31-rebuild-when-dependencies-change) - * [Output](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) - * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) - * [4.2. Display `result.warnings()`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#42-display-resultwarnings) - * [4.3. Allow the user to write source maps to different files](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#43-allow-the-user-to-write-source-maps-to-different-files) - * [Documentation](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#5-documentation) - * [5.1. Document your runner in English](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#51-document-your-runner-in-english) - * [5.2. Maintain a changelog](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#52-maintain-a-changelog) - * [5.3. `postcss-runner` keyword in `package.json`](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#53-postcss-runner-keyword-in-packagejson) - * [5.4. Keep postcss to peerDependencies](https://github.com/muddv/postcss/blob/docs-index/docs/guidelines/runner.md#54-keep-postcss-to-peerdependencies) +* [PostCSS Runner Guidelines](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#postcss-runner-guidelines) + * [API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#1-api) + * [1.1. Accept functions in plugin parameters](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#11-accept-functions-in-plugin-parameters) + * [Processing](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) + * [2.1. Set `from` and `to` processing options](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) + * [2.2. Use only the asynchronous API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#22-use-only-the-asynchronous-api) + * [2.3. Use only the public PostCSS API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#23-use-only-the-public-postcss-api) + * [3.1. Rebuild when dependencies change](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#31-rebuild-when-dependencies-change) + * [Output](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) + * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) + * [4.2. Display `result.warnings()`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#42-display-resultwarnings) + * [4.3. Allow the user to write source maps to different files](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#43-allow-the-user-to-write-source-maps-to-different-files) + * [Documentation](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#5-documentation) + * [5.1. Document your runner in English](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#51-document-your-runner-in-english) + * [5.2. Maintain a changelog](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#52-maintain-a-changelog) + * [5.3. `postcss-runner` keyword in `package.json`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#53-postcss-runner-keyword-in-packagejson) + * [5.4. Keep postcss to peerDependencies](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#54-keep-postcss-to-peerdependencies) From d58362eea2dec531ae232ad23907806e251afd52 Mon Sep 17 00:00:00 2001 From: misha Date: Sun, 2 Oct 2022 16:47:27 +0300 Subject: [PATCH 2588/3047] Fix wrong repo link --- docs/README.md | 80 +++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/README.md b/docs/README.md index 82084012b..20d1f8c45 100644 --- a/docs/README.md +++ b/docs/README.md @@ -45,44 +45,44 @@ * [Step 6: Make it public](https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md#step-6-make-it-public) **Guidlines** -* [PostCSS Plugin Guidelines](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#postcss-plugin-guidelines) - * [API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#1-api) - * [1.1 Clear name with `postcss-` prefix](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#11-clear-name-with-postcss--prefix) - * [1.2. Do one thing, and do it well](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#12-do-one-thing-and-do-it-well) - * [1.3. Do not use mixins](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#13-do-not-use-mixins) - * [1.4. Keep `postcss` to `peerDependencies`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#14-keep-postcss-to-peerdependencies) - * [1.5. Set `plugin.postcssPlugin` with plugin name](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#15-set-pluginpostcssplugin-with-plugin-name) - * [Processing](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#2-processing) - * [2.1. Plugin must be tested](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#21-plugin-must-be-tested) - * [2.2. Use asynchronous methods whenever possible](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#22-use-asynchronous-methods-whenever-possible) - * [2.3. Use fast node’s scanning](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#23-use-fast-nodes-scanning) - * [2.4. Set `node.source` for new nodes](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#24-set-nodesource-for-new-nodes) - * [2.5. Use only the public PostCSS API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#25-use-only-the-public-postcss-api) - * [Dependencies](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#3-dependencies) - * [3.1. Use messages to specify dependencies](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#31-use-messages-to-specify-dependencies) - * [Errors](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#4-errors) - * [4.1. Use `node.error` on CSS relevant errors](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#41-use-nodeerror-on-css-relevant-errors) - * [4.2. Use `result.warn` for warnings](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#42-use-resultwarn-for-warnings) - * [Documentation](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#5-documentation) - * [5.1. Document your plugin in English](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#51-document-your-plugin-in-english) - * [5.2. Include input and output examples](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#52-include-input-and-output-examples) - * [5.3. Maintain a changelog](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#53-maintain-a-changelog) - * [5.4. Include `postcss-plugin` keyword in `package.json`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/plugin.md#54-include-postcss-plugin-keyword-in-packagejson) +* [PostCSS Plugin Guidelines](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#postcss-plugin-guidelines) + * [API](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#1-api) + * [1.1 Clear name with `postcss-` prefix](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#11-clear-name-with-postcss--prefix) + * [1.2. Do one thing, and do it well](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#12-do-one-thing-and-do-it-well) + * [1.3. Do not use mixins](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#13-do-not-use-mixins) + * [1.4. Keep `postcss` to `peerDependencies`](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#14-keep-postcss-to-peerdependencies) + * [1.5. Set `plugin.postcssPlugin` with plugin name](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#15-set-pluginpostcssplugin-with-plugin-name) + * [Processing](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#2-processing) + * [2.1. Plugin must be tested](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#21-plugin-must-be-tested) + * [2.2. Use asynchronous methods whenever possible](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#22-use-asynchronous-methods-whenever-possible) + * [2.3. Use fast node’s scanning](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#23-use-fast-nodes-scanning) + * [2.4. Set `node.source` for new nodes](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#24-set-nodesource-for-new-nodes) + * [2.5. Use only the public PostCSS API](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#25-use-only-the-public-postcss-api) + * [Dependencies](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#3-dependencies) + * [3.1. Use messages to specify dependencies](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#31-use-messages-to-specify-dependencies) + * [Errors](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#4-errors) + * [4.1. Use `node.error` on CSS relevant errors](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#41-use-nodeerror-on-css-relevant-errors) + * [4.2. Use `result.warn` for warnings](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#42-use-resultwarn-for-warnings) + * [Documentation](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#5-documentation) + * [5.1. Document your plugin in English](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#51-document-your-plugin-in-english) + * [5.2. Include input and output examples](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#52-include-input-and-output-examples) + * [5.3. Maintain a changelog](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#53-maintain-a-changelog) + * [5.4. Include `postcss-plugin` keyword in `package.json`](https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#54-include-postcss-plugin-keyword-in-packagejson) -* [PostCSS Runner Guidelines](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#postcss-runner-guidelines) - * [API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#1-api) - * [1.1. Accept functions in plugin parameters](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#11-accept-functions-in-plugin-parameters) - * [Processing](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) - * [2.1. Set `from` and `to` processing options](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#21-set-from-and-to-processing-options) - * [2.2. Use only the asynchronous API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#22-use-only-the-asynchronous-api) - * [2.3. Use only the public PostCSS API](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#23-use-only-the-public-postcss-api) - * [3.1. Rebuild when dependencies change](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#31-rebuild-when-dependencies-change) - * [Output](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#4-output) - * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) - * [4.2. Display `result.warnings()`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#42-display-resultwarnings) - * [4.3. Allow the user to write source maps to different files](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#43-allow-the-user-to-write-source-maps-to-different-files) - * [Documentation](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#5-documentation) - * [5.1. Document your runner in English](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#51-document-your-runner-in-english) - * [5.2. Maintain a changelog](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#52-maintain-a-changelog) - * [5.3. `postcss-runner` keyword in `package.json`](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#53-postcss-runner-keyword-in-packagejson) - * [5.4. Keep postcss to peerDependencies](https://github.com/postcss/postcss/blob/docs-index/docs/guidelines/runner.md#54-keep-postcss-to-peerdependencies) +* [PostCSS Runner Guidelines](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#postcss-runner-guidelines) + * [API](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#1-api) + * [1.1. Accept functions in plugin parameters](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#11-accept-functions-in-plugin-parameters) + * [Processing](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#21-set-from-and-to-processing-options) + * [2.1. Set `from` and `to` processing options](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#21-set-from-and-to-processing-options) + * [2.2. Use only the asynchronous API](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#22-use-only-the-asynchronous-api) + * [2.3. Use only the public PostCSS API](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#23-use-only-the-public-postcss-api) + * [3.1. Rebuild when dependencies change](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#31-rebuild-when-dependencies-change) + * [Output](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#4-output) + * [4.1. Don’t show JS stack for `CssSyntaxError`](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#41-dont-show-js-stack-for-csssyntaxerror) + * [4.2. Display `result.warnings()`](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#42-display-resultwarnings) + * [4.3. Allow the user to write source maps to different files](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#43-allow-the-user-to-write-source-maps-to-different-files) + * [Documentation](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#5-documentation) + * [5.1. Document your runner in English](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#51-document-your-runner-in-english) + * [5.2. Maintain a changelog](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#52-maintain-a-changelog) + * [5.3. `postcss-runner` keyword in `package.json`](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#53-postcss-runner-keyword-in-packagejson) + * [5.4. Keep postcss to peerDependencies](https://github.com/postcss/postcss/blob/main/docs/guidelines/runner.md#54-keep-postcss-to-peerdependencies) From 436ea47a18441d1bcb5732fac1d8c77df2e1f38c Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 5 Oct 2022 23:13:19 +0300 Subject: [PATCH 2589/3047] Move title --- docs/writing-a-plugin.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index 8e5c9fb24..c8dc5c9b4 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -1,3 +1,4 @@ +# Writing a PostCSS Plugin **Table of Contents** From 5c81bc8c5128c5a2314697a5e7ff918de7cd0c9e Mon Sep 17 00:00:00 2001 From: muddv Date: Wed, 5 Oct 2022 23:32:23 +0300 Subject: [PATCH 2590/3047] Delete duplicate title --- docs/writing-a-plugin.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/writing-a-plugin.md b/docs/writing-a-plugin.md index c8dc5c9b4..4487afbd6 100644 --- a/docs/writing-a-plugin.md +++ b/docs/writing-a-plugin.md @@ -10,8 +10,6 @@ * [Step 5: Fight with frustration](#step-5-fight-with-frustration) * [Step 6: Make it public](#step-6-make-it-public) -# Writing a PostCSS Plugin - ## Links Documentation: From 567b976c6ddc05a6914c4dab110bcc727135815b Mon Sep 17 00:00:00 2001 From: muddv Date: Sat, 8 Oct 2022 22:49:52 +0300 Subject: [PATCH 2591/3047] Change title --- docs/architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture.md b/docs/architecture.md index 0f6a6f561..486933f14 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,4 +1,4 @@ -## PostCSS Architecture +# PostCSS Architecture General overview of the PostCSS architecture. It can be useful for everyone who wishes to contribute to the core or develop a better understanding of the tool. From 3dac15c6bf5aae7abe5ef43ee3e427c1278203fe Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Wed, 12 Oct 2022 08:59:50 +0200 Subject: [PATCH 2592/3047] absolute sourcemaps have source content --- lib/map-generator.js | 15 +- package-lock.json | 6584 ++++++++++++++++++++++++++++++++++++++++++ test/map.test.ts | 11 + 3 files changed, 6606 insertions(+), 4 deletions(-) create mode 100644 package-lock.json diff --git a/lib/map-generator.js b/lib/map-generator.js index 49d638aac..d8cec37c0 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -97,10 +97,17 @@ class MapGenerator { let from = node.source.input.from if (from && !already[from]) { already[from] = true - this.map.setSourceContent( - this.toUrl(this.path(from)), - node.source.input.css - ) + let fromUrl = this.toUrl(this.path(from)) + if (this.mapOpts.absolute) { + if (pathToFileURL) { + fromUrl = pathToFileURL(from).toString() + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + this.map.setSourceContent(fromUrl, node.source.input.css) } } }) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..773429dd9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6584 @@ +{ + "name": "postcss", + "version": "8.4.17", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "postcss", + "version": "8.4.17", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "devDependencies": { + "@logux/eslint-config": "^47.2.0", + "@size-limit/preset-small-lib": "^8.1.0", + "@types/fs-extra": "^9.0.13", + "@types/node": "^18.7.23", + "@typescript-eslint/eslint-plugin": "^5.38.1", + "@typescript-eslint/parser": "^5.38.1", + "c8": "^7.12.0", + "check-dts": "^0.6.7", + "clean-publish": "^4.0.1", + "concat-with-sourcemaps": "^1.1.0", + "eslint": "^8.24.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.3.0", + "eslint-plugin-prefer-let": "^3.0.1", + "eslint-plugin-promise": "^6.0.1", + "fs-extra": "^10.1.0", + "nanodelay": "^1.0.8", + "nanospy": "^0.5.0", + "postcss-parser-tests": "^8.5.1", + "simple-git-hooks": "^2.8.0", + "size-limit": "^8.1.0", + "strip-ansi": "^6.0.1", + "ts-node": "^10.9.1", + "typescript": "^4.8.4", + "uvu": "^0.5.6" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", + "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", + "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@logux/eslint-config": { + "version": "47.2.0", + "resolved": "https://registry.npmjs.org/@logux/eslint-config/-/eslint-config-47.2.0.tgz", + "integrity": "sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "eslint": "^8.14.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.1.0", + "eslint-plugin-prefer-let": "^3.0.1", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@size-limit/esbuild": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-8.1.0.tgz", + "integrity": "sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.7", + "nanoid": "^3.3.4" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "size-limit": "8.1.0" + } + }, + "node_modules/@size-limit/file": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-8.1.0.tgz", + "integrity": "sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==", + "dev": true, + "dependencies": { + "semver": "7.3.7" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "size-limit": "8.1.0" + } + }, + "node_modules/@size-limit/preset-small-lib": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-8.1.0.tgz", + "integrity": "sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==", + "dev": true, + "dependencies": { + "@size-limit/esbuild": "8.1.0", + "@size-limit/file": "8.1.0" + }, + "peerDependencies": { + "size-limit": "8.1.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.8.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", + "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.0.tgz", + "integrity": "sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.40.0", + "@typescript-eslint/type-utils": "5.40.0", + "@typescript-eslint/utils": "5.40.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.0.tgz", + "integrity": "sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.40.0", + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/typescript-estree": "5.40.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.0.tgz", + "integrity": "sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/visitor-keys": "5.40.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.0.tgz", + "integrity": "sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.40.0", + "@typescript-eslint/utils": "5.40.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.0.tgz", + "integrity": "sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.0.tgz", + "integrity": "sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/visitor-keys": "5.40.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.0.tgz", + "integrity": "sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.40.0", + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/typescript-estree": "5.40.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.0.tgz", + "integrity": "sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.40.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-dts": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.6.7.tgz", + "integrity": "sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0", + "vfile-location": "^4.0.1" + }, + "bin": { + "check-dts": "bin.js" + }, + "engines": { + "node": ">=12.16.0" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", + "dev": true + }, + "node_modules/clean-publish": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clean-publish/-/clean-publish-4.0.1.tgz", + "integrity": "sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.2.11", + "lilconfig": "^2.0.5", + "micromatch": "^4.0.5" + }, + "bin": { + "clean-publish": "clean-publish.js", + "clear-package-json": "clear-package-json.js" + }, + "engines": { + "node": ">= 16.0.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", + "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.10", + "@esbuild/linux-loong64": "0.15.10", + "esbuild-android-64": "0.15.10", + "esbuild-android-arm64": "0.15.10", + "esbuild-darwin-64": "0.15.10", + "esbuild-darwin-arm64": "0.15.10", + "esbuild-freebsd-64": "0.15.10", + "esbuild-freebsd-arm64": "0.15.10", + "esbuild-linux-32": "0.15.10", + "esbuild-linux-64": "0.15.10", + "esbuild-linux-arm": "0.15.10", + "esbuild-linux-arm64": "0.15.10", + "esbuild-linux-mips64le": "0.15.10", + "esbuild-linux-ppc64le": "0.15.10", + "esbuild-linux-riscv64": "0.15.10", + "esbuild-linux-s390x": "0.15.10", + "esbuild-netbsd-64": "0.15.10", + "esbuild-openbsd-64": "0.15.10", + "esbuild-sunos-64": "0.15.10", + "esbuild-windows-32": "0.15.10", + "esbuild-windows-64": "0.15.10", + "esbuild-windows-arm64": "0.15.10" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", + "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", + "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", + "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", + "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", + "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", + "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", + "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", + "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", + "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", + "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", + "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", + "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", + "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", + "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", + "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", + "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", + "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", + "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", + "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", + "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", + "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", + "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-plugin-n": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.3.0.tgz", + "integrity": "sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.10.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prefer-let": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-3.0.1.tgz", + "integrity": "sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w==", + "dev": true, + "dependencies": { + "requireindex": "~1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", + "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanodelay": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/nanodelay/-/nanodelay-1.0.8.tgz", + "integrity": "sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanospinner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", + "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0" + } + }, + "node_modules/nanospy": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/nanospy/-/nanospy-0.5.0.tgz", + "integrity": "sha512-QxH93ntkjRiSP+gJrBLcgOO3neU6pGhUKjPAJ7rAFag/+tJ+/0lw6dXic+iXUQ/3Cxk4Dp/FwLnf57xnQsjecQ==", + "dev": true, + "engines": { + "node": "^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-parser-tests": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss-parser-tests/-/postcss-parser-tests-8.5.1.tgz", + "integrity": "sha512-gENBfgBSdVl3Bu+6iCcgGb1W0YrCizwBgrbnG8UW9AyB46dHuUxqG92Q8Ug5XkesXdpSoRahdNvSKwhipbNV1g==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-git-hooks": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.8.0.tgz", + "integrity": "sha512-ocmZQORwa6x9mxg+gVIAp5o4wXiWOHGXyrDBA0+UxGKIEKOyFtL4LWNKkP/2ornQPdlnlDGDteVeYP5FjhIoWA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "simple-git-hooks": "cli.js" + } + }, + "node_modules/size-limit": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-8.1.0.tgz", + "integrity": "sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==", + "dev": true, + "dependencies": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "ci-job-number": "^1.2.2", + "globby": "^11.1.0", + "lilconfig": "^2.0.6", + "mkdirp": "^1.0.4", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0" + }, + "bin": { + "size-limit": "bin.js" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", + "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/vfile": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.5.tgz", + "integrity": "sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", + "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@esbuild/android-arm": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", + "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", + "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@logux/eslint-config": { + "version": "47.2.0", + "resolved": "https://registry.npmjs.org/@logux/eslint-config/-/eslint-config-47.2.0.tgz", + "integrity": "sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==", + "dev": true, + "requires": {} + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@size-limit/esbuild": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-8.1.0.tgz", + "integrity": "sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==", + "dev": true, + "requires": { + "esbuild": "^0.15.7", + "nanoid": "^3.3.4" + } + }, + "@size-limit/file": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-8.1.0.tgz", + "integrity": "sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==", + "dev": true, + "requires": { + "semver": "7.3.7" + } + }, + "@size-limit/preset-small-lib": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-8.1.0.tgz", + "integrity": "sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==", + "dev": true, + "requires": { + "@size-limit/esbuild": "8.1.0", + "@size-limit/file": "8.1.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "18.8.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", + "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", + "dev": true + }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.0.tgz", + "integrity": "sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.40.0", + "@typescript-eslint/type-utils": "5.40.0", + "@typescript-eslint/utils": "5.40.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.0.tgz", + "integrity": "sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.40.0", + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/typescript-estree": "5.40.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.0.tgz", + "integrity": "sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/visitor-keys": "5.40.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.0.tgz", + "integrity": "sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.40.0", + "@typescript-eslint/utils": "5.40.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.0.tgz", + "integrity": "sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.0.tgz", + "integrity": "sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/visitor-keys": "5.40.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.0.tgz", + "integrity": "sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.40.0", + "@typescript-eslint/types": "5.40.0", + "@typescript-eslint/typescript-estree": "5.40.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.0.tgz", + "integrity": "sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.40.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", + "dev": true + }, + "c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "check-dts": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.6.7.tgz", + "integrity": "sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==", + "dev": true, + "requires": { + "fast-glob": "^3.2.11", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0", + "vfile-location": "^4.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", + "dev": true + }, + "clean-publish": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clean-publish/-/clean-publish-4.0.1.tgz", + "integrity": "sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.2.11", + "lilconfig": "^2.0.5", + "micromatch": "^4.0.5" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", + "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.10", + "@esbuild/linux-loong64": "0.15.10", + "esbuild-android-64": "0.15.10", + "esbuild-android-arm64": "0.15.10", + "esbuild-darwin-64": "0.15.10", + "esbuild-darwin-arm64": "0.15.10", + "esbuild-freebsd-64": "0.15.10", + "esbuild-freebsd-arm64": "0.15.10", + "esbuild-linux-32": "0.15.10", + "esbuild-linux-64": "0.15.10", + "esbuild-linux-arm": "0.15.10", + "esbuild-linux-arm64": "0.15.10", + "esbuild-linux-mips64le": "0.15.10", + "esbuild-linux-ppc64le": "0.15.10", + "esbuild-linux-riscv64": "0.15.10", + "esbuild-linux-s390x": "0.15.10", + "esbuild-netbsd-64": "0.15.10", + "esbuild-openbsd-64": "0.15.10", + "esbuild-sunos-64": "0.15.10", + "esbuild-windows-32": "0.15.10", + "esbuild-windows-64": "0.15.10", + "esbuild-windows-arm64": "0.15.10" + } + }, + "esbuild-android-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", + "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", + "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", + "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", + "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", + "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", + "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", + "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", + "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", + "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", + "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", + "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", + "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", + "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", + "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", + "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", + "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", + "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", + "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", + "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", + "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", + "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-standard": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", + "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-plugin-n": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.3.0.tgz", + "integrity": "sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==", + "dev": true, + "requires": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.10.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.7" + } + }, + "eslint-plugin-prefer-let": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-3.0.1.tgz", + "integrity": "sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w==", + "dev": true, + "requires": { + "requireindex": "~1.2.0" + } + }, + "eslint-plugin-promise": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", + "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanodelay": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/nanodelay/-/nanodelay-1.0.8.tgz", + "integrity": "sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "nanospinner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", + "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0" + } + }, + "nanospy": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/nanospy/-/nanospy-0.5.0.tgz", + "integrity": "sha512-QxH93ntkjRiSP+gJrBLcgOO3neU6pGhUKjPAJ7rAFag/+tJ+/0lw6dXic+iXUQ/3Cxk4Dp/FwLnf57xnQsjecQ==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss-parser-tests": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss-parser-tests/-/postcss-parser-tests-8.5.1.tgz", + "integrity": "sha512-gENBfgBSdVl3Bu+6iCcgGb1W0YrCizwBgrbnG8UW9AyB46dHuUxqG92Q8Ug5XkesXdpSoRahdNvSKwhipbNV1g==", + "dev": true, + "requires": { + "picocolors": "^1.0.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-git-hooks": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.8.0.tgz", + "integrity": "sha512-ocmZQORwa6x9mxg+gVIAp5o4wXiWOHGXyrDBA0+UxGKIEKOyFtL4LWNKkP/2ornQPdlnlDGDteVeYP5FjhIoWA==", + "dev": true + }, + "size-limit": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-8.1.0.tgz", + "integrity": "sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==", + "dev": true, + "requires": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "ci-job-number": "^1.2.2", + "globby": "^11.1.0", + "lilconfig": "^2.0.6", + "mkdirp": "^1.0.4", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unist-util-stringify-position": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "dependencies": { + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + } + } + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", + "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + } + } + }, + "vfile": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.5.tgz", + "integrity": "sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + } + }, + "vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "vfile-message": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", + "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/test/map.test.ts b/test/map.test.ts index 7fc7ce529..682f19563 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -722,4 +722,15 @@ test('supports previous inline map with empty processor', () => { match((root3.source?.input.origin(1, 0) as any).file, 'a.css') }) +test('absolute sourcemaps have source contents', () => { + let result = postcss([() => {}]).process('a{}', { + from: '/dir/to/a.css', + map: { + inline: false, + absolute: true + } + }) + equal(result.map.toJSON().sourcesContent, ['a{}']) +}) + test.run() From 3d0d2047dbb0782c193d56359de982b96cd6b1ee Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Wed, 12 Oct 2022 09:14:18 +0200 Subject: [PATCH 2593/3047] improve test --- test/map.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/map.test.ts b/test/map.test.ts index 682f19563..91a459031 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -2,6 +2,7 @@ import { SourceMapConsumer, SourceMapGenerator } from 'source-map-js' import { removeSync, outputFileSync } from 'fs-extra' import { is, type, equal, match } from 'uvu/assert' import { join, resolve, parse } from 'path' +import { pathToFileURL } from 'url' import { existsSync } from 'fs' import { test } from 'uvu' @@ -730,6 +731,9 @@ test('absolute sourcemaps have source contents', () => { absolute: true } }) + equal(result.map.toJSON().sources, [ + pathToFileURL('/dir/to/a.css').toString() + ]) equal(result.map.toJSON().sourcesContent, ['a{}']) }) From edfd3e056d24429bca99bb89ff7c7b5972bca20a Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Wed, 12 Oct 2022 09:24:34 +0200 Subject: [PATCH 2594/3047] improvement --- lib/map-generator.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index d8cec37c0..925a9f72c 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -16,6 +16,7 @@ class MapGenerator { this.root = root this.opts = opts this.css = cssString + this.fileUrls = !this.mapOpts.from && this.mapOpts.absolute } isMap() { @@ -98,7 +99,7 @@ class MapGenerator { if (from && !already[from]) { already[from] = true let fromUrl = this.toUrl(this.path(from)) - if (this.mapOpts.absolute) { + if (this.fileUrls) { if (pathToFileURL) { fromUrl = pathToFileURL(from).toString() } else { @@ -242,7 +243,7 @@ class MapGenerator { sourcePath(node) { if (this.mapOpts.from) { return this.toUrl(this.mapOpts.from) - } else if (this.mapOpts.absolute) { + } else if (this.fileUrls) { if (pathToFileURL) { return pathToFileURL(node.source.input.from).toString() } else { From 28be739d565dde45278520f4bc32356533242206 Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Wed, 12 Oct 2022 09:29:25 +0200 Subject: [PATCH 2595/3047] add toFileUrl function --- lib/map-generator.js | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 925a9f72c..58290aa60 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -16,7 +16,7 @@ class MapGenerator { this.root = root this.opts = opts this.css = cssString - this.fileUrls = !this.mapOpts.from && this.mapOpts.absolute + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute } isMap() { @@ -98,16 +98,9 @@ class MapGenerator { let from = node.source.input.from if (from && !already[from]) { already[from] = true - let fromUrl = this.toUrl(this.path(from)) - if (this.fileUrls) { - if (pathToFileURL) { - fromUrl = pathToFileURL(from).toString() - } else { - throw new Error( - '`map.absolute` option is not available in this PostCSS build' - ) - } - } + let fromUrl = this.usesFileUrls + ? this.toFileUrl(from) + : this.toUrl(this.path(from)) this.map.setSourceContent(fromUrl, node.source.input.css) } } @@ -240,17 +233,21 @@ class MapGenerator { return encodeURI(path).replace(/[#?]/g, encodeURIComponent) } + toFileUrl(path) { + if (pathToFileURL) { + return pathToFileURL(path).toString() + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + sourcePath(node) { if (this.mapOpts.from) { return this.toUrl(this.mapOpts.from) - } else if (this.fileUrls) { - if (pathToFileURL) { - return pathToFileURL(node.source.input.from).toString() - } else { - throw new Error( - '`map.absolute` option is not available in this PostCSS build' - ) - } + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from) } else { return this.toUrl(this.path(node.source.input.from)) } From a1c0b8b8c61b8064d0f0d52e8ea76c898eaa274a Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Wed, 12 Oct 2022 09:30:39 +0200 Subject: [PATCH 2596/3047] delete package.lock --- package-lock.json | 6584 --------------------------------------------- 1 file changed, 6584 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 773429dd9..000000000 --- a/package-lock.json +++ /dev/null @@ -1,6584 +0,0 @@ -{ - "name": "postcss", - "version": "8.4.17", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "postcss", - "version": "8.4.17", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "devDependencies": { - "@logux/eslint-config": "^47.2.0", - "@size-limit/preset-small-lib": "^8.1.0", - "@types/fs-extra": "^9.0.13", - "@types/node": "^18.7.23", - "@typescript-eslint/eslint-plugin": "^5.38.1", - "@typescript-eslint/parser": "^5.38.1", - "c8": "^7.12.0", - "check-dts": "^0.6.7", - "clean-publish": "^4.0.1", - "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.24.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.3.0", - "eslint-plugin-prefer-let": "^3.0.1", - "eslint-plugin-promise": "^6.0.1", - "fs-extra": "^10.1.0", - "nanodelay": "^1.0.8", - "nanospy": "^0.5.0", - "postcss-parser-tests": "^8.5.1", - "simple-git-hooks": "^2.8.0", - "size-limit": "^8.1.0", - "strip-ansi": "^6.0.1", - "ts-node": "^10.9.1", - "typescript": "^4.8.4", - "uvu": "^0.5.6" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", - "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", - "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@logux/eslint-config": { - "version": "47.2.0", - "resolved": "https://registry.npmjs.org/@logux/eslint-config/-/eslint-config-47.2.0.tgz", - "integrity": "sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "eslint": "^8.14.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.1.0", - "eslint-plugin-prefer-let": "^3.0.1", - "eslint-plugin-promise": "^6.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@size-limit/esbuild": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-8.1.0.tgz", - "integrity": "sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==", - "dev": true, - "dependencies": { - "esbuild": "^0.15.7", - "nanoid": "^3.3.4" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - }, - "peerDependencies": { - "size-limit": "8.1.0" - } - }, - "node_modules/@size-limit/file": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-8.1.0.tgz", - "integrity": "sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==", - "dev": true, - "dependencies": { - "semver": "7.3.7" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - }, - "peerDependencies": { - "size-limit": "8.1.0" - } - }, - "node_modules/@size-limit/preset-small-lib": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-8.1.0.tgz", - "integrity": "sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==", - "dev": true, - "dependencies": { - "@size-limit/esbuild": "8.1.0", - "@size-limit/file": "8.1.0" - }, - "peerDependencies": { - "size-limit": "8.1.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.8.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", - "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.0.tgz", - "integrity": "sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.40.0", - "@typescript-eslint/type-utils": "5.40.0", - "@typescript-eslint/utils": "5.40.0", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.0.tgz", - "integrity": "sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.40.0", - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/typescript-estree": "5.40.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.0.tgz", - "integrity": "sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/visitor-keys": "5.40.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.0.tgz", - "integrity": "sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.40.0", - "@typescript-eslint/utils": "5.40.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.0.tgz", - "integrity": "sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.0.tgz", - "integrity": "sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/visitor-keys": "5.40.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.0.tgz", - "integrity": "sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.40.0", - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/typescript-estree": "5.40.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.0.tgz", - "integrity": "sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.40.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/bytes-iec": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", - "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/c8": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", - "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" - }, - "bin": { - "c8": "bin/c8.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/check-dts": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.6.7.tgz", - "integrity": "sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "nanospinner": "^1.1.0", - "picocolors": "^1.0.0", - "vfile-location": "^4.0.1" - }, - "bin": { - "check-dts": "bin.js" - }, - "engines": { - "node": ">=12.16.0" - }, - "peerDependencies": { - "typescript": ">=4.0.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ci-job-number": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", - "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", - "dev": true - }, - "node_modules/clean-publish": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clean-publish/-/clean-publish-4.0.1.tgz", - "integrity": "sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.2.11", - "lilconfig": "^2.0.5", - "micromatch": "^4.0.5" - }, - "bin": { - "clean-publish": "clean-publish.js", - "clear-package-json": "clear-package-json.js" - }, - "engines": { - "node": ">= 16.0.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", - "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.10", - "@esbuild/linux-loong64": "0.15.10", - "esbuild-android-64": "0.15.10", - "esbuild-android-arm64": "0.15.10", - "esbuild-darwin-64": "0.15.10", - "esbuild-darwin-arm64": "0.15.10", - "esbuild-freebsd-64": "0.15.10", - "esbuild-freebsd-arm64": "0.15.10", - "esbuild-linux-32": "0.15.10", - "esbuild-linux-64": "0.15.10", - "esbuild-linux-arm": "0.15.10", - "esbuild-linux-arm64": "0.15.10", - "esbuild-linux-mips64le": "0.15.10", - "esbuild-linux-ppc64le": "0.15.10", - "esbuild-linux-riscv64": "0.15.10", - "esbuild-linux-s390x": "0.15.10", - "esbuild-netbsd-64": "0.15.10", - "esbuild-openbsd-64": "0.15.10", - "esbuild-sunos-64": "0.15.10", - "esbuild-windows-32": "0.15.10", - "esbuild-windows-64": "0.15.10", - "esbuild-windows-arm64": "0.15.10" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", - "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", - "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", - "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", - "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", - "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", - "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", - "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", - "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", - "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", - "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", - "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", - "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", - "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", - "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", - "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", - "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", - "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", - "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", - "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", - "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", - "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.10.5", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", - "eslint-plugin-promise": "^6.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/eslint-plugin-n": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.3.0.tgz", - "integrity": "sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.10.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prefer-let": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-3.0.1.tgz", - "integrity": "sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w==", - "dev": true, - "dependencies": { - "requireindex": "~1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", - "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanodelay": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/nanodelay/-/nanodelay-1.0.8.tgz", - "integrity": "sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanospinner": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", - "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0" - } - }, - "node_modules/nanospy": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/nanospy/-/nanospy-0.5.0.tgz", - "integrity": "sha512-QxH93ntkjRiSP+gJrBLcgOO3neU6pGhUKjPAJ7rAFag/+tJ+/0lw6dXic+iXUQ/3Cxk4Dp/FwLnf57xnQsjecQ==", - "dev": true, - "engines": { - "node": "^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss-parser-tests": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss-parser-tests/-/postcss-parser-tests-8.5.1.tgz", - "integrity": "sha512-gENBfgBSdVl3Bu+6iCcgGb1W0YrCizwBgrbnG8UW9AyB46dHuUxqG92Q8Ug5XkesXdpSoRahdNvSKwhipbNV1g==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true, - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-git-hooks": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.8.0.tgz", - "integrity": "sha512-ocmZQORwa6x9mxg+gVIAp5o4wXiWOHGXyrDBA0+UxGKIEKOyFtL4LWNKkP/2ornQPdlnlDGDteVeYP5FjhIoWA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "simple-git-hooks": "cli.js" - } - }, - "node_modules/size-limit": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-8.1.0.tgz", - "integrity": "sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==", - "dev": true, - "dependencies": { - "bytes-iec": "^3.1.1", - "chokidar": "^3.5.3", - "ci-job-number": "^1.2.2", - "globby": "^11.1.0", - "lilconfig": "^2.0.6", - "mkdirp": "^1.0.4", - "nanospinner": "^1.1.0", - "picocolors": "^1.0.0" - }, - "bin": { - "size-limit": "bin.js" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", - "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/vfile": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.5.tgz", - "integrity": "sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@esbuild/android-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.10.tgz", - "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", - "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", - "dev": true, - "optional": true - }, - "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@logux/eslint-config": { - "version": "47.2.0", - "resolved": "https://registry.npmjs.org/@logux/eslint-config/-/eslint-config-47.2.0.tgz", - "integrity": "sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==", - "dev": true, - "requires": {} - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@size-limit/esbuild": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@size-limit/esbuild/-/esbuild-8.1.0.tgz", - "integrity": "sha512-Lq+vJAUO13RXbiNF4bZOB07LmzMURkbV8Z6dhAkhTdAVWYLUn0zjfIe3O6IMwhj9dqJ0WtadhKHJvNQKG+po3w==", - "dev": true, - "requires": { - "esbuild": "^0.15.7", - "nanoid": "^3.3.4" - } - }, - "@size-limit/file": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-8.1.0.tgz", - "integrity": "sha512-Ur+NgJSRHBnbQBrD8X2doxXYdBcVJsMxe2KfWrUmnZ6wYz09YKhQ1iYLqNztjf2yf/JEp00zp1vyhmimUQfUHQ==", - "dev": true, - "requires": { - "semver": "7.3.7" - } - }, - "@size-limit/preset-small-lib": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-8.1.0.tgz", - "integrity": "sha512-fs0XD0+rN4SVKGUwae7VMX1uDqK+oUYNGlPe7E0oKhwAH6ek08iH8qiEm0q9IKDrsCfZ9/d/pqNpg9di3p1SVw==", - "dev": true, - "requires": { - "@size-limit/esbuild": "8.1.0", - "@size-limit/file": "8.1.0" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/node": { - "version": "18.8.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", - "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", - "dev": true - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.0.tgz", - "integrity": "sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.40.0", - "@typescript-eslint/type-utils": "5.40.0", - "@typescript-eslint/utils": "5.40.0", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.0.tgz", - "integrity": "sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.40.0", - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/typescript-estree": "5.40.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.0.tgz", - "integrity": "sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/visitor-keys": "5.40.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.0.tgz", - "integrity": "sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.40.0", - "@typescript-eslint/utils": "5.40.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.0.tgz", - "integrity": "sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.0.tgz", - "integrity": "sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/visitor-keys": "5.40.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.0.tgz", - "integrity": "sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.40.0", - "@typescript-eslint/types": "5.40.0", - "@typescript-eslint/typescript-estree": "5.40.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.0.tgz", - "integrity": "sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.40.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, - "bytes-iec": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", - "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", - "dev": true - }, - "c8": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", - "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "check-dts": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.6.7.tgz", - "integrity": "sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==", - "dev": true, - "requires": { - "fast-glob": "^3.2.11", - "nanospinner": "^1.1.0", - "picocolors": "^1.0.0", - "vfile-location": "^4.0.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "ci-job-number": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", - "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", - "dev": true - }, - "clean-publish": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clean-publish/-/clean-publish-4.0.1.tgz", - "integrity": "sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.2.11", - "lilconfig": "^2.0.5", - "micromatch": "^4.0.5" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "esbuild": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.10.tgz", - "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.15.10", - "@esbuild/linux-loong64": "0.15.10", - "esbuild-android-64": "0.15.10", - "esbuild-android-arm64": "0.15.10", - "esbuild-darwin-64": "0.15.10", - "esbuild-darwin-arm64": "0.15.10", - "esbuild-freebsd-64": "0.15.10", - "esbuild-freebsd-arm64": "0.15.10", - "esbuild-linux-32": "0.15.10", - "esbuild-linux-64": "0.15.10", - "esbuild-linux-arm": "0.15.10", - "esbuild-linux-arm64": "0.15.10", - "esbuild-linux-mips64le": "0.15.10", - "esbuild-linux-ppc64le": "0.15.10", - "esbuild-linux-riscv64": "0.15.10", - "esbuild-linux-s390x": "0.15.10", - "esbuild-netbsd-64": "0.15.10", - "esbuild-openbsd-64": "0.15.10", - "esbuild-sunos-64": "0.15.10", - "esbuild-windows-32": "0.15.10", - "esbuild-windows-64": "0.15.10", - "esbuild-windows-arm64": "0.15.10" - } - }, - "esbuild-android-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", - "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", - "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", - "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", - "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", - "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", - "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", - "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", - "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", - "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", - "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", - "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", - "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", - "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", - "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", - "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", - "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", - "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", - "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", - "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", - "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", - "dev": true, - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", - "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.10.5", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "eslint-plugin-n": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.3.0.tgz", - "integrity": "sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==", - "dev": true, - "requires": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.10.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.7" - } - }, - "eslint-plugin-prefer-let": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-3.0.1.tgz", - "integrity": "sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w==", - "dev": true, - "requires": { - "requireindex": "~1.2.0" - } - }, - "eslint-plugin-promise": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", - "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", - "dev": true, - "requires": {} - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanodelay": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/nanodelay/-/nanodelay-1.0.8.tgz", - "integrity": "sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "nanospinner": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", - "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", - "dev": true, - "requires": { - "picocolors": "^1.0.0" - } - }, - "nanospy": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/nanospy/-/nanospy-0.5.0.tgz", - "integrity": "sha512-QxH93ntkjRiSP+gJrBLcgOO3neU6pGhUKjPAJ7rAFag/+tJ+/0lw6dXic+iXUQ/3Cxk4Dp/FwLnf57xnQsjecQ==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "postcss-parser-tests": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss-parser-tests/-/postcss-parser-tests-8.5.1.tgz", - "integrity": "sha512-gENBfgBSdVl3Bu+6iCcgGb1W0YrCizwBgrbnG8UW9AyB46dHuUxqG92Q8Ug5XkesXdpSoRahdNvSKwhipbNV1g==", - "dev": true, - "requires": { - "picocolors": "^1.0.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "requires": { - "mri": "^1.1.0" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-git-hooks": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.8.0.tgz", - "integrity": "sha512-ocmZQORwa6x9mxg+gVIAp5o4wXiWOHGXyrDBA0+UxGKIEKOyFtL4LWNKkP/2ornQPdlnlDGDteVeYP5FjhIoWA==", - "dev": true - }, - "size-limit": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-8.1.0.tgz", - "integrity": "sha512-bUL+Uyyt/G+a1XzKlI2WKHVDepmXtqMDhF65pdtjccheiQTNjExWW4nFefgbRL2QgNTzRfK6ayFKjO3o4ER4gg==", - "dev": true, - "requires": { - "bytes-iec": "^3.1.1", - "chokidar": "^3.5.3", - "ci-job-number": "^1.2.2", - "globby": "^11.1.0", - "lilconfig": "^2.0.6", - "mkdirp": "^1.0.4", - "nanospinner": "^1.1.0", - "picocolors": "^1.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "requires": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "dependencies": { - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - } - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", - "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - } - } - }, - "vfile": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.5.tgz", - "integrity": "sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} From 75d6556ad0015c4cdf2258dcb2b50b1f56d36b26 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 12 Oct 2022 21:27:15 +0200 Subject: [PATCH 2597/3047] Update dependencies --- package.json | 8 +- pnpm-lock.yaml | 396 ++++++++++++++++++++++++------------------------- 2 files changed, 201 insertions(+), 203 deletions(-) diff --git a/package.json b/package.json index e6b3c31e1..2f1e8f7b6 100755 --- a/package.json +++ b/package.json @@ -83,14 +83,14 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^8.1.0", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.7.23", - "@typescript-eslint/eslint-plugin": "^5.38.1", - "@typescript-eslint/parser": "^5.38.1", + "@types/node": "^18.8.4", + "@typescript-eslint/eslint-plugin": "^5.40.0", + "@typescript-eslint/parser": "^5.40.0", "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.24.0", + "eslint": "^8.25.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b65e525c0..bce3560b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,14 @@ specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^8.1.0 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.7.23 - '@typescript-eslint/eslint-plugin': ^5.38.1 - '@typescript-eslint/parser': ^5.38.1 + '@types/node': ^18.8.4 + '@typescript-eslint/eslint-plugin': ^5.40.0 + '@typescript-eslint/parser': ^5.40.0 c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.24.0 + eslint: ^8.25.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.3.0 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_nzsxh47tssh6cfdl7hgsupz66q + '@logux/eslint-config': 47.2.0_msmyq3vlttzwmayw4cvaauou3m '@size-limit/preset-small-lib': 8.1.0_size-limit@8.1.0 '@types/fs-extra': 9.0.13 - '@types/node': 18.7.23 - '@typescript-eslint/eslint-plugin': 5.38.1_c7qepppml3d4ahu5cnfwqe6ltq - '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@types/node': 18.8.4 + '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q c8: 7.12.0 check-dts: 0.6.7_typescript@4.8.4 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.24.0 - eslint-config-standard: 17.0.0_4ybqc3giaxsbo5btq74wfmkary - eslint-plugin-import: 2.26.0_gofx6msuqd4luqedfouzks2s4u - eslint-plugin-n: 15.3.0_eslint@8.24.0 + eslint: 8.25.0 + eslint-config-standard: 17.0.0_a432y4gghichzqs5hexeiieuzm + eslint-plugin-import: 2.26.0_zb5prbqp7qzcgafjm73dfpyyvm + eslint-plugin-n: 15.3.0_eslint@8.25.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.1_eslint@8.24.0 + eslint-plugin-promise: 6.0.1_eslint@8.25.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.8.0 size-limit: 8.1.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_gbhfbbeqrol7fxixnzbkbuanxe + ts-node: 10.9.1_xkk4lltwku4cysulzbqoieownu typescript: 4.8.4 uvu: 0.5.6 @@ -77,8 +77,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/android-arm/0.15.9: - resolution: {integrity: sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==} + /@esbuild/android-arm/0.15.10: + resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -86,8 +86,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.9: - resolution: {integrity: sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==} + /@esbuild/linux-loong64/0.15.10: + resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -95,8 +95,8 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.2: - resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -112,8 +112,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.10.5: - resolution: {integrity: sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==} + /@humanwhocodes/config-array/0.10.7: + resolution: {integrity: sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -123,10 +123,6 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} - dev: true - /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -150,8 +146,8 @@ packages: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.15: - resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} + /@jridgewell/trace-mapping/0.3.16: + resolution: {integrity: sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 @@ -164,7 +160,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_nzsxh47tssh6cfdl7hgsupz66q: + /@logux/eslint-config/47.2.0_msmyq3vlttzwmayw4cvaauou3m: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -175,12 +171,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.24.0 - eslint-config-standard: 17.0.0_4ybqc3giaxsbo5btq74wfmkary - eslint-plugin-import: 2.26.0_gofx6msuqd4luqedfouzks2s4u - eslint-plugin-n: 15.3.0_eslint@8.24.0 + eslint: 8.25.0 + eslint-config-standard: 17.0.0_a432y4gghichzqs5hexeiieuzm + eslint-plugin-import: 2.26.0_zb5prbqp7qzcgafjm73dfpyyvm + eslint-plugin-n: 15.3.0_eslint@8.25.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.1_eslint@8.24.0 + eslint-plugin-promise: 6.0.1_eslint@8.25.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -210,7 +206,7 @@ packages: peerDependencies: size-limit: 8.1.0 dependencies: - esbuild: 0.15.9 + esbuild: 0.15.10 nanoid: 3.3.4 size-limit: 8.1.0 dev: true @@ -254,7 +250,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.7.23 + '@types/node': 18.8.4 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -269,16 +265,16 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.7.23: - resolution: {integrity: sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==} + /@types/node/18.8.4: + resolution: {integrity: sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.38.1_c7qepppml3d4ahu5cnfwqe6ltq: - resolution: {integrity: sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ==} + /@typescript-eslint/eslint-plugin/5.40.0_25sstg4uu2sk4pm7xcyzuov7xq: + resolution: {integrity: sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -288,23 +284,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa - '@typescript-eslint/scope-manager': 5.38.1 - '@typescript-eslint/type-utils': 5.38.1_ypn2ylkkyfa5i233caldtndbqa - '@typescript-eslint/utils': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/scope-manager': 5.40.0 + '@typescript-eslint/type-utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.25.0 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.38.1_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw==} + /@typescript-eslint/parser/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -313,26 +309,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.38.1 - '@typescript-eslint/types': 5.38.1 - '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.40.0 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.25.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.38.1: - resolution: {integrity: sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ==} + /@typescript-eslint/scope-manager/5.40.0: + resolution: {integrity: sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.38.1 - '@typescript-eslint/visitor-keys': 5.38.1 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/visitor-keys': 5.40.0 dev: true - /@typescript-eslint/type-utils/5.38.1_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw==} + /@typescript-eslint/type-utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -341,23 +337,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q debug: 4.3.4 - eslint: 8.24.0 + eslint: 8.25.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.38.1: - resolution: {integrity: sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg==} + /@typescript-eslint/types/5.40.0: + resolution: {integrity: sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.38.1_typescript@4.8.4: - resolution: {integrity: sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g==} + /@typescript-eslint/typescript-estree/5.40.0_typescript@4.8.4: + resolution: {integrity: sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -365,41 +361,42 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.38.1 - '@typescript-eslint/visitor-keys': 5.38.1 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/visitor-keys': 5.40.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.38.1_ypn2ylkkyfa5i233caldtndbqa: - resolution: {integrity: sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA==} + /@typescript-eslint/utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: + resolution: {integrity: sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.38.1 - '@typescript-eslint/types': 5.38.1 - '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 - eslint: 8.24.0 + '@typescript-eslint/scope-manager': 5.40.0 + '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + eslint: 8.25.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.25.0 + semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.38.1: - resolution: {integrity: sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA==} + /@typescript-eslint/visitor-keys/5.40.0: + resolution: {integrity: sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.38.1 + '@typescript-eslint/types': 5.40.0 eslint-visitor-keys: 3.3.0 dev: true @@ -465,7 +462,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.3 + es-abstract: 1.20.4 get-intrinsic: 1.1.3 is-string: 1.0.7 dev: true @@ -481,7 +478,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.3 + es-abstract: 1.20.4 es-shim-unscopables: 1.0.0 dev: true @@ -511,7 +508,7 @@ packages: /builtins/5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.3.7 + semver: 7.3.8 dev: true /bytes-iec/3.1.1: @@ -631,10 +628,8 @@ packages: source-map: 0.6.1 dev: true - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true /create-require/1.1.1: @@ -736,8 +731,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.20.3: - resolution: {integrity: sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==} + /es-abstract/1.20.4: + resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -781,8 +776,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.9: - resolution: {integrity: sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==} + /esbuild-android-64/0.15.10: + resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -790,8 +785,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.9: - resolution: {integrity: sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==} + /esbuild-android-arm64/0.15.10: + resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -799,8 +794,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.9: - resolution: {integrity: sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==} + /esbuild-darwin-64/0.15.10: + resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -808,8 +803,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.9: - resolution: {integrity: sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==} + /esbuild-darwin-arm64/0.15.10: + resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -817,8 +812,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.9: - resolution: {integrity: sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==} + /esbuild-freebsd-64/0.15.10: + resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -826,8 +821,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.9: - resolution: {integrity: sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==} + /esbuild-freebsd-arm64/0.15.10: + resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -835,8 +830,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.9: - resolution: {integrity: sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==} + /esbuild-linux-32/0.15.10: + resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -844,8 +839,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.9: - resolution: {integrity: sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==} + /esbuild-linux-64/0.15.10: + resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -853,8 +848,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.9: - resolution: {integrity: sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==} + /esbuild-linux-arm/0.15.10: + resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -862,8 +857,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.9: - resolution: {integrity: sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==} + /esbuild-linux-arm64/0.15.10: + resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -871,8 +866,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.9: - resolution: {integrity: sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==} + /esbuild-linux-mips64le/0.15.10: + resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -880,8 +875,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.9: - resolution: {integrity: sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==} + /esbuild-linux-ppc64le/0.15.10: + resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -889,8 +884,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.9: - resolution: {integrity: sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==} + /esbuild-linux-riscv64/0.15.10: + resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -898,8 +893,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.9: - resolution: {integrity: sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==} + /esbuild-linux-s390x/0.15.10: + resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -907,8 +902,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.9: - resolution: {integrity: sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==} + /esbuild-netbsd-64/0.15.10: + resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -916,8 +911,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.9: - resolution: {integrity: sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==} + /esbuild-openbsd-64/0.15.10: + resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -925,8 +920,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.9: - resolution: {integrity: sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==} + /esbuild-sunos-64/0.15.10: + resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -934,8 +929,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.9: - resolution: {integrity: sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==} + /esbuild-windows-32/0.15.10: + resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -943,8 +938,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.9: - resolution: {integrity: sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==} + /esbuild-windows-64/0.15.10: + resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -952,8 +947,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.9: - resolution: {integrity: sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==} + /esbuild-windows-arm64/0.15.10: + resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -961,34 +956,34 @@ packages: dev: true optional: true - /esbuild/0.15.9: - resolution: {integrity: sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==} + /esbuild/0.15.10: + resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.9 - '@esbuild/linux-loong64': 0.15.9 - esbuild-android-64: 0.15.9 - esbuild-android-arm64: 0.15.9 - esbuild-darwin-64: 0.15.9 - esbuild-darwin-arm64: 0.15.9 - esbuild-freebsd-64: 0.15.9 - esbuild-freebsd-arm64: 0.15.9 - esbuild-linux-32: 0.15.9 - esbuild-linux-64: 0.15.9 - esbuild-linux-arm: 0.15.9 - esbuild-linux-arm64: 0.15.9 - esbuild-linux-mips64le: 0.15.9 - esbuild-linux-ppc64le: 0.15.9 - esbuild-linux-riscv64: 0.15.9 - esbuild-linux-s390x: 0.15.9 - esbuild-netbsd-64: 0.15.9 - esbuild-openbsd-64: 0.15.9 - esbuild-sunos-64: 0.15.9 - esbuild-windows-32: 0.15.9 - esbuild-windows-64: 0.15.9 - esbuild-windows-arm64: 0.15.9 + '@esbuild/android-arm': 0.15.10 + '@esbuild/linux-loong64': 0.15.10 + esbuild-android-64: 0.15.10 + esbuild-android-arm64: 0.15.10 + esbuild-darwin-64: 0.15.10 + esbuild-darwin-arm64: 0.15.10 + esbuild-freebsd-64: 0.15.10 + esbuild-freebsd-arm64: 0.15.10 + esbuild-linux-32: 0.15.10 + esbuild-linux-64: 0.15.10 + esbuild-linux-arm: 0.15.10 + esbuild-linux-arm64: 0.15.10 + esbuild-linux-mips64le: 0.15.10 + esbuild-linux-ppc64le: 0.15.10 + esbuild-linux-riscv64: 0.15.10 + esbuild-linux-s390x: 0.15.10 + esbuild-netbsd-64: 0.15.10 + esbuild-openbsd-64: 0.15.10 + esbuild-sunos-64: 0.15.10 + esbuild-windows-32: 0.15.10 + esbuild-windows-64: 0.15.10 + esbuild-windows-arm64: 0.15.10 dev: true /escalade/3.1.1: @@ -1001,7 +996,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_4ybqc3giaxsbo5btq74wfmkary: + /eslint-config-standard/17.0.0_a432y4gghichzqs5hexeiieuzm: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -1009,10 +1004,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.24.0 - eslint-plugin-import: 2.26.0_gofx6msuqd4luqedfouzks2s4u - eslint-plugin-n: 15.3.0_eslint@8.24.0 - eslint-plugin-promise: 6.0.1_eslint@8.24.0 + eslint: 8.25.0 + eslint-plugin-import: 2.26.0_zb5prbqp7qzcgafjm73dfpyyvm + eslint-plugin-n: 15.3.0_eslint@8.25.0 + eslint-plugin-promise: 6.0.1_eslint@8.25.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1024,7 +1019,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_k7674c2ukyqtflgonkjv2n7c7y: + /eslint-module-utils/2.7.4_c3hlus4v72tewog5wytziddckm: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -1045,26 +1040,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q debug: 3.2.7 - eslint: 8.24.0 + eslint: 8.25.0 eslint-import-resolver-node: 0.3.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.24.0: + /eslint-plugin-es/4.1.0_eslint@8.25.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.24.0 + eslint: 8.25.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_gofx6msuqd4luqedfouzks2s4u: + /eslint-plugin-import/2.26.0_zb5prbqp7qzcgafjm73dfpyyvm: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1074,14 +1069,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.38.1_ypn2ylkkyfa5i233caldtndbqa + '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.24.0 + eslint: 8.25.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_k7674c2ukyqtflgonkjv2n7c7y + eslint-module-utils: 2.7.4_c3hlus4v72tewog5wytziddckm has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -1095,21 +1090,21 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.3.0_eslint@8.24.0: + /eslint-plugin-n/15.3.0_eslint@8.25.0: resolution: {integrity: sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.24.0 - eslint-plugin-es: 4.1.0_eslint@8.24.0 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint: 8.25.0 + eslint-plugin-es: 4.1.0_eslint@8.25.0 + eslint-utils: 3.0.0_eslint@8.25.0 ignore: 5.2.0 is-core-module: 2.10.0 minimatch: 3.1.2 resolve: 1.22.1 - semver: 7.3.7 + semver: 7.3.8 dev: true /eslint-plugin-prefer-let/3.0.1: @@ -1119,13 +1114,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.1_eslint@8.24.0: + /eslint-plugin-promise/6.0.1_eslint@8.25.0: resolution: {integrity: sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.24.0 + eslint: 8.25.0 dev: true /eslint-scope/5.1.1: @@ -1151,13 +1146,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.24.0: + /eslint-utils/3.0.0_eslint@8.25.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.24.0 + eslint: 8.25.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1176,14 +1171,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.24.0: - resolution: {integrity: sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==} + /eslint/8.25.0: + resolution: {integrity: sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.2 - '@humanwhocodes/config-array': 0.10.5 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.10.7 '@humanwhocodes/module-importer': 1.0.1 ajv: 6.12.6 chalk: 4.1.2 @@ -1192,7 +1186,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.24.0 + eslint-utils: 3.0.0_eslint@8.25.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -1208,7 +1202,7 @@ packages: import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 - js-sdsl: 4.1.4 + js-sdsl: 4.1.5 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -1364,7 +1358,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.3 + es-abstract: 1.20.4 functions-have-names: 1.2.3 dev: true @@ -1659,8 +1653,8 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /js-sdsl/4.1.4: - resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} + /js-sdsl/4.1.5: + resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} dev: true /js-yaml/4.1.0: @@ -1682,7 +1676,7 @@ packages: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: - minimist: 1.2.6 + minimist: 1.2.7 dev: true /jsonfile/6.1.0: @@ -1759,8 +1753,8 @@ packages: brace-expansion: 1.1.11 dev: true - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: true /mkdirp/1.0.4: @@ -1840,7 +1834,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.3 + es-abstract: 1.20.4 dev: true /once/1.4.0: @@ -2004,10 +1998,6 @@ packages: mri: 1.2.0 dev: true - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - /safe-regex-test/1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -2029,6 +2019,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2103,7 +2101,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.3 + es-abstract: 1.20.4 dev: true /string.prototype.trimstart/1.0.5: @@ -2111,7 +2109,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.3 + es-abstract: 1.20.4 dev: true /strip-ansi/6.0.1: @@ -2163,7 +2161,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_gbhfbbeqrol7fxixnzbkbuanxe: + /ts-node/10.9.1_xkk4lltwku4cysulzbqoieownu: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2182,7 +2180,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.7.23 + '@types/node': 18.8.4 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2199,7 +2197,7 @@ packages: dependencies: '@types/json5': 0.0.29 json5: 1.0.1 - minimist: 1.2.6 + minimist: 1.2.7 strip-bom: 3.0.0 dev: true @@ -2280,9 +2278,9 @@ packages: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.16 '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 + convert-source-map: 1.9.0 dev: true /vfile-location/4.0.1: From d33f2725eb36f442feb52c91457d7b7510bdf02f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 12 Oct 2022 21:28:23 +0200 Subject: [PATCH 2598/3047] Release 8.4.18 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2388c3d93..869608c40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.18 +* Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas). + ## 8.4.17 * Fixed `Node.before()` unexpected behavior (by Romain Menke). * Added TOC to docs (by Mikhail Dedov). diff --git a/lib/processor.js b/lib/processor.js index 04dae80f3..8342e4d4e 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.17' + this.version = '8.4.18' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 2f1e8f7b6..ba889a810 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.17", + "version": "8.4.18", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 3b6ba56d3a7f6e7345803555fa16f1584d9b0ab2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 24 Oct 2022 00:52:27 +0200 Subject: [PATCH 2599/3047] Add Node.js 19 --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9083bdd06..9a57fe3e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 19 cache: pnpm - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts @@ -31,6 +31,7 @@ jobs: strategy: matrix: node-version: + - 18 - 16 - 14 name: Node.js ${{ matrix.node-version }} Quick From fe637681100bc59fa009d72b0ef3a013f19c0f2b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 24 Oct 2022 00:52:34 +0200 Subject: [PATCH 2600/3047] Update dependencies --- package.json | 12 +- pnpm-lock.yaml | 361 +++++++++++++++++++++++++------------------------ 2 files changed, 192 insertions(+), 181 deletions(-) diff --git a/package.json b/package.json index ba889a810..4d540cfda 100755 --- a/package.json +++ b/package.json @@ -83,24 +83,24 @@ "@logux/eslint-config": "^47.2.0", "@size-limit/preset-small-lib": "^8.1.0", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.8.4", - "@typescript-eslint/eslint-plugin": "^5.40.0", - "@typescript-eslint/parser": "^5.40.0", + "@types/node": "^18.11.4", + "@typescript-eslint/eslint-plugin": "^5.40.1", + "@typescript-eslint/parser": "^5.40.1", "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.25.0", + "eslint": "^8.26.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.3.0", "eslint-plugin-prefer-let": "^3.0.1", - "eslint-plugin-promise": "^6.0.1", + "eslint-plugin-promise": "^6.1.1", "fs-extra": "^10.1.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.1", - "simple-git-hooks": "^2.8.0", + "simple-git-hooks": "^2.8.1", "size-limit": "^8.1.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bce3560b8..7fe76780f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,26 +4,26 @@ specifiers: '@logux/eslint-config': ^47.2.0 '@size-limit/preset-small-lib': ^8.1.0 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.8.4 - '@typescript-eslint/eslint-plugin': ^5.40.0 - '@typescript-eslint/parser': ^5.40.0 + '@types/node': ^18.11.4 + '@typescript-eslint/eslint-plugin': ^5.40.1 + '@typescript-eslint/parser': ^5.40.1 c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.25.0 + eslint: ^8.26.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.3.0 eslint-plugin-prefer-let: ^3.0.1 - eslint-plugin-promise: ^6.0.1 + eslint-plugin-promise: ^6.1.1 fs-extra: ^10.1.0 nanodelay: ^1.0.8 nanoid: ^3.3.4 nanospy: ^0.5.0 picocolors: ^1.0.0 postcss-parser-tests: ^8.5.1 - simple-git-hooks: ^2.8.0 + simple-git-hooks: ^2.8.1 size-limit: ^8.1.0 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 @@ -37,30 +37,30 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_msmyq3vlttzwmayw4cvaauou3m + '@logux/eslint-config': 47.2.0_typfqbe2hunit2r2qngsk4xez4 '@size-limit/preset-small-lib': 8.1.0_size-limit@8.1.0 '@types/fs-extra': 9.0.13 - '@types/node': 18.8.4 - '@typescript-eslint/eslint-plugin': 5.40.0_25sstg4uu2sk4pm7xcyzuov7xq - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@types/node': 18.11.4 + '@typescript-eslint/eslint-plugin': 5.40.1_c4zyna56jjjrggqkyejnaxjxfu + '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m c8: 7.12.0 check-dts: 0.6.7_typescript@4.8.4 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.25.0 - eslint-config-standard: 17.0.0_a432y4gghichzqs5hexeiieuzm - eslint-plugin-import: 2.26.0_zb5prbqp7qzcgafjm73dfpyyvm - eslint-plugin-n: 15.3.0_eslint@8.25.0 + eslint: 8.26.0 + eslint-config-standard: 17.0.0_43wwz2xsig5yhgcv2rleettsby + eslint-plugin-import: 2.26.0_yxvyo6v5zwzggfecalzmx54lre + eslint-plugin-n: 15.3.0_eslint@8.26.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.1_eslint@8.25.0 + eslint-plugin-promise: 6.1.1_eslint@8.26.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.1 - simple-git-hooks: 2.8.0 + simple-git-hooks: 2.8.1 size-limit: 8.1.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_xkk4lltwku4cysulzbqoieownu + ts-node: 10.9.1_6hf6ijjdmrvgn4gwd23tocsh2m typescript: 4.8.4 uvu: 0.5.6 @@ -77,8 +77,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/android-arm/0.15.10: - resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + /@esbuild/android-arm/0.15.12: + resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -86,8 +86,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.10: - resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + /@esbuild/linux-loong64/0.15.12: + resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -112,8 +112,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.10.7: - resolution: {integrity: sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==} + /@humanwhocodes/config-array/0.11.6: + resolution: {integrity: sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -146,8 +146,8 @@ packages: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.16: - resolution: {integrity: sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==} + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 @@ -160,7 +160,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_msmyq3vlttzwmayw4cvaauou3m: + /@logux/eslint-config/47.2.0_typfqbe2hunit2r2qngsk4xez4: resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} engines: {node: '>=10.0.0'} peerDependencies: @@ -171,12 +171,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.25.0 - eslint-config-standard: 17.0.0_a432y4gghichzqs5hexeiieuzm - eslint-plugin-import: 2.26.0_zb5prbqp7qzcgafjm73dfpyyvm - eslint-plugin-n: 15.3.0_eslint@8.25.0 + eslint: 8.26.0 + eslint-config-standard: 17.0.0_43wwz2xsig5yhgcv2rleettsby + eslint-plugin-import: 2.26.0_yxvyo6v5zwzggfecalzmx54lre + eslint-plugin-n: 15.3.0_eslint@8.26.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.0.1_eslint@8.25.0 + eslint-plugin-promise: 6.1.1_eslint@8.26.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -206,7 +206,7 @@ packages: peerDependencies: size-limit: 8.1.0 dependencies: - esbuild: 0.15.10 + esbuild: 0.15.12 nanoid: 3.3.4 size-limit: 8.1.0 dev: true @@ -250,7 +250,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.8.4 + '@types/node': 18.11.4 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -265,16 +265,20 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.8.4: - resolution: {integrity: sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==} + /@types/node/18.11.4: + resolution: {integrity: sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A==} + dev: true + + /@types/semver/7.3.12: + resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.40.0_25sstg4uu2sk4pm7xcyzuov7xq: - resolution: {integrity: sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==} + /@typescript-eslint/eslint-plugin/5.40.1_c4zyna56jjjrggqkyejnaxjxfu: + resolution: {integrity: sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -284,12 +288,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q - '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/type-utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q - '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/scope-manager': 5.40.1 + '@typescript-eslint/type-utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.25.0 + eslint: 8.26.0 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.8 @@ -299,8 +303,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==} + /@typescript-eslint/parser/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -309,26 +313,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.40.1 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.25.0 + eslint: 8.26.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.40.0: - resolution: {integrity: sha512-d3nPmjUeZtEWRvyReMI4I1MwPGC63E8pDoHy0BnrYjnJgilBD3hv7XOiETKLY/zTwI7kCnBDf2vWTRUVpYw0Uw==} + /@typescript-eslint/scope-manager/5.40.1: + resolution: {integrity: sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/visitor-keys': 5.40.0 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/visitor-keys': 5.40.1 dev: true - /@typescript-eslint/type-utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==} + /@typescript-eslint/type-utils/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -337,23 +341,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 - '@typescript-eslint/utils': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.25.0 + eslint: 8.26.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.40.0: - resolution: {integrity: sha512-V1KdQRTXsYpf1Y1fXCeZ+uhjW48Niiw0VGt4V8yzuaDTU8Z1Xl7yQDyQNqyAFcVhpYXIVCEuxSIWTsLDpHgTbw==} + /@typescript-eslint/types/5.40.1: + resolution: {integrity: sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.40.0_typescript@4.8.4: - resolution: {integrity: sha512-b0GYlDj8TLTOqwX7EGbw2gL5EXS2CPEWhF9nGJiGmEcmlpNBjyHsTwbqpyIEPVpl6br4UcBOYlcI2FJVtJkYhg==} + /@typescript-eslint/typescript-estree/5.40.1_typescript@4.8.4: + resolution: {integrity: sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -361,8 +365,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/visitor-keys': 5.40.0 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/visitor-keys': 5.40.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -373,30 +377,31 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q: - resolution: {integrity: sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==} + /@typescript-eslint/utils/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/types': 5.40.0 - '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.8.4 - eslint: 8.25.0 + '@types/semver': 7.3.12 + '@typescript-eslint/scope-manager': 5.40.1 + '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 + eslint: 8.26.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.25.0 + eslint-utils: 3.0.0_eslint@8.26.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.40.0: - resolution: {integrity: sha512-ijJ+6yig+x9XplEpG2K6FUdJeQGGj/15U3S56W9IqXKJqleuD7zJ2AX/miLezwxpd7ZxDAqO87zWufKg+RPZyQ==} + /@typescript-eslint/visitor-keys/5.40.1: + resolution: {integrity: sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.40.0 + '@typescript-eslint/types': 5.40.1 eslint-visitor-keys: 3.3.0 dev: true @@ -776,8 +781,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.10: - resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} + /esbuild-android-64/0.15.12: + resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -785,8 +790,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.10: - resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} + /esbuild-android-arm64/0.15.12: + resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -794,8 +799,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.10: - resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} + /esbuild-darwin-64/0.15.12: + resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -803,8 +808,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.10: - resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} + /esbuild-darwin-arm64/0.15.12: + resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -812,8 +817,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.10: - resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} + /esbuild-freebsd-64/0.15.12: + resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -821,8 +826,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.10: - resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} + /esbuild-freebsd-arm64/0.15.12: + resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -830,8 +835,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.10: - resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} + /esbuild-linux-32/0.15.12: + resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -839,8 +844,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.10: - resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} + /esbuild-linux-64/0.15.12: + resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -848,8 +853,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.10: - resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} + /esbuild-linux-arm/0.15.12: + resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -857,8 +862,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.10: - resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} + /esbuild-linux-arm64/0.15.12: + resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -866,8 +871,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.10: - resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} + /esbuild-linux-mips64le/0.15.12: + resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -875,8 +880,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.10: - resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} + /esbuild-linux-ppc64le/0.15.12: + resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -884,8 +889,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.10: - resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} + /esbuild-linux-riscv64/0.15.12: + resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -893,8 +898,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.10: - resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} + /esbuild-linux-s390x/0.15.12: + resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -902,8 +907,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.10: - resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} + /esbuild-netbsd-64/0.15.12: + resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -911,8 +916,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.10: - resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} + /esbuild-openbsd-64/0.15.12: + resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -920,8 +925,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.10: - resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} + /esbuild-sunos-64/0.15.12: + resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -929,8 +934,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.10: - resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} + /esbuild-windows-32/0.15.12: + resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -938,8 +943,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.10: - resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} + /esbuild-windows-64/0.15.12: + resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -947,8 +952,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.10: - resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} + /esbuild-windows-arm64/0.15.12: + resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -956,34 +961,34 @@ packages: dev: true optional: true - /esbuild/0.15.10: - resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} + /esbuild/0.15.12: + resolution: {integrity: sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.10 - '@esbuild/linux-loong64': 0.15.10 - esbuild-android-64: 0.15.10 - esbuild-android-arm64: 0.15.10 - esbuild-darwin-64: 0.15.10 - esbuild-darwin-arm64: 0.15.10 - esbuild-freebsd-64: 0.15.10 - esbuild-freebsd-arm64: 0.15.10 - esbuild-linux-32: 0.15.10 - esbuild-linux-64: 0.15.10 - esbuild-linux-arm: 0.15.10 - esbuild-linux-arm64: 0.15.10 - esbuild-linux-mips64le: 0.15.10 - esbuild-linux-ppc64le: 0.15.10 - esbuild-linux-riscv64: 0.15.10 - esbuild-linux-s390x: 0.15.10 - esbuild-netbsd-64: 0.15.10 - esbuild-openbsd-64: 0.15.10 - esbuild-sunos-64: 0.15.10 - esbuild-windows-32: 0.15.10 - esbuild-windows-64: 0.15.10 - esbuild-windows-arm64: 0.15.10 + '@esbuild/android-arm': 0.15.12 + '@esbuild/linux-loong64': 0.15.12 + esbuild-android-64: 0.15.12 + esbuild-android-arm64: 0.15.12 + esbuild-darwin-64: 0.15.12 + esbuild-darwin-arm64: 0.15.12 + esbuild-freebsd-64: 0.15.12 + esbuild-freebsd-arm64: 0.15.12 + esbuild-linux-32: 0.15.12 + esbuild-linux-64: 0.15.12 + esbuild-linux-arm: 0.15.12 + esbuild-linux-arm64: 0.15.12 + esbuild-linux-mips64le: 0.15.12 + esbuild-linux-ppc64le: 0.15.12 + esbuild-linux-riscv64: 0.15.12 + esbuild-linux-s390x: 0.15.12 + esbuild-netbsd-64: 0.15.12 + esbuild-openbsd-64: 0.15.12 + esbuild-sunos-64: 0.15.12 + esbuild-windows-32: 0.15.12 + esbuild-windows-64: 0.15.12 + esbuild-windows-arm64: 0.15.12 dev: true /escalade/3.1.1: @@ -996,7 +1001,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_a432y4gghichzqs5hexeiieuzm: + /eslint-config-standard/17.0.0_43wwz2xsig5yhgcv2rleettsby: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -1004,10 +1009,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.25.0 - eslint-plugin-import: 2.26.0_zb5prbqp7qzcgafjm73dfpyyvm - eslint-plugin-n: 15.3.0_eslint@8.25.0 - eslint-plugin-promise: 6.0.1_eslint@8.25.0 + eslint: 8.26.0 + eslint-plugin-import: 2.26.0_yxvyo6v5zwzggfecalzmx54lre + eslint-plugin-n: 15.3.0_eslint@8.26.0 + eslint-plugin-promise: 6.1.1_eslint@8.26.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1019,7 +1024,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_c3hlus4v72tewog5wytziddckm: + /eslint-module-utils/2.7.4_utini5cccvn2hotlwtyw4enwwm: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -1040,26 +1045,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m debug: 3.2.7 - eslint: 8.25.0 + eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.25.0: + /eslint-plugin-es/4.1.0_eslint@8.26.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.25.0 + eslint: 8.26.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_zb5prbqp7qzcgafjm73dfpyyvm: + /eslint-plugin-import/2.26.0_yxvyo6v5zwzggfecalzmx54lre: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1069,16 +1074,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_z4bbprzjrhnsfa24uvmcbu7f5q + '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.25.0 + eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_c3hlus4v72tewog5wytziddckm + eslint-module-utils: 2.7.4_utini5cccvn2hotlwtyw4enwwm has: 1.0.3 - is-core-module: 2.10.0 + is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 @@ -1090,18 +1095,18 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.3.0_eslint@8.25.0: + /eslint-plugin-n/15.3.0_eslint@8.26.0: resolution: {integrity: sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.25.0 - eslint-plugin-es: 4.1.0_eslint@8.25.0 - eslint-utils: 3.0.0_eslint@8.25.0 + eslint: 8.26.0 + eslint-plugin-es: 4.1.0_eslint@8.26.0 + eslint-utils: 3.0.0_eslint@8.26.0 ignore: 5.2.0 - is-core-module: 2.10.0 + is-core-module: 2.11.0 minimatch: 3.1.2 resolve: 1.22.1 semver: 7.3.8 @@ -1114,13 +1119,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.0.1_eslint@8.25.0: - resolution: {integrity: sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==} + /eslint-plugin-promise/6.1.1_eslint@8.26.0: + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.25.0 + eslint: 8.26.0 dev: true /eslint-scope/5.1.1: @@ -1146,13 +1151,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.25.0: + /eslint-utils/3.0.0_eslint@8.26.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.25.0 + eslint: 8.26.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1171,14 +1176,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.25.0: - resolution: {integrity: sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==} + /eslint/8.26.0: + resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: '@eslint/eslintrc': 1.3.3 - '@humanwhocodes/config-array': 0.10.7 + '@humanwhocodes/config-array': 0.11.6 '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1186,7 +1192,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.25.0 + eslint-utils: 3.0.0_eslint@8.26.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -1196,12 +1202,12 @@ packages: find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.17.0 - globby: 11.1.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 js-sdsl: 4.1.5 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 @@ -1546,8 +1552,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module/2.10.0: - resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 dev: true @@ -1593,6 +1599,11 @@ packages: engines: {node: '>=0.12.0'} dev: true + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -1968,7 +1979,7 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.10.0 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -2051,8 +2062,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /simple-git-hooks/2.8.0: - resolution: {integrity: sha512-ocmZQORwa6x9mxg+gVIAp5o4wXiWOHGXyrDBA0+UxGKIEKOyFtL4LWNKkP/2ornQPdlnlDGDteVeYP5FjhIoWA==} + /simple-git-hooks/2.8.1: + resolution: {integrity: sha512-DYpcVR1AGtSfFUNzlBdHrQGPsOhuuEJ/FkmPOOlFysP60AHd3nsEpkGq/QEOdtUyT1Qhk7w9oLmFoMG+75BDog==} hasBin: true requiresBuild: true dev: true @@ -2161,7 +2172,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_xkk4lltwku4cysulzbqoieownu: + /ts-node/10.9.1_6hf6ijjdmrvgn4gwd23tocsh2m: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2180,7 +2191,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.8.4 + '@types/node': 18.11.4 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -2278,7 +2289,7 @@ packages: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.16 + '@jridgewell/trace-mapping': 0.3.17 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.9.0 dev: true From ca04e0abed8118e2d4617a2c6c9b3a07e63bf0e6 Mon Sep 17 00:00:00 2001 From: Eduardo Pilati Date: Mon, 7 Nov 2022 13:48:04 -0300 Subject: [PATCH 2601/3047] Update plugins.md fixing postcss-easy-import link --- docs/plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index 80fcd5ade..dc84afb83 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -949,4 +949,4 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-design-tokens`]: https://github.com/jptaranto/postcss-design-tokens [`postcss-pixel-to-remvw`]: https://github.com/ben-lau/postcss-pixel-to-remvw [`@csstools/postcss-design-tokens`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-design-tokens -[`postcss-easy-import`]: https://https://github.com/TrySound/postcss-easy-import +[`postcss-easy-import`]: https://github.com/TrySound/postcss-easy-import From 4b388450ea7786838d53dbc7c4bc0ceb7ecbb597 Mon Sep 17 00:00:00 2001 From: Romain Menke Date: Thu, 10 Nov 2022 23:42:08 +0100 Subject: [PATCH 2602/3047] fix whitespace bug --- lib/container.js | 2 +- test/container.test.ts | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/container.js b/lib/container.js index 39fe036f6..0f047bea2 100644 --- a/lib/container.js +++ b/lib/container.js @@ -177,7 +177,7 @@ class Container extends Node { insertBefore(exist, add) { let existIndex = this.index(exist) - let type = exist === 0 ? 'prepend' : false + let type = existIndex === 0 ? 'prepend' : false let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse() existIndex = this.index(exist) for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node) diff --git a/test/container.test.ts b/test/container.test.ts index 52f12ffb8..25ba7bfb0 100755 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -654,6 +654,28 @@ test('insertBefore() receives pre-existing child node - b', () => { is(a.toString(), 'a{ z-index: 1; align-items: start; color: red }') }) +test('insertBefore() has defined way of adding newlines', () => { + let root = parse('a {}') + root.insertBefore(root.first as Rule, 'b {}') + root.insertBefore(root.first as Rule, 'c {}') + is(root.toString(), 'c {}\nb {}\na {}') + + root = parse('other {}a {}') + root.insertBefore(root.first as Rule, 'b {}') + root.insertBefore(root.first as Rule, 'c {}') + is(root.toString(), 'c {}b {}other {}a {}') + + root = parse('other {}\na {}') + root.insertBefore(root.nodes[1] as Rule, 'b {}') + root.insertBefore(root.nodes[1] as Rule, 'c {}') + is(root.toString(), 'other {}\nc {}\nb {}\na {}') + + root = parse('other {}a {}') + root.insertBefore(root.nodes[1] as Rule, 'b {}') + root.insertBefore(root.nodes[1] as Rule, 'c {}') + is(root.toString(), 'other {}c {}b {}a {}') +}) + test('insertAfter() inserts child', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule rule.insertAfter(0, { prop: 'c', value: '3' }) From ed5103d3a37adf77cef557055a34d64fe4ae3cca Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Nov 2022 23:55:47 +0100 Subject: [PATCH 2603/3047] Update dependencies --- package.json | 12 +- pnpm-lock.yaml | 397 +++++++++++++++++++++++++------------------------ 2 files changed, 207 insertions(+), 202 deletions(-) diff --git a/package.json b/package.json index 4d540cfda..2f526793c 100755 --- a/package.json +++ b/package.json @@ -80,20 +80,20 @@ "source-map-js": "^1.0.2" }, "devDependencies": { - "@logux/eslint-config": "^47.2.0", + "@logux/eslint-config": "^48.0.0", "@size-limit/preset-small-lib": "^8.1.0", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.11.4", - "@typescript-eslint/eslint-plugin": "^5.40.1", - "@typescript-eslint/parser": "^5.40.1", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^5.42.1", + "@typescript-eslint/parser": "^5.42.1", "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.26.0", + "eslint": "^8.27.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.3.0", + "eslint-plugin-n": "^15.5.1", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.1.1", "fs-extra": "^10.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7fe76780f..b063d10e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,20 +1,20 @@ lockfileVersion: 5.4 specifiers: - '@logux/eslint-config': ^47.2.0 + '@logux/eslint-config': ^48.0.0 '@size-limit/preset-small-lib': ^8.1.0 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.11.4 - '@typescript-eslint/eslint-plugin': ^5.40.1 - '@typescript-eslint/parser': ^5.40.1 + '@types/node': ^18.11.9 + '@typescript-eslint/eslint-plugin': ^5.42.1 + '@typescript-eslint/parser': ^5.42.1 c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.26.0 + eslint: ^8.27.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.3.0 + eslint-plugin-n: ^15.5.1 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.1.1 fs-extra: ^10.1.0 @@ -37,22 +37,22 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 47.2.0_typfqbe2hunit2r2qngsk4xez4 + '@logux/eslint-config': 48.0.0_hhsavnm2pg5jgrgbkvdgwcdyhu '@size-limit/preset-small-lib': 8.1.0_size-limit@8.1.0 '@types/fs-extra': 9.0.13 - '@types/node': 18.11.4 - '@typescript-eslint/eslint-plugin': 5.40.1_c4zyna56jjjrggqkyejnaxjxfu - '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + '@types/node': 18.11.9 + '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy c8: 7.12.0 check-dts: 0.6.7_typescript@4.8.4 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.26.0 - eslint-config-standard: 17.0.0_43wwz2xsig5yhgcv2rleettsby - eslint-plugin-import: 2.26.0_yxvyo6v5zwzggfecalzmx54lre - eslint-plugin-n: 15.3.0_eslint@8.26.0 + eslint: 8.27.0 + eslint-config-standard: 17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m + eslint-plugin-import: 2.26.0_jnohwm7eexgw7uduhweedcbnpe + eslint-plugin-n: 15.5.1_eslint@8.27.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.1.1_eslint@8.26.0 + eslint-plugin-promise: 6.1.1_eslint@8.27.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 @@ -60,7 +60,7 @@ devDependencies: simple-git-hooks: 2.8.1 size-limit: 8.1.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_6hf6ijjdmrvgn4gwd23tocsh2m + ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 typescript: 4.8.4 uvu: 0.5.6 @@ -77,8 +77,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/android-arm/0.15.12: - resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==} + /@esbuild/android-arm/0.15.13: + resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -86,8 +86,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.12: - resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==} + /@esbuild/linux-loong64/0.15.13: + resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -101,7 +101,7 @@ packages: dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.4.0 + espree: 9.4.1 globals: 13.17.0 ignore: 5.2.0 import-fresh: 3.3.0 @@ -112,8 +112,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.11.6: - resolution: {integrity: sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==} + /@humanwhocodes/config-array/0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -160,23 +160,23 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/47.2.0_typfqbe2hunit2r2qngsk4xez4: - resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} + /@logux/eslint-config/48.0.0_hhsavnm2pg5jgrgbkvdgwcdyhu: + resolution: {integrity: sha512-4Lwgy14TmEbrp0Xsm7YjiptitLkigOAdqrnkYaNIgeMEe54hO6I99KueeS0348CFWqVAaV9g0eJQaPF6vCJGJg==} engines: {node: '>=10.0.0'} peerDependencies: - eslint: ^8.14.0 + eslint: ^8.27.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.1.0 + eslint-plugin-n: ^15.5.0 eslint-plugin-prefer-let: ^3.0.1 - eslint-plugin-promise: ^6.0.0 + eslint-plugin-promise: ^6.1.1 dependencies: - eslint: 8.26.0 - eslint-config-standard: 17.0.0_43wwz2xsig5yhgcv2rleettsby - eslint-plugin-import: 2.26.0_yxvyo6v5zwzggfecalzmx54lre - eslint-plugin-n: 15.3.0_eslint@8.26.0 + eslint: 8.27.0 + eslint-config-standard: 17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m + eslint-plugin-import: 2.26.0_jnohwm7eexgw7uduhweedcbnpe + eslint-plugin-n: 15.5.1_eslint@8.27.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.1.1_eslint@8.26.0 + eslint-plugin-promise: 6.1.1_eslint@8.27.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -206,7 +206,7 @@ packages: peerDependencies: size-limit: 8.1.0 dependencies: - esbuild: 0.15.12 + esbuild: 0.15.13 nanoid: 3.3.4 size-limit: 8.1.0 dev: true @@ -250,7 +250,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.11.4 + '@types/node': 18.11.9 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -265,20 +265,20 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.11.4: - resolution: {integrity: sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A==} + /@types/node/18.11.9: + resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} dev: true - /@types/semver/7.3.12: - resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} dev: true /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.40.1_c4zyna56jjjrggqkyejnaxjxfu: - resolution: {integrity: sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg==} + /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq: + resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -288,13 +288,14 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m - '@typescript-eslint/scope-manager': 5.40.1 - '@typescript-eslint/type-utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m - '@typescript-eslint/utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 - eslint: 8.26.0 + eslint: 8.27.0 ignore: 5.2.0 + natural-compare-lite: 1.4.0 regexpp: 3.2.0 semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 @@ -303,8 +304,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==} + /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -313,26 +314,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.40.1 - '@typescript-eslint/types': 5.40.1 - '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 debug: 4.3.4 - eslint: 8.26.0 + eslint: 8.27.0 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.40.1: - resolution: {integrity: sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==} + /@typescript-eslint/scope-manager/5.42.1: + resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.40.1 - '@typescript-eslint/visitor-keys': 5.40.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 dev: true - /@typescript-eslint/type-utils/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q==} + /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -341,23 +342,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 - eslint: 8.26.0 + eslint: 8.27.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.40.1: - resolution: {integrity: sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==} + /@typescript-eslint/types/5.42.1: + resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.40.1_typescript@4.8.4: - resolution: {integrity: sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==} + /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4: + resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -365,8 +366,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.40.1 - '@typescript-eslint/visitor-keys': 5.40.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -377,40 +378,40 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.40.1_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==} + /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@types/semver': 7.3.12 - '@typescript-eslint/scope-manager': 5.40.1 - '@typescript-eslint/types': 5.40.1 - '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 - eslint: 8.26.0 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + eslint: 8.27.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.26.0 + eslint-utils: 3.0.0_eslint@8.27.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.40.1: - resolution: {integrity: sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==} + /@typescript-eslint/visitor-keys/5.42.1: + resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.40.1 + '@typescript-eslint/types': 5.42.1 eslint-visitor-keys: 3.3.0 dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: + /acorn-jsx/5.3.2_acorn@8.8.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.0 + acorn: 8.8.1 dev: true /acorn-walk/8.2.0: @@ -418,8 +419,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/8.8.0: - resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + /acorn/8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -461,8 +462,8 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-includes/3.1.5: - resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + /array-includes/3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -477,8 +478,8 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.flat/1.3.0: - resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + /array.prototype.flat/1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -761,8 +762,8 @@ packages: object.assign: 4.1.4 regexp.prototype.flags: 1.4.3 safe-regex-test: 1.0.0 - string.prototype.trimend: 1.0.5 - string.prototype.trimstart: 1.0.5 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 unbox-primitive: 1.0.2 dev: true @@ -781,8 +782,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.12: - resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==} + /esbuild-android-64/0.15.13: + resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -790,8 +791,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.12: - resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==} + /esbuild-android-arm64/0.15.13: + resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -799,8 +800,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.12: - resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==} + /esbuild-darwin-64/0.15.13: + resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -808,8 +809,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.12: - resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==} + /esbuild-darwin-arm64/0.15.13: + resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -817,8 +818,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.12: - resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==} + /esbuild-freebsd-64/0.15.13: + resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -826,8 +827,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.12: - resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==} + /esbuild-freebsd-arm64/0.15.13: + resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -835,8 +836,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.12: - resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==} + /esbuild-linux-32/0.15.13: + resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -844,8 +845,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.12: - resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==} + /esbuild-linux-64/0.15.13: + resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -853,8 +854,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.12: - resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==} + /esbuild-linux-arm/0.15.13: + resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -862,8 +863,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.12: - resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==} + /esbuild-linux-arm64/0.15.13: + resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -871,8 +872,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.12: - resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==} + /esbuild-linux-mips64le/0.15.13: + resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -880,8 +881,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.12: - resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==} + /esbuild-linux-ppc64le/0.15.13: + resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -889,8 +890,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.12: - resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==} + /esbuild-linux-riscv64/0.15.13: + resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -898,8 +899,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.12: - resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==} + /esbuild-linux-s390x/0.15.13: + resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -907,8 +908,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.12: - resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==} + /esbuild-netbsd-64/0.15.13: + resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -916,8 +917,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.12: - resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==} + /esbuild-openbsd-64/0.15.13: + resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -925,8 +926,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.12: - resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==} + /esbuild-sunos-64/0.15.13: + resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -934,8 +935,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.12: - resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==} + /esbuild-windows-32/0.15.13: + resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -943,8 +944,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.12: - resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==} + /esbuild-windows-64/0.15.13: + resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -952,8 +953,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.12: - resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==} + /esbuild-windows-arm64/0.15.13: + resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -961,34 +962,34 @@ packages: dev: true optional: true - /esbuild/0.15.12: - resolution: {integrity: sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==} + /esbuild/0.15.13: + resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.12 - '@esbuild/linux-loong64': 0.15.12 - esbuild-android-64: 0.15.12 - esbuild-android-arm64: 0.15.12 - esbuild-darwin-64: 0.15.12 - esbuild-darwin-arm64: 0.15.12 - esbuild-freebsd-64: 0.15.12 - esbuild-freebsd-arm64: 0.15.12 - esbuild-linux-32: 0.15.12 - esbuild-linux-64: 0.15.12 - esbuild-linux-arm: 0.15.12 - esbuild-linux-arm64: 0.15.12 - esbuild-linux-mips64le: 0.15.12 - esbuild-linux-ppc64le: 0.15.12 - esbuild-linux-riscv64: 0.15.12 - esbuild-linux-s390x: 0.15.12 - esbuild-netbsd-64: 0.15.12 - esbuild-openbsd-64: 0.15.12 - esbuild-sunos-64: 0.15.12 - esbuild-windows-32: 0.15.12 - esbuild-windows-64: 0.15.12 - esbuild-windows-arm64: 0.15.12 + '@esbuild/android-arm': 0.15.13 + '@esbuild/linux-loong64': 0.15.13 + esbuild-android-64: 0.15.13 + esbuild-android-arm64: 0.15.13 + esbuild-darwin-64: 0.15.13 + esbuild-darwin-arm64: 0.15.13 + esbuild-freebsd-64: 0.15.13 + esbuild-freebsd-arm64: 0.15.13 + esbuild-linux-32: 0.15.13 + esbuild-linux-64: 0.15.13 + esbuild-linux-arm: 0.15.13 + esbuild-linux-arm64: 0.15.13 + esbuild-linux-mips64le: 0.15.13 + esbuild-linux-ppc64le: 0.15.13 + esbuild-linux-riscv64: 0.15.13 + esbuild-linux-s390x: 0.15.13 + esbuild-netbsd-64: 0.15.13 + esbuild-openbsd-64: 0.15.13 + esbuild-sunos-64: 0.15.13 + esbuild-windows-32: 0.15.13 + esbuild-windows-64: 0.15.13 + esbuild-windows-arm64: 0.15.13 dev: true /escalade/3.1.1: @@ -1001,7 +1002,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_43wwz2xsig5yhgcv2rleettsby: + /eslint-config-standard/17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -1009,10 +1010,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.26.0 - eslint-plugin-import: 2.26.0_yxvyo6v5zwzggfecalzmx54lre - eslint-plugin-n: 15.3.0_eslint@8.26.0 - eslint-plugin-promise: 6.1.1_eslint@8.26.0 + eslint: 8.27.0 + eslint-plugin-import: 2.26.0_jnohwm7eexgw7uduhweedcbnpe + eslint-plugin-n: 15.5.1_eslint@8.27.0 + eslint-plugin-promise: 6.1.1_eslint@8.27.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1024,7 +1025,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_utini5cccvn2hotlwtyw4enwwm: + /eslint-module-utils/2.7.4_l3rkqmr6ujglf4zsfjyz5e7jai: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -1045,26 +1046,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 3.2.7 - eslint: 8.26.0 + eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.26.0: + /eslint-plugin-es/4.1.0_eslint@8.27.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.26.0 + eslint: 8.27.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_yxvyo6v5zwzggfecalzmx54lre: + /eslint-plugin-import/2.26.0_jnohwm7eexgw7uduhweedcbnpe: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1074,19 +1075,19 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.40.1_wyqvi574yv7oiwfeinomdzmc3m - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 + '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.26.0 + eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_utini5cccvn2hotlwtyw4enwwm + eslint-module-utils: 2.7.4_l3rkqmr6ujglf4zsfjyz5e7jai has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.5 + object.values: 1.1.6 resolve: 1.22.1 tsconfig-paths: 3.14.1 transitivePeerDependencies: @@ -1095,16 +1096,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.3.0_eslint@8.26.0: - resolution: {integrity: sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==} + /eslint-plugin-n/15.5.1_eslint@8.27.0: + resolution: {integrity: sha512-kAd+xhZm7brHoFLzKLB7/FGRFJNg/srmv67mqb7tto22rpr4wv/LV6RuXzAfv3jbab7+k1wi42PsIhGviywaaw==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.26.0 - eslint-plugin-es: 4.1.0_eslint@8.26.0 - eslint-utils: 3.0.0_eslint@8.26.0 + eslint: 8.27.0 + eslint-plugin-es: 4.1.0_eslint@8.27.0 + eslint-utils: 3.0.0_eslint@8.27.0 ignore: 5.2.0 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -1119,13 +1120,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.1.1_eslint@8.26.0: + /eslint-plugin-promise/6.1.1_eslint@8.27.0: resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.26.0 + eslint: 8.27.0 dev: true /eslint-scope/5.1.1: @@ -1151,13 +1152,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.26.0: + /eslint-utils/3.0.0_eslint@8.27.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.26.0 + eslint: 8.27.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1176,13 +1177,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.26.0: - resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==} + /eslint/8.27.0: + resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: '@eslint/eslintrc': 1.3.3 - '@humanwhocodes/config-array': 0.11.6 + '@humanwhocodes/config-array': 0.11.7 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -1192,9 +1193,9 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.26.0 + eslint-utils: 3.0.0_eslint@8.27.0 eslint-visitor-keys: 3.3.0 - espree: 9.4.0 + espree: 9.4.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -1224,12 +1225,12 @@ packages: - supports-color dev: true - /espree/9.4.0: - resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 eslint-visitor-keys: 3.3.0 dev: true @@ -1811,6 +1812,10 @@ packages: engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -1839,8 +1844,8 @@ packages: object-keys: 1.1.1 dev: true - /object.values/1.1.5: - resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + /object.values/1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -2107,16 +2112,16 @@ packages: strip-ansi: 6.0.1 dev: true - /string.prototype.trimend/1.0.5: - resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.4 dev: true - /string.prototype.trimstart/1.0.5: - resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -2172,7 +2177,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_6hf6ijjdmrvgn4gwd23tocsh2m: + /ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2191,8 +2196,8 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.4 - acorn: 8.8.0 + '@types/node': 18.11.9 + acorn: 8.8.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 From c26baf34a7e09787a5f115f3c416583afee6f5e2 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Nov 2022 23:56:46 +0100 Subject: [PATCH 2604/3047] Release 8.4.19 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 869608c40..0c08029bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.19 +* Fixed whitespace preserving after AST transformations (by Romain Menke). + ## 8.4.18 * Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas). diff --git a/lib/processor.js b/lib/processor.js index 8342e4d4e..2590a3249 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.18' + this.version = '8.4.19' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 2f526793c..8f38c752a 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.18", + "version": "8.4.19", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 5113edb7a297fa6ec1e6d55b71d0e5a1d1f217d5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 21 Nov 2022 01:54:40 +0100 Subject: [PATCH 2605/3047] Update dependencies --- package.json | 10 +- pnpm-lock.yaml | 364 ++++++++++++++++++++++++------------------------- 2 files changed, 187 insertions(+), 187 deletions(-) diff --git a/package.json b/package.json index 8f38c752a..655811326 100755 --- a/package.json +++ b/package.json @@ -84,13 +84,13 @@ "@size-limit/preset-small-lib": "^8.1.0", "@types/fs-extra": "^9.0.13", "@types/node": "^18.11.9", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^5.43.0", + "@typescript-eslint/parser": "^5.43.0", "c8": "^7.12.0", "check-dts": "^0.6.7", "clean-publish": "^4.0.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.27.0", + "eslint": "^8.28.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.5.1", @@ -99,12 +99,12 @@ "fs-extra": "^10.1.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", - "postcss-parser-tests": "^8.5.1", + "postcss-parser-tests": "^8.5.2", "simple-git-hooks": "^2.8.1", "size-limit": "^8.1.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.1", - "typescript": "^4.8.4", + "typescript": "^4.9.3", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b063d10e4..ef712c059 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,13 +5,13 @@ specifiers: '@size-limit/preset-small-lib': ^8.1.0 '@types/fs-extra': ^9.0.13 '@types/node': ^18.11.9 - '@typescript-eslint/eslint-plugin': ^5.42.1 - '@typescript-eslint/parser': ^5.42.1 + '@typescript-eslint/eslint-plugin': ^5.43.0 + '@typescript-eslint/parser': ^5.43.0 c8: ^7.12.0 check-dts: ^0.6.7 clean-publish: ^4.0.1 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.27.0 + eslint: ^8.28.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 eslint-plugin-n: ^15.5.1 @@ -22,13 +22,13 @@ specifiers: nanoid: ^3.3.4 nanospy: ^0.5.0 picocolors: ^1.0.0 - postcss-parser-tests: ^8.5.1 + postcss-parser-tests: ^8.5.2 simple-git-hooks: ^2.8.1 size-limit: ^8.1.0 source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.9.1 - typescript: ^4.8.4 + typescript: ^4.9.3 uvu: ^0.5.6 dependencies: @@ -37,31 +37,31 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 48.0.0_hhsavnm2pg5jgrgbkvdgwcdyhu + '@logux/eslint-config': 48.0.0_ddji63nc6smk5hxrvk4cof73wu '@size-limit/preset-small-lib': 8.1.0_size-limit@8.1.0 '@types/fs-extra': 9.0.13 '@types/node': 18.11.9 - '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/eslint-plugin': 5.43.0_nqj4bdx4ekws7aecttskpih4py + '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a c8: 7.12.0 - check-dts: 0.6.7_typescript@4.8.4 + check-dts: 0.6.7_typescript@4.9.3 clean-publish: 4.0.1 concat-with-sourcemaps: 1.1.0 - eslint: 8.27.0 - eslint-config-standard: 17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m - eslint-plugin-import: 2.26.0_jnohwm7eexgw7uduhweedcbnpe - eslint-plugin-n: 15.5.1_eslint@8.27.0 + eslint: 8.28.0 + eslint-config-standard: 17.0.0_5dakk4wnrkkieagghiqvu5yn4y + eslint-plugin-import: 2.26.0_ivdjtymx6ubvknadox4oh4qsue + eslint-plugin-n: 15.5.1_eslint@8.28.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.1.1_eslint@8.27.0 + eslint-plugin-promise: 6.1.1_eslint@8.28.0 fs-extra: 10.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 - postcss-parser-tests: 8.5.1 + postcss-parser-tests: 8.5.2 simple-git-hooks: 2.8.1 size-limit: 8.1.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 - typescript: 4.8.4 + ts-node: 10.9.1_wup25etrarvlqkprac7h35hj7u + typescript: 4.9.3 uvu: 0.5.6 packages: @@ -77,8 +77,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/android-arm/0.15.13: - resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} + /@esbuild/android-arm/0.15.14: + resolution: {integrity: sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -86,8 +86,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.13: - resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} + /@esbuild/linux-loong64/0.15.14: + resolution: {integrity: sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -102,7 +102,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.1 - globals: 13.17.0 + globals: 13.18.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -160,7 +160,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/48.0.0_hhsavnm2pg5jgrgbkvdgwcdyhu: + /@logux/eslint-config/48.0.0_ddji63nc6smk5hxrvk4cof73wu: resolution: {integrity: sha512-4Lwgy14TmEbrp0Xsm7YjiptitLkigOAdqrnkYaNIgeMEe54hO6I99KueeS0348CFWqVAaV9g0eJQaPF6vCJGJg==} engines: {node: '>=10.0.0'} peerDependencies: @@ -171,12 +171,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.1.1 dependencies: - eslint: 8.27.0 - eslint-config-standard: 17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m - eslint-plugin-import: 2.26.0_jnohwm7eexgw7uduhweedcbnpe - eslint-plugin-n: 15.5.1_eslint@8.27.0 + eslint: 8.28.0 + eslint-config-standard: 17.0.0_5dakk4wnrkkieagghiqvu5yn4y + eslint-plugin-import: 2.26.0_ivdjtymx6ubvknadox4oh4qsue + eslint-plugin-n: 15.5.1_eslint@8.28.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.1.1_eslint@8.27.0 + eslint-plugin-promise: 6.1.1_eslint@8.28.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -206,7 +206,7 @@ packages: peerDependencies: size-limit: 8.1.0 dependencies: - esbuild: 0.15.13 + esbuild: 0.15.14 nanoid: 3.3.4 size-limit: 8.1.0 dev: true @@ -277,8 +277,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq: - resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} + /@typescript-eslint/eslint-plugin/5.43.0_nqj4bdx4ekws7aecttskpih4py: + resolution: {integrity: sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -288,24 +288,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - '@typescript-eslint/scope-manager': 5.42.1 - '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy - '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/type-utils': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@typescript-eslint/utils': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a debug: 4.3.4 - eslint: 8.27.0 + eslint: 8.28.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.8.4 - typescript: 4.8.4 + tsutils: 3.21.0_typescript@4.9.3 + typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==} + /@typescript-eslint/parser/5.43.0_hsf322ms6xhhd4b5ne6lb74y4a: + resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -314,26 +314,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.42.1 - '@typescript-eslint/types': 5.42.1 - '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.9.3 debug: 4.3.4 - eslint: 8.27.0 - typescript: 4.8.4 + eslint: 8.28.0 + typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.42.1: - resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==} + /@typescript-eslint/scope-manager/5.43.0: + resolution: {integrity: sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.42.1 - '@typescript-eslint/visitor-keys': 5.42.1 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 dev: true - /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} + /@typescript-eslint/type-utils/5.43.0_hsf322ms6xhhd4b5ne6lb74y4a: + resolution: {integrity: sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -342,23 +342,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.9.3 + '@typescript-eslint/utils': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a debug: 4.3.4 - eslint: 8.27.0 - tsutils: 3.21.0_typescript@4.8.4 - typescript: 4.8.4 + eslint: 8.28.0 + tsutils: 3.21.0_typescript@4.9.3 + typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.42.1: - resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==} + /@typescript-eslint/types/5.43.0: + resolution: {integrity: sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4: - resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} + /@typescript-eslint/typescript-estree/5.43.0_typescript@4.9.3: + resolution: {integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -366,43 +366,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.42.1 - '@typescript-eslint/visitor-keys': 5.42.1 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.8.4 - typescript: 4.8.4 + tsutils: 3.21.0_typescript@4.9.3 + typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} + /@typescript-eslint/utils/5.43.0_hsf322ms6xhhd4b5ne6lb74y4a: + resolution: {integrity: sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.42.1 - '@typescript-eslint/types': 5.42.1 - '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 - eslint: 8.27.0 + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.9.3 + eslint: 8.28.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.27.0 + eslint-utils: 3.0.0_eslint@8.28.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.42.1: - resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==} + /@typescript-eslint/visitor-keys/5.43.0: + resolution: {integrity: sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/types': 5.43.0 eslint-visitor-keys: 3.3.0 dev: true @@ -561,7 +561,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.8.4: + /check-dts/0.6.7_typescript@4.9.3: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true @@ -571,7 +571,7 @@ packages: fast-glob: 3.2.12 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.8.4 + typescript: 4.9.3 vfile-location: 4.0.1 dev: true @@ -782,8 +782,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.13: - resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} + /esbuild-android-64/0.15.14: + resolution: {integrity: sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -791,8 +791,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.13: - resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} + /esbuild-android-arm64/0.15.14: + resolution: {integrity: sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -800,8 +800,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.13: - resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} + /esbuild-darwin-64/0.15.14: + resolution: {integrity: sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -809,8 +809,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.13: - resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} + /esbuild-darwin-arm64/0.15.14: + resolution: {integrity: sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -818,8 +818,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.13: - resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} + /esbuild-freebsd-64/0.15.14: + resolution: {integrity: sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -827,8 +827,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.13: - resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} + /esbuild-freebsd-arm64/0.15.14: + resolution: {integrity: sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -836,8 +836,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.13: - resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} + /esbuild-linux-32/0.15.14: + resolution: {integrity: sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -845,8 +845,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.13: - resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} + /esbuild-linux-64/0.15.14: + resolution: {integrity: sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -854,8 +854,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.13: - resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} + /esbuild-linux-arm/0.15.14: + resolution: {integrity: sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -863,8 +863,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.13: - resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} + /esbuild-linux-arm64/0.15.14: + resolution: {integrity: sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -872,8 +872,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.13: - resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} + /esbuild-linux-mips64le/0.15.14: + resolution: {integrity: sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -881,8 +881,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.13: - resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} + /esbuild-linux-ppc64le/0.15.14: + resolution: {integrity: sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -890,8 +890,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.13: - resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} + /esbuild-linux-riscv64/0.15.14: + resolution: {integrity: sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -899,8 +899,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.13: - resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} + /esbuild-linux-s390x/0.15.14: + resolution: {integrity: sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -908,8 +908,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.13: - resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} + /esbuild-netbsd-64/0.15.14: + resolution: {integrity: sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -917,8 +917,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.13: - resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} + /esbuild-openbsd-64/0.15.14: + resolution: {integrity: sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -926,8 +926,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.13: - resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} + /esbuild-sunos-64/0.15.14: + resolution: {integrity: sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -935,8 +935,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.13: - resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} + /esbuild-windows-32/0.15.14: + resolution: {integrity: sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -944,8 +944,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.13: - resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} + /esbuild-windows-64/0.15.14: + resolution: {integrity: sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -953,8 +953,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.13: - resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} + /esbuild-windows-arm64/0.15.14: + resolution: {integrity: sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -962,34 +962,34 @@ packages: dev: true optional: true - /esbuild/0.15.13: - resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} + /esbuild/0.15.14: + resolution: {integrity: sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.13 - '@esbuild/linux-loong64': 0.15.13 - esbuild-android-64: 0.15.13 - esbuild-android-arm64: 0.15.13 - esbuild-darwin-64: 0.15.13 - esbuild-darwin-arm64: 0.15.13 - esbuild-freebsd-64: 0.15.13 - esbuild-freebsd-arm64: 0.15.13 - esbuild-linux-32: 0.15.13 - esbuild-linux-64: 0.15.13 - esbuild-linux-arm: 0.15.13 - esbuild-linux-arm64: 0.15.13 - esbuild-linux-mips64le: 0.15.13 - esbuild-linux-ppc64le: 0.15.13 - esbuild-linux-riscv64: 0.15.13 - esbuild-linux-s390x: 0.15.13 - esbuild-netbsd-64: 0.15.13 - esbuild-openbsd-64: 0.15.13 - esbuild-sunos-64: 0.15.13 - esbuild-windows-32: 0.15.13 - esbuild-windows-64: 0.15.13 - esbuild-windows-arm64: 0.15.13 + '@esbuild/android-arm': 0.15.14 + '@esbuild/linux-loong64': 0.15.14 + esbuild-android-64: 0.15.14 + esbuild-android-arm64: 0.15.14 + esbuild-darwin-64: 0.15.14 + esbuild-darwin-arm64: 0.15.14 + esbuild-freebsd-64: 0.15.14 + esbuild-freebsd-arm64: 0.15.14 + esbuild-linux-32: 0.15.14 + esbuild-linux-64: 0.15.14 + esbuild-linux-arm: 0.15.14 + esbuild-linux-arm64: 0.15.14 + esbuild-linux-mips64le: 0.15.14 + esbuild-linux-ppc64le: 0.15.14 + esbuild-linux-riscv64: 0.15.14 + esbuild-linux-s390x: 0.15.14 + esbuild-netbsd-64: 0.15.14 + esbuild-openbsd-64: 0.15.14 + esbuild-sunos-64: 0.15.14 + esbuild-windows-32: 0.15.14 + esbuild-windows-64: 0.15.14 + esbuild-windows-arm64: 0.15.14 dev: true /escalade/3.1.1: @@ -1002,7 +1002,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_qmmcbu32ybj7ict4ieqqyvwr3m: + /eslint-config-standard/17.0.0_5dakk4wnrkkieagghiqvu5yn4y: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -1010,10 +1010,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.27.0 - eslint-plugin-import: 2.26.0_jnohwm7eexgw7uduhweedcbnpe - eslint-plugin-n: 15.5.1_eslint@8.27.0 - eslint-plugin-promise: 6.1.1_eslint@8.27.0 + eslint: 8.28.0 + eslint-plugin-import: 2.26.0_ivdjtymx6ubvknadox4oh4qsue + eslint-plugin-n: 15.5.1_eslint@8.28.0 + eslint-plugin-promise: 6.1.1_eslint@8.28.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1025,7 +1025,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_l3rkqmr6ujglf4zsfjyz5e7jai: + /eslint-module-utils/2.7.4_4sj2pgnhb6wbtprrvnb5kjfgfe: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -1046,26 +1046,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a debug: 3.2.7 - eslint: 8.27.0 + eslint: 8.28.0 eslint-import-resolver-node: 0.3.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.27.0: + /eslint-plugin-es/4.1.0_eslint@8.28.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.27.0 + eslint: 8.28.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_jnohwm7eexgw7uduhweedcbnpe: + /eslint-plugin-import/2.26.0_ivdjtymx6ubvknadox4oh4qsue: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1075,14 +1075,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a array-includes: 3.1.6 array.prototype.flat: 1.3.1 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.27.0 + eslint: 8.28.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_l3rkqmr6ujglf4zsfjyz5e7jai + eslint-module-utils: 2.7.4_4sj2pgnhb6wbtprrvnb5kjfgfe has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -1096,16 +1096,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.5.1_eslint@8.27.0: + /eslint-plugin-n/15.5.1_eslint@8.28.0: resolution: {integrity: sha512-kAd+xhZm7brHoFLzKLB7/FGRFJNg/srmv67mqb7tto22rpr4wv/LV6RuXzAfv3jbab7+k1wi42PsIhGviywaaw==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.27.0 - eslint-plugin-es: 4.1.0_eslint@8.27.0 - eslint-utils: 3.0.0_eslint@8.27.0 + eslint: 8.28.0 + eslint-plugin-es: 4.1.0_eslint@8.28.0 + eslint-utils: 3.0.0_eslint@8.28.0 ignore: 5.2.0 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -1120,13 +1120,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.1.1_eslint@8.27.0: + /eslint-plugin-promise/6.1.1_eslint@8.28.0: resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.27.0 + eslint: 8.28.0 dev: true /eslint-scope/5.1.1: @@ -1152,13 +1152,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.27.0: + /eslint-utils/3.0.0_eslint@8.28.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.27.0 + eslint: 8.28.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1177,8 +1177,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.27.0: - resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==} + /eslint/8.28.0: + resolution: {integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1193,7 +1193,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.27.0 + eslint-utils: 3.0.0_eslint@8.28.0 eslint-visitor-keys: 3.3.0 espree: 9.4.1 esquery: 1.4.0 @@ -1202,7 +1202,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.17.0 + globals: 13.18.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 @@ -1419,8 +1419,8 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/13.17.0: - resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} + /globals/13.18.0: + resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1924,8 +1924,8 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss-parser-tests/8.5.1: - resolution: {integrity: sha512-gENBfgBSdVl3Bu+6iCcgGb1W0YrCizwBgrbnG8UW9AyB46dHuUxqG92Q8Ug5XkesXdpSoRahdNvSKwhipbNV1g==} + /postcss-parser-tests/8.5.2: + resolution: {integrity: sha512-eR26LFtcXDtVtKAoWIqyt5qKDn/UJTU2k/DOst/R/XIXF55etpQbwXisB0IS2DGqDj0FKFxgO174R+uz/mQTSA==} dependencies: picocolors: 1.0.0 dev: true @@ -2177,7 +2177,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54: + /ts-node/10.9.1_wup25etrarvlqkprac7h35hj7u: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2203,7 +2203,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.8.4 + typescript: 4.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2221,14 +2221,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.8.4: + /tsutils/3.21.0_typescript@4.9.3: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.8.4 + typescript: 4.9.3 dev: true /type-check/0.4.0: @@ -2243,8 +2243,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.8.4: - resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + /typescript/4.9.3: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2303,23 +2303,23 @@ packages: resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==} dependencies: '@types/unist': 2.0.6 - vfile: 5.3.5 + vfile: 5.3.6 dev: true - /vfile-message/3.1.2: - resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} + /vfile-message/3.1.3: + resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==} dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.2 dev: true - /vfile/5.3.5: - resolution: {integrity: sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ==} + /vfile/5.3.6: + resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.2 - vfile-message: 3.1.2 + vfile-message: 3.1.3 dev: true /which-boxed-primitive/1.0.2: From 3cac84ae46a5f4427393cce549af5fd9f343e837 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 21 Nov 2022 01:58:28 +0100 Subject: [PATCH 2606/3047] Fix type tests --- test/errors.ts | 2 +- tsconfig.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/test/errors.ts b/test/errors.ts index faa1659e6..be471f04e 100644 --- a/test/errors.ts +++ b/test/errors.ts @@ -1,7 +1,7 @@ import { PluginCreator } from '../lib/postcss.js' const plugin: PluginCreator<{ a: number }> = opts => { - // THROWS Object is possibly 'undefined' + // THROWS 'opts' is possibly 'undefined' console.log(opts.a) // THROWS Property 'b' does not exist on type '{ a: number; }' console.log(opts?.b) diff --git a/tsconfig.json b/tsconfig.json index 9d5267d96..200ac7802 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "allowJs": true, "strict": true, "noEmit": true, + "skipLibCheck": true, "esModuleInterop": true } } From db935f19f067bb0db2121a31b4dfd429f7e5a889 Mon Sep 17 00:00:00 2001 From: Romain Menke Date: Sun, 4 Dec 2022 11:21:59 +0100 Subject: [PATCH 2607/3047] invalid sourcemap with at layer --- test/at-rule.test.ts | 28 ++++++++++++++++++++++++++++ test/map.test.ts | 15 +++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/test/at-rule.test.ts b/test/at-rule.test.ts index 7f40a4aab..6e66409f0 100755 --- a/test/at-rule.test.ts +++ b/test/at-rule.test.ts @@ -48,4 +48,32 @@ test('clone spaces from another at-rule', () => { is(rule.toString(), '@page 1{}') }) +test('at layer', () => { + let root = parse(`@layer foo {\n @layer one, two\n}`) + let layer1 = root.nodes[0] as AtRule; + let layer2 = layer1.nodes[0] as AtRule; + + is(root.source?.start?.offset, 0) + is(root.source?.start?.line, 1) + is(root.source?.start?.column, 1) + + is(layer1.source?.start?.offset, 0) + is(layer1.source?.start?.line, 1) + is(layer1.source?.start?.column, 1) + + is(layer1.source?.end?.offset, 31) + is(layer1.source?.end?.line, 3) + is(layer1.source?.end?.column, 1) + + is(layer2.source?.start?.offset, 15) + is(layer2.source?.start?.line, 2) + is(layer2.source?.start?.column, 3) + + is(layer2.source?.end?.offset, 29) + is(layer2.source?.end?.line, 2) + is(layer2.source?.end?.column, 17) + + is(root.toString(), '@layer foo {\n @layer one, two\n}') +}) + test.run() diff --git a/test/map.test.ts b/test/map.test.ts index 91a459031..73a87e3aa 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -104,6 +104,21 @@ test('generate right source map', () => { }) }) +test('generate right source map for at layer', () => { + let css = '@layer extensions {\n @layer one, two\n}' + let processor = postcss(() => { + /* noop */ + }) + + let result = processor.process(css, { + from: 'a.css', + to: 'b.css', + map: true + }) + + read(result) +}) + test('changes previous source map', () => { let css = 'a { color: black }' From 744b15f8c507a9a7d1a92a94752b4926bce12f82 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 11 Dec 2022 11:48:21 +0100 Subject: [PATCH 2608/3047] Update dependencies --- package.json | 16 +- pnpm-lock.yaml | 425 +++++++++++++++++++++++++------------------------ 2 files changed, 224 insertions(+), 217 deletions(-) diff --git a/package.json b/package.json index 655811326..8e0444c3c 100755 --- a/package.json +++ b/package.json @@ -83,20 +83,20 @@ "@logux/eslint-config": "^48.0.0", "@size-limit/preset-small-lib": "^8.1.0", "@types/fs-extra": "^9.0.13", - "@types/node": "^18.11.9", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.43.0", + "@types/node": "^18.11.13", + "@typescript-eslint/eslint-plugin": "^5.46.0", + "@typescript-eslint/parser": "^5.46.0", "c8": "^7.12.0", "check-dts": "^0.6.7", - "clean-publish": "^4.0.1", + "clean-publish": "^4.0.2", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^8.28.0", + "eslint": "^8.29.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.5.1", + "eslint-plugin-n": "^15.6.0", "eslint-plugin-prefer-let": "^3.0.1", "eslint-plugin-promise": "^6.1.1", - "fs-extra": "^10.1.0", + "fs-extra": "^11.1.0", "nanodelay": "^1.0.8", "nanospy": "^0.5.0", "postcss-parser-tests": "^8.5.2", @@ -104,7 +104,7 @@ "size-limit": "^8.1.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.1", - "typescript": "^4.9.3", + "typescript": "^4.9.4", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef712c059..da84c9bc2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,20 +4,20 @@ specifiers: '@logux/eslint-config': ^48.0.0 '@size-limit/preset-small-lib': ^8.1.0 '@types/fs-extra': ^9.0.13 - '@types/node': ^18.11.9 - '@typescript-eslint/eslint-plugin': ^5.43.0 - '@typescript-eslint/parser': ^5.43.0 + '@types/node': ^18.11.13 + '@typescript-eslint/eslint-plugin': ^5.46.0 + '@typescript-eslint/parser': ^5.46.0 c8: ^7.12.0 check-dts: ^0.6.7 - clean-publish: ^4.0.1 + clean-publish: ^4.0.2 concat-with-sourcemaps: ^1.1.0 - eslint: ^8.28.0 + eslint: ^8.29.0 eslint-config-standard: ^17.0.0 eslint-plugin-import: ^2.26.0 - eslint-plugin-n: ^15.5.1 + eslint-plugin-n: ^15.6.0 eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.1.1 - fs-extra: ^10.1.0 + fs-extra: ^11.1.0 nanodelay: ^1.0.8 nanoid: ^3.3.4 nanospy: ^0.5.0 @@ -28,7 +28,7 @@ specifiers: source-map-js: ^1.0.2 strip-ansi: ^6.0.1 ts-node: ^10.9.1 - typescript: ^4.9.3 + typescript: ^4.9.4 uvu: ^0.5.6 dependencies: @@ -37,31 +37,31 @@ dependencies: source-map-js: 1.0.2 devDependencies: - '@logux/eslint-config': 48.0.0_ddji63nc6smk5hxrvk4cof73wu + '@logux/eslint-config': 48.0.0_ferl6t2t2aww4iccbd3lbpsal4 '@size-limit/preset-small-lib': 8.1.0_size-limit@8.1.0 '@types/fs-extra': 9.0.13 - '@types/node': 18.11.9 - '@typescript-eslint/eslint-plugin': 5.43.0_nqj4bdx4ekws7aecttskpih4py - '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@types/node': 18.11.13 + '@typescript-eslint/eslint-plugin': 5.46.0_5mle7isnkfgjmrghnnczirv6iy + '@typescript-eslint/parser': 5.46.0_ha6vam6werchizxrnqvarmz2zu c8: 7.12.0 - check-dts: 0.6.7_typescript@4.9.3 - clean-publish: 4.0.1 + check-dts: 0.6.7_typescript@4.9.4 + clean-publish: 4.0.2 concat-with-sourcemaps: 1.1.0 - eslint: 8.28.0 - eslint-config-standard: 17.0.0_5dakk4wnrkkieagghiqvu5yn4y - eslint-plugin-import: 2.26.0_ivdjtymx6ubvknadox4oh4qsue - eslint-plugin-n: 15.5.1_eslint@8.28.0 + eslint: 8.29.0 + eslint-config-standard: 17.0.0_wnkmxhw54rcoqx42l6oqxte7qq + eslint-plugin-import: 2.26.0_jx43xxcguvnqqmtmaaygwl7cmu + eslint-plugin-n: 15.6.0_eslint@8.29.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.1.1_eslint@8.28.0 - fs-extra: 10.1.0 + eslint-plugin-promise: 6.1.1_eslint@8.29.0 + fs-extra: 11.1.0 nanodelay: 1.0.8 nanospy: 0.5.0 postcss-parser-tests: 8.5.2 simple-git-hooks: 2.8.1 size-limit: 8.1.0 strip-ansi: 6.0.1 - ts-node: 10.9.1_wup25etrarvlqkprac7h35hj7u - typescript: 4.9.3 + ts-node: 10.9.1_73migmg77y47omm5253gettkxi + typescript: 4.9.4 uvu: 0.5.6 packages: @@ -77,8 +77,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/android-arm/0.15.14: - resolution: {integrity: sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA==} + /@esbuild/android-arm/0.15.18: + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -86,8 +86,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.14: - resolution: {integrity: sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg==} + /@esbuild/linux-loong64/0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -103,7 +103,7 @@ packages: debug: 4.3.4 espree: 9.4.1 globals: 13.18.0 - ignore: 5.2.0 + ignore: 5.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -160,7 +160,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@logux/eslint-config/48.0.0_ddji63nc6smk5hxrvk4cof73wu: + /@logux/eslint-config/48.0.0_ferl6t2t2aww4iccbd3lbpsal4: resolution: {integrity: sha512-4Lwgy14TmEbrp0Xsm7YjiptitLkigOAdqrnkYaNIgeMEe54hO6I99KueeS0348CFWqVAaV9g0eJQaPF6vCJGJg==} engines: {node: '>=10.0.0'} peerDependencies: @@ -171,12 +171,12 @@ packages: eslint-plugin-prefer-let: ^3.0.1 eslint-plugin-promise: ^6.1.1 dependencies: - eslint: 8.28.0 - eslint-config-standard: 17.0.0_5dakk4wnrkkieagghiqvu5yn4y - eslint-plugin-import: 2.26.0_ivdjtymx6ubvknadox4oh4qsue - eslint-plugin-n: 15.5.1_eslint@8.28.0 + eslint: 8.29.0 + eslint-config-standard: 17.0.0_wnkmxhw54rcoqx42l6oqxte7qq + eslint-plugin-import: 2.26.0_jx43xxcguvnqqmtmaaygwl7cmu + eslint-plugin-n: 15.6.0_eslint@8.29.0 eslint-plugin-prefer-let: 3.0.1 - eslint-plugin-promise: 6.1.1_eslint@8.28.0 + eslint-plugin-promise: 6.1.1_eslint@8.29.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -197,7 +197,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 + fastq: 1.14.0 dev: true /@size-limit/esbuild/8.1.0_size-limit@8.1.0: @@ -206,7 +206,7 @@ packages: peerDependencies: size-limit: 8.1.0 dependencies: - esbuild: 0.15.14 + esbuild: 0.15.18 nanoid: 3.3.4 size-limit: 8.1.0 dev: true @@ -250,7 +250,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.11.13 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -265,8 +265,8 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.11.9: - resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + /@types/node/18.11.13: + resolution: {integrity: sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==} dev: true /@types/semver/7.3.13: @@ -277,8 +277,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.43.0_nqj4bdx4ekws7aecttskpih4py: - resolution: {integrity: sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==} + /@typescript-eslint/eslint-plugin/5.46.0_5mle7isnkfgjmrghnnczirv6iy: + resolution: {integrity: sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -288,24 +288,24 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a - '@typescript-eslint/scope-manager': 5.43.0 - '@typescript-eslint/type-utils': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a - '@typescript-eslint/utils': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@typescript-eslint/parser': 5.46.0_ha6vam6werchizxrnqvarmz2zu + '@typescript-eslint/scope-manager': 5.46.0 + '@typescript-eslint/type-utils': 5.46.0_ha6vam6werchizxrnqvarmz2zu + '@typescript-eslint/utils': 5.46.0_ha6vam6werchizxrnqvarmz2zu debug: 4.3.4 - eslint: 8.28.0 - ignore: 5.2.0 + eslint: 8.29.0 + ignore: 5.2.1 natural-compare-lite: 1.4.0 regexpp: 3.2.0 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.3 - typescript: 4.9.3 + tsutils: 3.21.0_typescript@4.9.4 + typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.43.0_hsf322ms6xhhd4b5ne6lb74y4a: - resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} + /@typescript-eslint/parser/5.46.0_ha6vam6werchizxrnqvarmz2zu: + resolution: {integrity: sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -314,26 +314,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.43.0 - '@typescript-eslint/types': 5.43.0 - '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.9.3 + '@typescript-eslint/scope-manager': 5.46.0 + '@typescript-eslint/types': 5.46.0 + '@typescript-eslint/typescript-estree': 5.46.0_typescript@4.9.4 debug: 4.3.4 - eslint: 8.28.0 - typescript: 4.9.3 + eslint: 8.29.0 + typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.43.0: - resolution: {integrity: sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==} + /@typescript-eslint/scope-manager/5.46.0: + resolution: {integrity: sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.43.0 - '@typescript-eslint/visitor-keys': 5.43.0 + '@typescript-eslint/types': 5.46.0 + '@typescript-eslint/visitor-keys': 5.46.0 dev: true - /@typescript-eslint/type-utils/5.43.0_hsf322ms6xhhd4b5ne6lb74y4a: - resolution: {integrity: sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==} + /@typescript-eslint/type-utils/5.46.0_ha6vam6werchizxrnqvarmz2zu: + resolution: {integrity: sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -342,23 +342,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.9.3 - '@typescript-eslint/utils': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@typescript-eslint/typescript-estree': 5.46.0_typescript@4.9.4 + '@typescript-eslint/utils': 5.46.0_ha6vam6werchizxrnqvarmz2zu debug: 4.3.4 - eslint: 8.28.0 - tsutils: 3.21.0_typescript@4.9.3 - typescript: 4.9.3 + eslint: 8.29.0 + tsutils: 3.21.0_typescript@4.9.4 + typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.43.0: - resolution: {integrity: sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==} + /@typescript-eslint/types/5.46.0: + resolution: {integrity: sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.43.0_typescript@4.9.3: - resolution: {integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==} + /@typescript-eslint/typescript-estree/5.46.0_typescript@4.9.4: + resolution: {integrity: sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -366,43 +366,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.43.0 - '@typescript-eslint/visitor-keys': 5.43.0 + '@typescript-eslint/types': 5.46.0 + '@typescript-eslint/visitor-keys': 5.46.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.3 - typescript: 4.9.3 + tsutils: 3.21.0_typescript@4.9.4 + typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.43.0_hsf322ms6xhhd4b5ne6lb74y4a: - resolution: {integrity: sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==} + /@typescript-eslint/utils/5.46.0_ha6vam6werchizxrnqvarmz2zu: + resolution: {integrity: sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.43.0 - '@typescript-eslint/types': 5.43.0 - '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.9.3 - eslint: 8.28.0 + '@typescript-eslint/scope-manager': 5.46.0 + '@typescript-eslint/types': 5.46.0 + '@typescript-eslint/typescript-estree': 5.46.0_typescript@4.9.4 + eslint: 8.29.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.28.0 + eslint-utils: 3.0.0_eslint@8.29.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.43.0: - resolution: {integrity: sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==} + /@typescript-eslint/visitor-keys/5.46.0: + resolution: {integrity: sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/types': 5.46.0 eslint-visitor-keys: 3.3.0 dev: true @@ -446,8 +446,8 @@ packages: color-convert: 2.0.1 dev: true - /anymatch/3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 @@ -468,7 +468,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 get-intrinsic: 1.1.3 is-string: 1.0.7 dev: true @@ -484,7 +484,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 es-shim-unscopables: 1.0.0 dev: true @@ -561,7 +561,7 @@ packages: supports-color: 7.2.0 dev: true - /check-dts/0.6.7_typescript@4.9.3: + /check-dts/0.6.7_typescript@4.9.4: resolution: {integrity: sha512-OmULnQcJ06C5TuQJcjWi/iaPN9LPc3NNtgE/AXFHXtDBadTRxIbTbl+3vVsy6A0ToULzI2jYY/pM1GOmEJJGWg==} engines: {node: '>=12.16.0'} hasBin: true @@ -571,7 +571,7 @@ packages: fast-glob: 3.2.12 nanospinner: 1.1.0 picocolors: 1.0.0 - typescript: 4.9.3 + typescript: 4.9.4 vfile-location: 4.0.1 dev: true @@ -579,7 +579,7 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: - anymatch: 3.1.2 + anymatch: 3.1.3 braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 @@ -594,8 +594,8 @@ packages: resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==} dev: true - /clean-publish/4.0.1: - resolution: {integrity: sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==} + /clean-publish/4.0.2: + resolution: {integrity: sha512-WLg3deN5jTs6W3JjioTywlfmFMvOFTTwkhUQ6QJ/6b4Um7pqOM5g/NivYnUFTasi3j3BARAP6HIKxGWlWPJ8hw==} engines: {node: '>= 16.0.0'} hasBin: true dependencies: @@ -737,8 +737,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /es-abstract/1.20.4: - resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + /es-abstract/1.20.5: + resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -747,6 +747,7 @@ packages: function.prototype.name: 1.1.5 get-intrinsic: 1.1.3 get-symbol-description: 1.0.0 + gopd: 1.0.1 has: 1.0.3 has-property-descriptors: 1.0.0 has-symbols: 1.0.3 @@ -782,8 +783,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.14: - resolution: {integrity: sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg==} + /esbuild-android-64/0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -791,8 +792,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.14: - resolution: {integrity: sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg==} + /esbuild-android-arm64/0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -800,8 +801,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.14: - resolution: {integrity: sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg==} + /esbuild-darwin-64/0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -809,8 +810,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.14: - resolution: {integrity: sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A==} + /esbuild-darwin-arm64/0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -818,8 +819,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.14: - resolution: {integrity: sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA==} + /esbuild-freebsd-64/0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -827,8 +828,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.14: - resolution: {integrity: sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg==} + /esbuild-freebsd-arm64/0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -836,8 +837,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.14: - resolution: {integrity: sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA==} + /esbuild-linux-32/0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -845,8 +846,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.14: - resolution: {integrity: sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw==} + /esbuild-linux-64/0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -854,8 +855,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.14: - resolution: {integrity: sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q==} + /esbuild-linux-arm/0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -863,8 +864,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.14: - resolution: {integrity: sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg==} + /esbuild-linux-arm64/0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -872,8 +873,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.14: - resolution: {integrity: sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA==} + /esbuild-linux-mips64le/0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -881,8 +882,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.14: - resolution: {integrity: sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w==} + /esbuild-linux-ppc64le/0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -890,8 +891,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.14: - resolution: {integrity: sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q==} + /esbuild-linux-riscv64/0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -899,8 +900,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.14: - resolution: {integrity: sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw==} + /esbuild-linux-s390x/0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -908,8 +909,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.14: - resolution: {integrity: sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ==} + /esbuild-netbsd-64/0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -917,8 +918,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.14: - resolution: {integrity: sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA==} + /esbuild-openbsd-64/0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -926,8 +927,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.14: - resolution: {integrity: sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q==} + /esbuild-sunos-64/0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -935,8 +936,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.14: - resolution: {integrity: sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg==} + /esbuild-windows-32/0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -944,8 +945,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.14: - resolution: {integrity: sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog==} + /esbuild-windows-64/0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -953,8 +954,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.14: - resolution: {integrity: sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw==} + /esbuild-windows-arm64/0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -962,34 +963,34 @@ packages: dev: true optional: true - /esbuild/0.15.14: - resolution: {integrity: sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ==} + /esbuild/0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.14 - '@esbuild/linux-loong64': 0.15.14 - esbuild-android-64: 0.15.14 - esbuild-android-arm64: 0.15.14 - esbuild-darwin-64: 0.15.14 - esbuild-darwin-arm64: 0.15.14 - esbuild-freebsd-64: 0.15.14 - esbuild-freebsd-arm64: 0.15.14 - esbuild-linux-32: 0.15.14 - esbuild-linux-64: 0.15.14 - esbuild-linux-arm: 0.15.14 - esbuild-linux-arm64: 0.15.14 - esbuild-linux-mips64le: 0.15.14 - esbuild-linux-ppc64le: 0.15.14 - esbuild-linux-riscv64: 0.15.14 - esbuild-linux-s390x: 0.15.14 - esbuild-netbsd-64: 0.15.14 - esbuild-openbsd-64: 0.15.14 - esbuild-sunos-64: 0.15.14 - esbuild-windows-32: 0.15.14 - esbuild-windows-64: 0.15.14 - esbuild-windows-arm64: 0.15.14 + '@esbuild/android-arm': 0.15.18 + '@esbuild/linux-loong64': 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 dev: true /escalade/3.1.1: @@ -1002,7 +1003,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_5dakk4wnrkkieagghiqvu5yn4y: + /eslint-config-standard/17.0.0_wnkmxhw54rcoqx42l6oqxte7qq: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -1010,10 +1011,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.28.0 - eslint-plugin-import: 2.26.0_ivdjtymx6ubvknadox4oh4qsue - eslint-plugin-n: 15.5.1_eslint@8.28.0 - eslint-plugin-promise: 6.1.1_eslint@8.28.0 + eslint: 8.29.0 + eslint-plugin-import: 2.26.0_jx43xxcguvnqqmtmaaygwl7cmu + eslint-plugin-n: 15.6.0_eslint@8.29.0 + eslint-plugin-promise: 6.1.1_eslint@8.29.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -1025,7 +1026,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_4sj2pgnhb6wbtprrvnb5kjfgfe: + /eslint-module-utils/2.7.4_gt5xgaqja2wfyrirr5sgi3l66m: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -1046,26 +1047,26 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@typescript-eslint/parser': 5.46.0_ha6vam6werchizxrnqvarmz2zu debug: 3.2.7 - eslint: 8.28.0 + eslint: 8.29.0 eslint-import-resolver-node: 0.3.6 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.28.0: + /eslint-plugin-es/4.1.0_eslint@8.29.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.28.0 + eslint: 8.29.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_ivdjtymx6ubvknadox4oh4qsue: + /eslint-plugin-import/2.26.0_jx43xxcguvnqqmtmaaygwl7cmu: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1075,14 +1076,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a + '@typescript-eslint/parser': 5.46.0_ha6vam6werchizxrnqvarmz2zu array-includes: 3.1.6 array.prototype.flat: 1.3.1 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.28.0 + eslint: 8.29.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_4sj2pgnhb6wbtprrvnb5kjfgfe + eslint-module-utils: 2.7.4_gt5xgaqja2wfyrirr5sgi3l66m has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -1096,17 +1097,17 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.5.1_eslint@8.28.0: - resolution: {integrity: sha512-kAd+xhZm7brHoFLzKLB7/FGRFJNg/srmv67mqb7tto22rpr4wv/LV6RuXzAfv3jbab7+k1wi42PsIhGviywaaw==} + /eslint-plugin-n/15.6.0_eslint@8.29.0: + resolution: {integrity: sha512-Hd/F7wz4Mj44Jp0H6Jtty13NcE69GNTY0rVlgTIj1XBnGGVI6UTdDrpE6vqu3AHo07bygq/N+7OH/lgz1emUJw==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.28.0 - eslint-plugin-es: 4.1.0_eslint@8.28.0 - eslint-utils: 3.0.0_eslint@8.28.0 - ignore: 5.2.0 + eslint: 8.29.0 + eslint-plugin-es: 4.1.0_eslint@8.29.0 + eslint-utils: 3.0.0_eslint@8.29.0 + ignore: 5.2.1 is-core-module: 2.11.0 minimatch: 3.1.2 resolve: 1.22.1 @@ -1120,13 +1121,13 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-promise/6.1.1_eslint@8.28.0: + /eslint-plugin-promise/6.1.1_eslint@8.29.0: resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.28.0 + eslint: 8.29.0 dev: true /eslint-scope/5.1.1: @@ -1152,13 +1153,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.28.0: + /eslint-utils/3.0.0_eslint@8.29.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.28.0 + eslint: 8.29.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1177,8 +1178,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.28.0: - resolution: {integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==} + /eslint/8.29.0: + resolution: {integrity: sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -1193,7 +1194,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.28.0 + eslint-utils: 3.0.0_eslint@8.29.0 eslint-visitor-keys: 3.3.0 espree: 9.4.1 esquery: 1.4.0 @@ -1204,12 +1205,12 @@ packages: glob-parent: 6.0.2 globals: 13.18.0 grapheme-splitter: 1.0.4 - ignore: 5.2.0 + ignore: 5.2.1 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.1.5 + js-sdsl: 4.2.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -1286,8 +1287,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq/1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + /fastq/1.14.0: + resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} dependencies: reusify: 1.0.4 dev: true @@ -1334,9 +1335,9 @@ packages: signal-exit: 3.0.7 dev: true - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + /fs-extra/11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.10 jsonfile: 6.1.0 @@ -1365,7 +1366,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 functions-have-names: 1.2.3 dev: true @@ -1433,11 +1434,17 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.2.12 - ignore: 5.2.0 + ignore: 5.2.1 merge2: 1.4.1 slash: 3.0.0 dev: true + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.1.3 + dev: true + /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true @@ -1484,8 +1491,8 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /ignore/5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + /ignore/5.2.1: + resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} engines: {node: '>= 4'} dev: true @@ -1665,8 +1672,8 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /js-sdsl/4.1.5: - resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} + /js-sdsl/4.2.0: + resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} dev: true /js-yaml/4.1.0: @@ -1850,7 +1857,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /once/1.4.0: @@ -2117,7 +2124,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /string.prototype.trimstart/1.0.6: @@ -2125,7 +2132,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /strip-ansi/6.0.1: @@ -2177,7 +2184,7 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.9.1_wup25etrarvlqkprac7h35hj7u: + /ts-node/10.9.1_73migmg77y47omm5253gettkxi: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -2196,14 +2203,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.9 + '@types/node': 18.11.13 acorn: 8.8.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.3 + typescript: 4.9.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2221,14 +2228,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.9.3: + /tsutils/3.21.0_typescript@4.9.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.9.3 + typescript: 4.9.4 dev: true /type-check/0.4.0: @@ -2243,8 +2250,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.9.3: - resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} + /typescript/4.9.4: + resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} engines: {node: '>=4.2.0'} hasBin: true dev: true From d585976fc1e09f81f59fd0e3f3ef908b3dc87273 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 11 Dec 2022 11:49:28 +0100 Subject: [PATCH 2609/3047] Fix CI --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9a57fe3e9..953512cec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests - run: pnpm unit + run: pnpm run unit old: runs-on: ubuntu-latest strategy: @@ -74,7 +74,7 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests - run: pnpm unit + run: pnpm run unit windows: runs-on: windows-latest name: Windows Quick @@ -93,4 +93,4 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile --ignore-scripts - name: Run unit tests - run: pnpm unit + run: pnpm run unit From 20122e50b707b52f13a03db0310adc4e5a9c8650 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 11 Dec 2022 17:33:17 +0100 Subject: [PATCH 2610/3047] Fix childless at-rule map generation --- lib/map-generator.js | 4 +++- test/at-rule.test.ts | 28 ---------------------------- test/map.test.ts | 2 +- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 58290aa60..a1ea65e1d 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -298,7 +298,9 @@ class MapGenerator { if (node && type !== 'start') { let p = node.parent || { raws: {} } - if (node.type !== 'decl' || node !== p.last || p.raws.semicolon) { + let childless = + node.type === 'decl' || (node.type === 'atrule' && !node.nodes) + if (!childless || node !== p.last || p.raws.semicolon) { if (node.source && node.source.end) { mapping.source = this.sourcePath(node) mapping.original.line = node.source.end.line diff --git a/test/at-rule.test.ts b/test/at-rule.test.ts index 6e66409f0..7f40a4aab 100755 --- a/test/at-rule.test.ts +++ b/test/at-rule.test.ts @@ -48,32 +48,4 @@ test('clone spaces from another at-rule', () => { is(rule.toString(), '@page 1{}') }) -test('at layer', () => { - let root = parse(`@layer foo {\n @layer one, two\n}`) - let layer1 = root.nodes[0] as AtRule; - let layer2 = layer1.nodes[0] as AtRule; - - is(root.source?.start?.offset, 0) - is(root.source?.start?.line, 1) - is(root.source?.start?.column, 1) - - is(layer1.source?.start?.offset, 0) - is(layer1.source?.start?.line, 1) - is(layer1.source?.start?.column, 1) - - is(layer1.source?.end?.offset, 31) - is(layer1.source?.end?.line, 3) - is(layer1.source?.end?.column, 1) - - is(layer2.source?.start?.offset, 15) - is(layer2.source?.start?.line, 2) - is(layer2.source?.start?.column, 3) - - is(layer2.source?.end?.offset, 29) - is(layer2.source?.end?.line, 2) - is(layer2.source?.end?.column, 17) - - is(root.toString(), '@layer foo {\n @layer one, two\n}') -}) - test.run() diff --git a/test/map.test.ts b/test/map.test.ts index 73a87e3aa..08847464f 100755 --- a/test/map.test.ts +++ b/test/map.test.ts @@ -104,7 +104,7 @@ test('generate right source map', () => { }) }) -test('generate right source map for at layer', () => { +test('generates right source map for @layer', () => { let css = '@layer extensions {\n @layer one, two\n}' let processor = postcss(() => { /* noop */ From 905082a5c1a0246e9187d5c8535ad5c576c18365 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 11 Dec 2022 18:31:43 +0100 Subject: [PATCH 2611/3047] Add Node.js 10 to CI --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 953512cec..af5f2ee8c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -57,6 +57,7 @@ jobs: matrix: node-version: - 12 + - 10 name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository From 1d4c509c114a0dd8270cb5241c5eee7d01f91674 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 11 Dec 2022 18:33:59 +0100 Subject: [PATCH 2612/3047] Release 8.4.20 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c08029bb..952bba335 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.4.20 +* Fixed source map generation for childless at-rules like `@layer`. + ## 8.4.19 * Fixed whitespace preserving after AST transformations (by Romain Menke). diff --git a/lib/processor.js b/lib/processor.js index 2590a3249..1644f4376 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.19' + this.version = '8.4.20' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 8e0444c3c..a7ee1940b 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.19", + "version": "8.4.20", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 29f516820ccaf7f516341653148249996f605793 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Thu, 5 Jan 2023 00:08:12 +0100 Subject: [PATCH 2613/3047] Update postcss-html and postcss-markdown repositories --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf75fff99..2922836ce 100644 --- a/README.md +++ b/README.md @@ -177,8 +177,8 @@ you can write a parser and/or stringifier to extend PostCSS. [`postcss-less-engine`]: https://github.com/Crunch/postcss-less [`postcss-safe-parser`]: https://github.com/postcss/postcss-safe-parser [`postcss-syntax`]: https://github.com/gucong3000/postcss-syntax -[`postcss-html`]: https://github.com/gucong3000/postcss-html -[`postcss-markdown`]: https://github.com/gucong3000/postcss-markdown +[`postcss-html`]: https://github.com/ota-meshi/postcss-html +[`postcss-markdown`]: https://github.com/ota-meshi/postcss-markdown [`postcss-jsx`]: https://github.com/gucong3000/postcss-jsx [`postcss-styled`]: https://github.com/gucong3000/postcss-styled [`postcss-scss`]: https://github.com/postcss/postcss-scss From 292b8f05d71186d656bbd121a828676163581241 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Thu, 5 Jan 2023 00:11:02 +0100 Subject: [PATCH 2614/3047] Add postcss-styled-syntax to list of syntaxes --- README.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 2922836ce..061e57c8f 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,8 @@ you can write a parser and/or stringifier to extend PostCSS. * [`postcss-syntax`] switch syntax automatically by file extensions. * [`postcss-html`] parsing styles in `\n\n' - }, - nodes: [new Rule({ selector: 'b' })] + codeAfter: '\n', + codeBefore: '\n' }).input + * input.document //=> "" + * input.css //=> "a{}" + * ``` + */ + document: string + /** * The absolute path to the CSS source file defined * with the `from` option. diff --git a/lib/input.js b/lib/input.js index 685bce74b..0306efc3a 100644 --- a/lib/input.js +++ b/lib/input.js @@ -33,6 +33,9 @@ class Input { this.hasBOM = false } + this.document = this.css + if (opts.document) this.document = opts.document.toString() + if (opts.from) { if ( !pathAvailable || diff --git a/lib/node.js b/lib/node.js index 9949be78a..5ef99c938 100644 --- a/lib/node.js +++ b/lib/node.js @@ -209,9 +209,9 @@ class Node { if (opts.index) { pos = this.positionInside(opts.index) } else if (opts.word) { - let stringRepresentation = this.source.input.css.slice( - sourceOffset(this.source.input.css, this.source.start), - sourceOffset(this.source.input.css, this.source.end) + let stringRepresentation = this.source.input.document.slice( + sourceOffset(this.source.input.document, this.source.start), + sourceOffset(this.source.input.document, this.source.end) ) let index = stringRepresentation.indexOf(opts.word) if (index !== -1) pos = this.positionInside(index) @@ -222,11 +222,11 @@ class Node { positionInside(index) { let column = this.source.start.column let line = this.source.start.line - let offset = sourceOffset(this.source.input.css, this.source.start) + let offset = sourceOffset(this.source.input.document, this.source.start) let end = offset + index for (let i = offset; i < end; i++) { - if (this.source.input.css[i] === '\n') { + if (this.source.input.document[i] === '\n') { column = 1 line += 1 } else { @@ -259,9 +259,9 @@ class Node { } if (opts.word) { - let stringRepresentation = this.source.input.css.slice( - sourceOffset(this.source.input.css, this.source.start), - sourceOffset(this.source.input.css, this.source.end) + let stringRepresentation = this.source.input.document.slice( + sourceOffset(this.source.input.document, this.source.start), + sourceOffset(this.source.input.document, this.source.end) ) let index = stringRepresentation.indexOf(opts.word) if (index !== -1) { diff --git a/lib/postcss.d.ts b/lib/postcss.d.ts index d0b8b53d5..c5e36052e 100644 --- a/lib/postcss.d.ts +++ b/lib/postcss.d.ts @@ -229,7 +229,7 @@ declare namespace postcss { export interface Parser { ( css: { toString(): string } | string, - opts?: Pick + opts?: Pick ): RootNode } @@ -315,6 +315,11 @@ declare namespace postcss { } export interface ProcessOptions { + /** + * Input file if it is not simple CSS file, but HTML with ' }) + is(root.source?.input.css, 'a {} b {}') + is(root.source?.input.document, '') + + let a = root.first as Rule + + // Offset the source location of `a` to mimic syntaxes like `postcss-html` + a.source = { + end: { + column: 12, + line: 1, + offset: 12 + }, + input: a.source!.input, + start: { + column: 8, + line: 1, + offset: 7 + } + } + + equal(a.positionInside(0), { column: 8, line: 1 }) + equal(a.positionInside(1), { column: 9, line: 1 }) +}) + test('positionBy() returns position for word', () => { let css = parse('a { one: X }') let a = css.first as Rule @@ -473,6 +499,33 @@ test('positionBy() returns position for index after AST mutations', () => { equal(two.positionBy({ index: 1 }), { column: 3, line: 3 }) }) +test('positionBy() supports multi-root documents', () => { + let root = parse('a {} b {}', { document: '' }) + is(root.source?.input.css, 'a {} b {}') + is(root.source?.input.document, '') + + let a = root.first as Rule + + // Offset the source location of `a` to mimic syntaxes like `postcss-html` + a.source = { + end: { + column: 12, + line: 1, + offset: 12 + }, + input: a.source!.input, + start: { + column: 8, + line: 1, + offset: 7 + } + } + + equal(a.positionBy({ index: 0 }), { column: 8, line: 1, offset: 7 }) // `offset` is present because the `0` index returns `source.start` + equal(a.positionBy({ index: 1 }), { column: 9, line: 1 }) + equal(a.positionBy({ word: 'a' }), { column: 8, line: 1 }) +}) + test('rangeBy() returns range for word', () => { let css = parse('a { one: X }') let a = css.first as Rule @@ -615,4 +668,37 @@ test('rangeBy() returns range for index and endIndex after AST mutations', () => }) }) +test('rangeBy() supports multi-root documents', () => { + let root = parse('a {} b {}', { document: '' }) + is(root.source?.input.css, 'a {} b {}') + is(root.source?.input.document, '') + + let a = root.first as Rule + + // Offset the source location of `a` to mimic syntaxes like `postcss-html` + a.source = { + end: { + column: 12, + line: 1, + offset: 12 + }, + input: a.source!.input, + start: { + column: 8, + line: 1, + offset: 7 + } + } + + equal(a.rangeBy({ endIndex: 1, index: 0 }), { + end: { column: 9, line: 1 }, + start: { column: 8, line: 1 } + }) + + equal(a.rangeBy({ word: 'a' }), { + end: { column: 9, line: 1 }, + start: { column: 8, line: 1 } + }) +}) + test.run() From 4223bb936d3a96c73f14076e43a80f51e3e34f8b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Jan 2025 15:13:59 +0000 Subject: [PATCH 2854/3047] Fix 80 columns limit --- test/node.test.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/test/node.test.ts b/test/node.test.ts index 7da164d1e..e1b6ca3eb 100755 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -521,7 +521,8 @@ test('positionBy() supports multi-root documents', () => { } } - equal(a.positionBy({ index: 0 }), { column: 8, line: 1, offset: 7 }) // `offset` is present because the `0` index returns `source.start` + // `offset` is present because the `0` index returns `source.start` + equal(a.positionBy({ index: 0 }), { column: 8, line: 1, offset: 7 }) equal(a.positionBy({ index: 1 }), { column: 9, line: 1 }) equal(a.positionBy({ word: 'a' }), { column: 8, line: 1 }) }) @@ -542,9 +543,9 @@ test('rangeBy() returns range for word when offsets are missing', () => { let one = a.first as Declaration // @ts-expect-error - if (one.source?.start) delete one.source.start.offset; + if (one.source?.start) delete one.source.start.offset // @ts-expect-error - if (one.source?.end) delete one.source.end.offset; + if (one.source?.end) delete one.source.end.offset equal(one.rangeBy({ word: 'one' }), { end: { column: 9, line: 1 }, @@ -586,13 +587,13 @@ test('rangeBy() returns range for word even after AST mutations when offsets are let two = one.next() as Declaration // @ts-expect-error - if (a.source?.start) delete a.source.start.offset; + if (a.source?.start) delete a.source.start.offset // @ts-expect-error - if (a.source?.end) delete a.source.end.offset; + if (a.source?.end) delete a.source.end.offset // @ts-expect-error - if (two.source?.start) delete two.source.start.offset; + if (two.source?.start) delete two.source.start.offset // @ts-expect-error - if (two.source?.end) delete two.source.end.offset; + if (two.source?.end) delete two.source.end.offset equal(a.rangeBy({ word: 'two' }), { end: { column: 5, line: 3 }, @@ -631,9 +632,9 @@ test('rangeBy() returns range for index and endIndex when offsets are missing', let one = a.first as Declaration // @ts-expect-error - if (one.source?.start) delete one.source.start.offset; + if (one.source?.start) delete one.source.start.offset // @ts-expect-error - if (one.source?.end) delete one.source.end.offset; + if (one.source?.end) delete one.source.end.offset equal(one.rangeBy({ endIndex: 3, index: 1 }), { end: { column: 9, line: 1 }, From 687327055ded618a36dd3cd7c39abe3428d56acb Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 13 Jan 2025 19:18:33 +0000 Subject: [PATCH 2855/3047] Release 8.5 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03e5cc456..27ac5620c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5 “Duke Alloces” +* Added `Input#document` for sources like CSS-in-JS or HTML (by @romainmenke). + ## 8.4.49 * Fixed custom syntax without `source.offset` (by @romainmenke). diff --git a/lib/processor.js b/lib/processor.js index d6192ab4c..da6c19190 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.49' + this.version = '8.5.0' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 36030ff81..2e3da8e3c 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.49", + "version": "8.5.0", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 7efe91eeb9111e297fd6e62b129ec4a2b9b46e56 Mon Sep 17 00:00:00 2001 From: Romain Menke <11521496+romainmenke@users.noreply.github.com> Date: Tue, 14 Jan 2025 11:53:43 +0100 Subject: [PATCH 2856/3047] Improve backwards compat for `Input#document` (#2000) --- lib/node.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/node.js b/lib/node.js index 5ef99c938..f6d28a3e9 100644 --- a/lib/node.js +++ b/lib/node.js @@ -209,9 +209,12 @@ class Node { if (opts.index) { pos = this.positionInside(opts.index) } else if (opts.word) { - let stringRepresentation = this.source.input.document.slice( - sourceOffset(this.source.input.document, this.source.start), - sourceOffset(this.source.input.document, this.source.end) + let inputString = ('document' in this.source.input) + ? this.source.input.document + : this.source.input.css + let stringRepresentation = inputString.slice( + sourceOffset(inputString, this.source.start), + sourceOffset(inputString, this.source.end) ) let index = stringRepresentation.indexOf(opts.word) if (index !== -1) pos = this.positionInside(index) @@ -222,11 +225,14 @@ class Node { positionInside(index) { let column = this.source.start.column let line = this.source.start.line - let offset = sourceOffset(this.source.input.document, this.source.start) + let inputString = ('document' in this.source.input) + ? this.source.input.document + : this.source.input.css + let offset = sourceOffset(inputString, this.source.start) let end = offset + index for (let i = offset; i < end; i++) { - if (this.source.input.document[i] === '\n') { + if (inputString[i] === '\n') { column = 1 line += 1 } else { @@ -259,9 +265,12 @@ class Node { } if (opts.word) { - let stringRepresentation = this.source.input.document.slice( - sourceOffset(this.source.input.document, this.source.start), - sourceOffset(this.source.input.document, this.source.end) + let inputString = ('document' in this.source.input) + ? this.source.input.document + : this.source.input.css + let stringRepresentation = inputString.slice( + sourceOffset(inputString, this.source.start), + sourceOffset(inputString, this.source.end) ) let index = stringRepresentation.indexOf(opts.word) if (index !== -1) { From 4c15339f9fa7cb76eaf513b34846b1d6d0635871 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Jan 2025 10:54:13 +0000 Subject: [PATCH 2857/3047] Update dependencies --- package.json | 2 +- pnpm-lock.yaml | 174 ++++++++++++++++++++++++------------------------- 2 files changed, 88 insertions(+), 88 deletions(-) diff --git a/package.json b/package.json index 2e3da8e3c..f71b3b8e3 100755 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "devDependencies": { "@logux/eslint-config": "^53.5.1", "@size-limit/preset-small-lib": "^11.1.6", - "@types/node": "^22.10.5", + "@types/node": "^22.10.6", "c8": "^10.1.3", "check-dts": "^0.8.2", "clean-publish": "^5.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 890d2dfbe..f061861aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,13 @@ importers: devDependencies: '@logux/eslint-config': specifier: ^53.5.1 - version: 53.5.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + version: 53.5.1(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) '@size-limit/preset-small-lib': specifier: ^11.1.6 version: 11.1.6(size-limit@11.1.6) '@types/node': - specifier: ^22.10.5 - version: 22.10.5 + specifier: ^22.10.6 + version: 22.10.6 c8: specifier: ^10.1.3 version: 10.1.3 @@ -62,7 +62,7 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.10.5)(typescript@5.7.3) + version: 10.9.2(@types/node@22.10.6)(typescript@5.7.3) typescript: specifier: ^5.7.3 version: 5.7.3 @@ -378,57 +378,57 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.10.5': - resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/node@22.10.6': + resolution: {integrity: sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.19.1': - resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==} + '@typescript-eslint/eslint-plugin@8.20.0': + resolution: {integrity: sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.19.1': - resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==} + '@typescript-eslint/parser@8.20.0': + resolution: {integrity: sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.19.1': - resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} + '@typescript-eslint/scope-manager@8.20.0': + resolution: {integrity: sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.19.1': - resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} + '@typescript-eslint/type-utils@8.20.0': + resolution: {integrity: sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.19.1': - resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} + '@typescript-eslint/types@8.20.0': + resolution: {integrity: sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.19.1': - resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} + '@typescript-eslint/typescript-estree@8.20.0': + resolution: {integrity: sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.19.1': - resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} + '@typescript-eslint/utils@8.20.0': + resolution: {integrity: sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.19.1': - resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} + '@typescript-eslint/visitor-keys@8.20.0': + resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: @@ -673,8 +673,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + es-object-atoms@1.0.1: + resolution: {integrity: sha512-BPOBuyUF9QIVhuNLhbToCLHP6+0MHwZ7xLBkPPCZqK4JmpJgGnv10035STzzQwFpqdzNFMB3irvDI63IagvDwA==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -1540,8 +1540,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.19.1: - resolution: {integrity: sha512-LKPUQpdEMVOeKluHi8md7rwLcoXHhwvWp3x+sJkMuq3gGm9yaYJtPo8sRZSblMFJ5pcOGCAak/scKf1mvZDlQw==} + typescript-eslint@8.20.0: + resolution: {integrity: sha512-Kxz2QRFsgbWj6Xcftlw3Dd154b3cEPFqQC+qMZrMypSijPd4UanKKvoKDrJ4o8AIfZFKAF+7sMaEIR8mTElozA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1802,17 +1802,17 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@53.5.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@logux/eslint-config@53.5.1(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint/eslintrc': 3.2.0 eslint: 9.18.0(jiti@2.4.2) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-n: 17.15.1(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-perfectionist: 3.9.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint-plugin-prefer-let: 4.0.0 eslint-plugin-promise: 7.2.1(eslint@9.18.0(jiti@2.4.2)) - typescript-eslint: 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + typescript-eslint: 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - '@typescript-eslint/parser' - astro-eslint-parser @@ -1872,20 +1872,20 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@22.10.5': + '@types/node@22.10.6': dependencies: undici-types: 6.20.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/type-utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/type-utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.20.0 eslint: 9.18.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 @@ -1895,27 +1895,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.20.0 debug: 4.4.0 eslint: 9.18.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.19.1': + '@typescript-eslint/scope-manager@8.20.0': dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/visitor-keys': 8.20.0 - '@typescript-eslint/type-utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 eslint: 9.18.0(jiti@2.4.2) ts-api-utils: 2.0.0(typescript@5.7.3) @@ -1923,12 +1923,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.19.1': {} + '@typescript-eslint/types@8.20.0': {} - '@typescript-eslint/typescript-estree@8.19.1(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.20.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/visitor-keys': 8.20.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -1939,20 +1939,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.19.1': + '@typescript-eslint/visitor-keys@8.20.0': dependencies: - '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/types': 8.20.0 eslint-visitor-keys: 4.2.0 acorn-jsx@5.3.2(acorn@8.14.0): @@ -1996,7 +1996,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 get-intrinsic: 1.2.7 is-string: 1.1.1 @@ -2006,7 +2006,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.3: @@ -2218,7 +2218,7 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -2264,7 +2264,7 @@ snapshots: es-errors@1.3.0: {} - es-object-atoms@1.0.0: + es-object-atoms@1.0.1: dependencies: es-errors: 1.3.0 @@ -2322,10 +2322,10 @@ snapshots: eslint: 9.18.0(jiti@2.4.2) semver: 7.6.3 - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2)): + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2)): dependencies: eslint: 9.18.0(jiti@2.4.2) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-n: 17.15.1(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-promise: 7.2.1(eslint@9.18.0(jiti@2.4.2)) @@ -2337,11 +2337,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -2354,7 +2354,7 @@ snapshots: eslint: 9.18.0(jiti@2.4.2) eslint-compat-utils: 0.5.1(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -2365,7 +2365,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.18.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -2377,7 +2377,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -2397,8 +2397,8 @@ snapshots: eslint-plugin-perfectionist@3.9.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) minimatch: 9.0.5 natural-compare-lite: 1.4.0 @@ -2554,7 +2554,7 @@ snapshots: call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 @@ -2565,7 +2565,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 get-symbol-description@1.1.0: dependencies: @@ -2870,7 +2870,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -2879,7 +2879,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 object.groupby@1.0.3: dependencies: @@ -2892,7 +2892,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 optionator@0.9.4: dependencies: @@ -2960,7 +2960,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 get-intrinsic: 1.2.7 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -3041,7 +3041,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 shebang-command@2.0.0: dependencies: @@ -3114,7 +3114,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: @@ -3122,13 +3122,13 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.0.1 strip-ansi@6.0.1: dependencies: @@ -3169,14 +3169,14 @@ snapshots: dependencies: typescript: 5.7.3 - ts-node@10.9.2(@types/node@22.10.5)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.5 + '@types/node': 22.10.6 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -3231,11 +3231,11 @@ snapshots: possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: From 7b02c75e5f093b3fdf8d46eeb17c21a52434d827 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 14 Jan 2025 11:55:24 +0100 Subject: [PATCH 2858/3047] Release 8.5.1 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27ac5620c..8f6757214 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.1 +* Fixed backwards compatibility for complex cases (by @romainmenke). + ## 8.5 “Duke Alloces” * Added `Input#document` for sources like CSS-in-JS or HTML (by @romainmenke). diff --git a/lib/processor.js b/lib/processor.js index da6c19190..6bbb2c6f9 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.0' + this.version = '8.5.1' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index f71b3b8e3..1da92a8ed 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.0", + "version": "8.5.1", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From ba587e32fd51004d334421013f311017f00e5420 Mon Sep 17 00:00:00 2001 From: Romain Menke <11521496+romainmenke@users.noreply.github.com> Date: Mon, 10 Feb 2025 21:44:27 +0100 Subject: [PATCH 2859/3047] Fix end position of rules with `ownSemicon` (#2012) --- lib/parser.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/parser.js b/lib/parser.js index 8a0441174..001d7a9a2 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -347,6 +347,8 @@ class Parser { if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { prev.raws.ownSemicolon = this.spaces this.spaces = '' + prev.source.end = this.getPosition(token[2]) + prev.source.end.offset += prev.raws.ownSemicolon.length } } } From b70e98f624537063d3094644b04f41bd2863bb65 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 10 Feb 2025 20:50:29 +0000 Subject: [PATCH 2860/3047] Update dependencies --- package.json | 6 +- pnpm-lock.yaml | 442 +++++++++++++++++++++++++------------------------ 2 files changed, 232 insertions(+), 216 deletions(-) diff --git a/package.json b/package.json index 1da92a8ed..993f5c266 100755 --- a/package.json +++ b/package.json @@ -92,15 +92,15 @@ "devDependencies": { "@logux/eslint-config": "^53.5.1", "@size-limit/preset-small-lib": "^11.1.6", - "@types/node": "^22.10.6", + "@types/node": "^22.13.1", "c8": "^10.1.3", "check-dts": "^0.8.2", "clean-publish": "^5.1.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.18.0", + "eslint": "^9.20.0", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", - "postcss-parser-tests": "^8.8.0", + "postcss-parser-tests": "^8.9.0", "simple-git-hooks": "^2.11.1", "size-limit": "^11.1.6", "strip-ansi": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f061861aa..3fd70b2b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,13 @@ importers: devDependencies: '@logux/eslint-config': specifier: ^53.5.1 - version: 53.5.1(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + version: 53.5.1(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@size-limit/preset-small-lib': specifier: ^11.1.6 version: 11.1.6(size-limit@11.1.6) '@types/node': - specifier: ^22.10.6 - version: 22.10.6 + specifier: ^22.13.1 + version: 22.13.1 c8: specifier: ^10.1.3 version: 10.1.3 @@ -40,8 +40,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.18.0 - version: 9.18.0(jiti@2.4.2) + specifier: ^9.20.0 + version: 9.20.0(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -49,8 +49,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 postcss-parser-tests: - specifier: ^8.8.0 - version: 8.8.0 + specifier: ^8.9.0 + version: 8.9.0 simple-git-hooks: specifier: ^2.11.1 version: 2.11.1 @@ -62,7 +62,7 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.10.6)(typescript@5.7.3) + version: 10.9.2(@types/node@22.13.1)(typescript@5.7.3) typescript: specifier: ^5.7.3 version: 5.7.3 @@ -72,8 +72,8 @@ importers: packages: - '@bcoe/v8-coverage@1.0.1': - resolution: {integrity: sha512-W+a0/JpU28AqH4IKtwUPcEUnUyXMDLALcn5/JLczGGT9fHE2sIby/xP/oQnx3nxkForzgzPy201RAKcB4xPAFQ==} + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} '@cspotcode/source-map-support@0.8.1': @@ -240,24 +240,28 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.10.0': resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.11.0': + resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.18.0': - resolution: {integrity: sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==} + '@eslint/js@9.20.0': + resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.2.5': @@ -378,57 +382,57 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.10.6': - resolution: {integrity: sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==} + '@types/node@22.13.1': + resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.20.0': - resolution: {integrity: sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==} + '@typescript-eslint/eslint-plugin@8.24.0': + resolution: {integrity: sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.20.0': - resolution: {integrity: sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==} + '@typescript-eslint/parser@8.24.0': + resolution: {integrity: sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.20.0': - resolution: {integrity: sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==} + '@typescript-eslint/scope-manager@8.24.0': + resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.20.0': - resolution: {integrity: sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==} + '@typescript-eslint/type-utils@8.24.0': + resolution: {integrity: sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.20.0': - resolution: {integrity: sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==} + '@typescript-eslint/types@8.24.0': + resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.20.0': - resolution: {integrity: sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==} + '@typescript-eslint/typescript-estree@8.24.0': + resolution: {integrity: sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.20.0': - resolution: {integrity: sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==} + '@typescript-eslint/utils@8.24.0': + resolution: {integrity: sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.20.0': - resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==} + '@typescript-eslint/visitor-keys@8.24.0': + resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: @@ -494,6 +498,10 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -657,8 +665,8 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} es-abstract@1.23.9: @@ -673,8 +681,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.1: - resolution: {integrity: sha512-BPOBuyUF9QIVhuNLhbToCLHP6+0MHwZ7xLBkPPCZqK4JmpJgGnv10035STzzQwFpqdzNFMB3irvDI63IagvDwA==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -803,8 +811,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.18.0: - resolution: {integrity: sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==} + eslint@9.20.0: + resolution: {integrity: sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -846,11 +854,11 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + fastq@1.19.0: + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} - fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -876,8 +884,9 @@ packages: flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.4: + resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + engines: {node: '>= 0.4'} foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} @@ -909,8 +918,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -980,8 +989,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} imurmurhash@0.1.4: @@ -996,16 +1005,16 @@ packages: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} - is-async-function@2.1.0: - resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-callable@1.2.7: @@ -1084,8 +1093,8 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} is-weakset@2.0.4: @@ -1225,8 +1234,8 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -1298,12 +1307,12 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-parser-tests@8.8.0: - resolution: {integrity: sha512-vAyVrBzp7YmfpmjCG3RGhilE9+oydj6oTZYWMBwkp/3FVOdUURerTRD0w/NVegOreAj51tCPqgCwbb4AW5f5SA==} + postcss-parser-tests@8.9.0: + resolution: {integrity: sha512-WGbGB0FMGoaaBz5AVLXscO76ibgm1ZjBD2weWHhFQSrQ8HyVhNqZDLZSVejIZSd7pQ7SX73EUTHZjx3Jbg60zw==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -1375,8 +1384,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true @@ -1497,8 +1506,8 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@2.0.0: - resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -1540,8 +1549,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.20.0: - resolution: {integrity: sha512-Kxz2QRFsgbWj6Xcftlw3Dd154b3cEPFqQC+qMZrMypSijPd4UanKKvoKDrJ4o8AIfZFKAF+7sMaEIR8mTElozA==} + typescript-eslint@8.24.0: + resolution: {integrity: sha512-/lmv4366en/qbB32Vz5+kCNZEMf6xYHwh1z48suBwZvAtnXKbP+YhGe8OLE2BqC67LMqKkCNLtjejdwsdW6uOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1641,7 +1650,7 @@ packages: snapshots: - '@bcoe/v8-coverage@1.0.1': {} + '@bcoe/v8-coverage@1.0.2': {} '@cspotcode/source-map-support@0.8.1': dependencies: @@ -1722,16 +1731,16 @@ snapshots: '@esbuild/win32-x64@0.24.2': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.18.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.20.0(jiti@2.4.2))': dependencies: - eslint: 9.18.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.1': + '@eslint/config-array@0.19.2': dependencies: - '@eslint/object-schema': 2.1.5 + '@eslint/object-schema': 2.1.6 debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: @@ -1741,6 +1750,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.11.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 @@ -1748,16 +1761,16 @@ snapshots: espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.18.0': {} + '@eslint/js@9.20.0': {} - '@eslint/object-schema@2.1.5': {} + '@eslint/object-schema@2.1.6': {} '@eslint/plugin-kit@0.2.5': dependencies: @@ -1802,17 +1815,17 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@53.5.1(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@logux/eslint-config@53.5.1(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint/eslintrc': 3.2.0 - eslint: 9.18.0(jiti@2.4.2) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-n: 17.15.1(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 3.9.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)))(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-n: 17.15.1(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-perfectionist: 3.9.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.18.0(jiti@2.4.2)) - typescript-eslint: 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-promise: 7.2.1(eslint@9.20.0(jiti@2.4.2)) + typescript-eslint: 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - '@typescript-eslint/parser' - astro-eslint-parser @@ -1833,7 +1846,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 + fastq: 1.19.0 '@pkgjs/parseargs@0.11.0': optional: true @@ -1872,87 +1885,87 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@22.10.6': + '@types/node@22.13.1': dependencies: undici-types: 6.20.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.20.0 - '@typescript-eslint/type-utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.20.0 - eslint: 9.18.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.24.0 + '@typescript-eslint/type-utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.24.0 + eslint: 9.20.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.0(typescript@5.7.3) + ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.20.0 - '@typescript-eslint/types': 8.20.0 - '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.20.0 + '@typescript-eslint/scope-manager': 8.24.0 + '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.24.0 debug: 4.4.0 - eslint: 9.18.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.20.0': + '@typescript-eslint/scope-manager@8.24.0': dependencies: - '@typescript-eslint/types': 8.20.0 - '@typescript-eslint/visitor-keys': 8.20.0 + '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/visitor-keys': 8.24.0 - '@typescript-eslint/type-utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.18.0(jiti@2.4.2) - ts-api-utils: 2.0.0(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.20.0': {} + '@typescript-eslint/types@8.24.0': {} - '@typescript-eslint/typescript-estree@8.20.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.20.0 - '@typescript-eslint/visitor-keys': 8.20.0 + '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/visitor-keys': 8.24.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.0.0(typescript@5.7.3) + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.20.0 - '@typescript-eslint/types': 8.20.0 - '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) - eslint: 9.18.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.24.0 + '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.20.0': + '@typescript-eslint/visitor-keys@8.24.0': dependencies: - '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/types': 8.24.0 eslint-visitor-keys: 4.2.0 acorn-jsx@5.3.2(acorn@8.14.0): @@ -1996,7 +2009,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 is-string: 1.1.1 @@ -2006,7 +2019,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.3: @@ -2033,9 +2046,11 @@ snapshots: get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 + async-function@1.0.0: {} + available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 balanced-match@1.0.2: {} @@ -2056,7 +2071,7 @@ snapshots: c8@10.1.3: dependencies: - '@bcoe/v8-coverage': 1.0.1 + '@bcoe/v8-coverage': 1.0.2 '@istanbuljs/schema': 0.1.3 find-up: 5.0.0 foreground-child: 3.3.0 @@ -2201,7 +2216,7 @@ snapshots: emoji-regex@9.2.2: {} - enhanced-resolve@5.18.0: + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -2218,7 +2233,7 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -2239,9 +2254,9 @@ snapshots: is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 - is-weakref: 1.1.0 + is-weakref: 1.1.1 math-intrinsics: 1.1.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 @@ -2264,7 +2279,7 @@ snapshots: es-errors@1.3.0: {} - es-object-atoms@1.0.1: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -2317,17 +2332,17 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.18.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.20.0(jiti@2.4.2)): dependencies: - eslint: 9.18.0(jiti@2.4.2) - semver: 7.6.3 + eslint: 9.20.0(jiti@2.4.2) + semver: 7.7.1 - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)))(eslint@9.18.0(jiti@2.4.2)): + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)))(eslint@9.20.0(jiti@2.4.2)): dependencies: - eslint: 9.18.0(jiti@2.4.2) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-n: 17.15.1(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-promise: 7.2.1(eslint@9.18.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-n: 17.15.1(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.20.0(jiti@2.4.2)) eslint-import-resolver-node@0.3.9: dependencies: @@ -2337,24 +2352,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.18.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.18.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.20.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.18.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.18.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -2363,9 +2378,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.18.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -2377,29 +2392,29 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@17.15.1(eslint@9.18.0(jiti@2.4.2)): + eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) - enhanced-resolve: 5.18.0 - eslint: 9.18.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.18.0(jiti@2.4.2)) - get-tsconfig: 4.8.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + enhanced-resolve: 5.18.1 + eslint: 9.20.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.20.0(jiti@2.4.2)) + get-tsconfig: 4.10.0 globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.1 - eslint-plugin-perfectionist@3.9.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-perfectionist@3.9.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/types': 8.20.0 - '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.18.0(jiti@2.4.2) + '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) minimatch: 9.0.5 natural-compare-lite: 1.4.0 transitivePeerDependencies: @@ -2410,10 +2425,10 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.18.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) - eslint: 9.18.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) eslint-scope@8.2.0: dependencies: @@ -2424,14 +2439,14 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.18.0(jiti@2.4.2): + eslint@9.20.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.10.0 + '@eslint/config-array': 0.19.2 + '@eslint/core': 0.11.0 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.18.0 + '@eslint/js': 9.20.0 '@eslint/plugin-kit': 0.2.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -2497,11 +2512,11 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.18.0: + fastq@1.19.0: dependencies: reusify: 1.0.4 - fdir@6.4.2(picomatch@4.0.2): + fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -2525,7 +2540,7 @@ snapshots: flatted@3.3.2: {} - for-each@0.3.3: + for-each@0.3.4: dependencies: is-callable: 1.2.7 @@ -2554,7 +2569,7 @@ snapshots: call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 @@ -2565,7 +2580,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 get-symbol-description@1.1.0: dependencies: @@ -2573,7 +2588,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.7 - get-tsconfig@4.8.1: + get-tsconfig@4.10.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -2635,7 +2650,7 @@ snapshots: ignore@5.3.2: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -2654,8 +2669,9 @@ snapshots: call-bound: 1.0.3 get-intrinsic: 1.2.7 - is-async-function@2.1.0: + is-async-function@2.1.1: dependencies: + async-function: 1.0.0 call-bound: 1.0.3 get-proto: 1.0.1 has-tostringtag: 1.0.2 @@ -2665,7 +2681,7 @@ snapshots: dependencies: has-bigints: 1.1.0 - is-boolean-object@1.2.1: + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.3 has-tostringtag: 1.0.2 @@ -2745,7 +2761,7 @@ snapshots: is-weakmap@2.0.2: {} - is-weakref@1.1.0: + is-weakref@1.1.1: dependencies: call-bound: 1.0.3 @@ -2816,7 +2832,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 make-error@1.3.6: {} @@ -2861,7 +2877,7 @@ snapshots: natural-compare@1.4.0: {} - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -2870,7 +2886,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -2879,7 +2895,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: @@ -2892,7 +2908,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 optionator@0.9.4: dependencies: @@ -2940,9 +2956,9 @@ snapshots: picomatch@4.0.2: {} - possible-typed-array-names@1.0.0: {} + possible-typed-array-names@1.1.0: {} - postcss-parser-tests@8.8.0: + postcss-parser-tests@8.9.0: dependencies: picocolors: 1.1.1 @@ -2960,7 +2976,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -3019,7 +3035,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.3: {} + semver@7.7.1: {} set-function-length@1.2.2: dependencies: @@ -3041,7 +3057,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 shebang-command@2.0.0: dependencies: @@ -3052,27 +3068,27 @@ snapshots: side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -3114,7 +3130,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: @@ -3122,13 +3138,13 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.1 + es-object-atoms: 1.1.1 strip-ansi@6.0.1: dependencies: @@ -3158,25 +3174,25 @@ snapshots: tinyglobby@0.2.10: dependencies: - fdir: 6.4.2(picomatch@4.0.2) + fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - ts-api-utils@2.0.0(typescript@5.7.3): + ts-api-utils@2.0.1(typescript@5.7.3): dependencies: typescript: 5.7.3 - ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.13.1)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.6 + '@types/node': 22.13.1 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -3207,7 +3223,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.4 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -3216,7 +3232,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.4 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -3225,18 +3241,18 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.4 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.18.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color @@ -3293,7 +3309,7 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 @@ -3303,12 +3319,12 @@ snapshots: call-bound: 1.0.3 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.1.0 + is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 @@ -3326,7 +3342,7 @@ snapshots: available-typed-arrays: 1.0.7 call-bind: 1.0.8 call-bound: 1.0.3 - for-each: 0.3.3 + for-each: 0.3.4 gopd: 1.2.0 has-tostringtag: 1.0.2 From 692fcde123dbf51c7b1a178370d3e8c6fe7feeee Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 10 Feb 2025 21:51:29 +0100 Subject: [PATCH 2861/3047] Release 8.5.2 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f6757214..ca9885119 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.2 +* Fixed end position of rules with semicolon (by @romainmenke). + ## 8.5.1 * Fixed backwards compatibility for complex cases (by @romainmenke). diff --git a/lib/processor.js b/lib/processor.js index 6bbb2c6f9..2fa743e86 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.1' + this.version = '8.5.2' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 993f5c266..c8db5b402 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.1", + "version": "8.5.2", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 755f08f8dbdbc001906b10db3b262948f8491d82 Mon Sep 17 00:00:00 2001 From: Yifan Pan Date: Sat, 15 Feb 2025 17:06:20 -0500 Subject: [PATCH 2862/3047] fix typo: them -> then (#2016) --- docs/syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/syntax.md b/docs/syntax.md index 11f53bf65..a77a64504 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -251,7 +251,7 @@ to another parent node. This is why the default stringifier has a `raw()` method to autodetect raw properties by other nodes. For example, it will look at other nodes to detect -indent size and them multiply it with the current node depth. +indent size and then multiply it with the current node depth. ### Tests From 06006ecb04cae0ddb62c6a85f15d1068c544d861 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Feb 2025 11:57:06 +0000 Subject: [PATCH 2863/3047] AtRule can be empty --- lib/at-rule.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index b2a0e0f44..b6a60f8df 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -97,7 +97,7 @@ declare class AtRule_ extends Container { * layer.nodes //=> undefined * ``` */ - nodes: Container['nodes'] + nodes: Container['nodes'] | undefined parent: ContainerWithChildren | undefined raws: AtRule.AtRuleRaws From 4fdb54b5ce67e038ed8d1aa79752d6f6072d0736 Mon Sep 17 00:00:00 2001 From: hiepxanh Date: Wed, 19 Feb 2025 14:06:22 +0700 Subject: [PATCH 2864/3047] update: parser.js to clarify error message clarify error message by specify error variable --- lib/parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 001d7a9a2..1d90adda9 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -593,7 +593,7 @@ class Parser { unknownWord(tokens) { throw this.input.error( - 'Unknown word', + 'Unexpected character "' + tokens[0][1] + '" in selector. Check CSS selector documentation for proper syntax.''Unknown word', { offset: tokens[0][2] }, { offset: tokens[0][2] + tokens[0][1].length } ) From 5082831b842eb40f8d298e5e0ab041755a04a58b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Feb 2025 12:57:49 +0100 Subject: [PATCH 2865/3047] Fix text Co-authored-by: Romain Menke <11521496+romainmenke@users.noreply.github.com> --- lib/parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 1d90adda9..dbad70ee5 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -593,7 +593,7 @@ class Parser { unknownWord(tokens) { throw this.input.error( - 'Unexpected character "' + tokens[0][1] + '" in selector. Check CSS selector documentation for proper syntax.''Unknown word', + 'Unknown word: ' + tokens[0][1], { offset: tokens[0][2] }, { offset: tokens[0][2] + tokens[0][1].length } ) From 8232ba02575fca41b14c4e2b377adc68880846fa Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Feb 2025 11:59:45 +0000 Subject: [PATCH 2866/3047] Fix tests --- lib/parser.js | 2 +- test/css-syntax-error.test.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index dbad70ee5..64fb5d89b 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -593,7 +593,7 @@ class Parser { unknownWord(tokens) { throw this.input.error( - 'Unknown word: ' + tokens[0][1], + 'Unknown word ' + tokens[0][1], { offset: tokens[0][2] }, { offset: tokens[0][2] + tokens[0][1].length } ) diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 9ba8d9a73..8e1e9beaa 100755 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -71,8 +71,8 @@ test('saves source with ranges', () => { is(error instanceof CssSyntaxError, true) is(error.name, 'CssSyntaxError') - is(error.message, ':1:1: Unknown word') - is(error.reason, 'Unknown word') + is(error.message, ':1:1: Unknown word badword') + is(error.reason, 'Unknown word badword') is(error.line, 1) is(error.column, 1) is(error.endLine, 1) @@ -97,8 +97,8 @@ test('saves source with ranges', () => { is(error instanceof CssSyntaxError, true) is(error.name, 'CssSyntaxError') - is(error.message, ':1:1: Unknown word') - is(error.reason, 'Unknown word') + is(error.message, ':1:1: Unknown word badword') + is(error.reason, 'Unknown word badword') is(error.line, 1) is(error.column, 1) is(error.endLine, 1) @@ -119,8 +119,8 @@ test('saves source with ranges', () => { is(error instanceof CssSyntaxError, true) is(error.name, 'CssSyntaxError') - is(error.message, ':1:1: Unknown word') - is(error.reason, 'Unknown word') + is(error.message, ':1:1: Unknown word badword') + is(error.reason, 'Unknown word badword') is(error.line, 1) is(error.column, 1) is(error.endLine, 1) From a2b594f7826fc8e0ce2d35adcd205fde04f1134f Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Feb 2025 13:43:47 +0000 Subject: [PATCH 2867/3047] Update ESLint config --- eslint.config.mjs | 6 + lib/at-rule.d.ts | 16 +- lib/comment.d.ts | 14 +- lib/container.d.ts | 93 +++--- lib/container.js | 20 +- lib/declaration.d.ts | 18 +- lib/declaration.js | 8 +- lib/input.d.ts | 32 +- lib/input.js | 8 +- lib/lazy-result.d.ts | 80 ++--- lib/lazy-result.js | 64 ++-- lib/no-work-result.d.ts | 10 +- lib/no-work-result.js | 100 +++--- lib/node.d.ts | 16 +- lib/node.js | 8 +- lib/postcss.d.mts | 66 ++-- lib/result.d.ts | 20 +- lib/result.js | 8 +- lib/rule.d.ts | 16 +- lib/rule.js | 12 +- package.json | 10 +- pnpm-lock.yaml | 613 +++++++++++++++++------------------- test/container.test.ts | 6 +- test/declaration.test.ts | 2 +- test/no-work-result.test.ts | 44 +-- test/node.test.ts | 18 +- test/postcss.test.ts | 2 +- test/previous-map.test.ts | 2 +- test/processor.test.ts | 19 +- test/visitor.test.ts | 17 +- 30 files changed, 667 insertions(+), 681 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 5deb6372e..2cb7d555b 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -7,6 +7,8 @@ export default [ rules: { '@typescript-eslint/consistent-type-imports': 'off', '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-require-imports': 'off', + '@typescript-eslint/no-this-alias': 'off', 'consistent-return': 'off', 'global-require': 'off', 'n/no-unsupported-features/es-syntax': [ @@ -33,7 +35,11 @@ export default [ { files: ['**/*.test.*', '**/types.ts'], rules: { + '@typescript-eslint/no-base-to-string': 'off', + '@typescript-eslint/no-unsafe-return': 'off', '@typescript-eslint/no-unused-expressions': 'off', + '@typescript-eslint/restrict-template-expressions': 'off', + '@typescript-eslint/unbound-method': 'off', 'func-style': 'off', 'n/no-unsupported-features/es-syntax': 'off', 'n/no-unsupported-features/node-builtins': 'off', diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index b6a60f8df..89fb505f4 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -102,14 +102,6 @@ declare class AtRule_ extends Container { raws: AtRule.AtRuleRaws type: 'atrule' - constructor(defaults?: AtRule.AtRuleProps) - assign(overrides: AtRule.AtRuleProps | object): this - - clone(overrides?: Partial): this - - cloneAfter(overrides?: Partial): this - - cloneBefore(overrides?: Partial): this /** * The at-rule’s name immediately follows the `@`. * @@ -121,6 +113,7 @@ declare class AtRule_ extends Container { */ get name(): string set name(value: string) + /** * The at-rule’s parameters, the values that follow the at-rule’s name * but precede any `{}` block. @@ -132,7 +125,14 @@ declare class AtRule_ extends Container { * ``` */ get params(): string + set params(value: string) + + constructor(defaults?: AtRule.AtRuleProps) + assign(overrides: AtRule.AtRuleProps | object): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this } declare class AtRule extends AtRule_ {} diff --git a/lib/comment.d.ts b/lib/comment.d.ts index 2b1a156d5..6f1f66f81 100644 --- a/lib/comment.d.ts +++ b/lib/comment.d.ts @@ -49,18 +49,18 @@ declare class Comment_ extends Node { parent: Container | undefined raws: Comment.CommentRaws type: 'comment' - constructor(defaults?: Comment.CommentProps) - - assign(overrides: Comment.CommentProps | object): this - - clone(overrides?: Partial): this - cloneAfter(overrides?: Partial): this - cloneBefore(overrides?: Partial): this /** * The comment's text. */ get text(): string + set text(value: string) + + constructor(defaults?: Comment.CommentProps) + assign(overrides: Comment.CommentProps | object): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this } declare class Comment extends Comment_ {} diff --git a/lib/container.d.ts b/lib/container.d.ts index 692bd696b..9569f343b 100644 --- a/lib/container.d.ts +++ b/lib/container.d.ts @@ -65,25 +65,22 @@ declare abstract class Container_ extends Node { nodes: Child[] | undefined /** - * An internal method that converts a {@link NewChild} into a list of actual - * child nodes that can then be added to this container. - * - * This ensures that the nodes' parent is set to this container, that they use - * the correct prototype chain, and that they're marked as dirty. + * The container’s first child. * - * @param mnodes The new node or nodes to add. - * @param sample A node from whose raws the new node's `before` raw should be - * taken. - * @param type This should be set to `'prepend'` if the new nodes will be - * inserted at the beginning of the container. - * @hidden + * ```js + * rule.first === rules.nodes[0] + * ``` */ - protected normalize( - nodes: Container.NewChild, - sample: Node | undefined, - type?: 'prepend' | false - ): Child[] + get first(): Child | undefined + /** + * The container’s last child. + * + * ```js + * rule.last === rule.nodes[rule.nodes.length - 1] + * ``` + */ + get last(): Child | undefined /** * Inserts new nodes to the end of the container. * @@ -107,10 +104,10 @@ declare abstract class Container_ extends Node { append(...nodes: Container.NewChild[]): this assign(overrides: Container.ContainerProps | object): this clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this cloneBefore(overrides?: Partial): this - /** * Iterates through the container’s immediate children, * calling `callback` for each child. @@ -147,6 +144,7 @@ declare abstract class Container_ extends Node { each( callback: (node: Child, index: number) => false | void ): false | undefined + /** * Returns `true` if callback returns `true` * for all of the container’s children. @@ -161,7 +159,6 @@ declare abstract class Container_ extends Node { every( condition: (node: Child, index: number, nodes: Child[]) => boolean ): boolean - /** * Returns a `child`’s index within the `Container#nodes` array. * @@ -173,6 +170,7 @@ declare abstract class Container_ extends Node { * @return Child index. */ index(child: Child | number): number + /** * Insert new node after old node within the container. * @@ -182,19 +180,6 @@ declare abstract class Container_ extends Node { */ insertAfter(oldNode: Child | number, newNode: Container.NewChild): this - /** - * Insert new node before old node within the container. - * - * ```js - * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) - * ``` - * - * @param oldNode Child or child’s index. - * @param newNode New node. - * @return This node for methods chain. - */ - insertBefore(oldNode: Child | number, newNode: Container.NewChild): this - /** * Traverses the container’s descendant nodes, calling callback * for each comment node. @@ -212,6 +197,18 @@ declare abstract class Container_ extends Node { * @return Returns `false` if iteration was broke. */ + /** + * Insert new node before old node within the container. + * + * ```js + * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) + * ``` + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertBefore(oldNode: Child | number, newNode: Container.NewChild): this /** * Inserts new nodes to the start of the container. * @@ -233,6 +230,7 @@ declare abstract class Container_ extends Node { * @return This node for methods chain. */ prepend(...nodes: Container.NewChild[]): this + /** * Add child to the end of the node. * @@ -278,7 +276,6 @@ declare abstract class Container_ extends Node { pattern: RegExp | string, replaced: { (substring: string, ...args: any[]): string } | string ): this - /** * Passes all declaration values within the container that match pattern * through callback, replacing those values with the returned result @@ -379,14 +376,13 @@ declare abstract class Container_ extends Node { nameFilter: RegExp | string, callback: (atRule: AtRule, index: number) => false | void ): false | undefined - walkAtRules( callback: (atRule: AtRule, index: number) => false | void ): false | undefined + walkComments( callback: (comment: Comment, indexed: number) => false | void ): false | undefined - walkComments( callback: (comment: Comment, indexed: number) => false | void ): false | undefined @@ -424,11 +420,9 @@ declare abstract class Container_ extends Node { propFilter: RegExp | string, callback: (decl: Declaration, index: number) => false | void ): false | undefined - walkDecls( callback: (decl: Declaration, index: number) => false | void ): false | undefined - /** * Traverses the container’s descendant nodes, calling callback * for each rule node. @@ -459,21 +453,24 @@ declare abstract class Container_ extends Node { callback: (rule: Rule, index: number) => false | void ): false | undefined /** - * The container’s first child. + * An internal method that converts a {@link NewChild} into a list of actual + * child nodes that can then be added to this container. * - * ```js - * rule.first === rules.nodes[0] - * ``` - */ - get first(): Child | undefined - /** - * The container’s last child. + * This ensures that the nodes' parent is set to this container, that they use + * the correct prototype chain, and that they're marked as dirty. * - * ```js - * rule.last === rule.nodes[rule.nodes.length - 1] - * ``` + * @param mnodes The new node or nodes to add. + * @param sample A node from whose raws the new node's `before` raw should be + * taken. + * @param type This should be set to `'prepend'` if the new nodes will be + * inserted at the beginning of the container. + * @hidden */ - get last(): Child | undefined + protected normalize( + nodes: Container.NewChild, + sample: Node | undefined, + type?: 'prepend' | false + ): Child[] } declare class Container< diff --git a/lib/container.js b/lib/container.js index 8b9e1ef84..edb07cc2f 100644 --- a/lib/container.js +++ b/lib/container.js @@ -25,6 +25,16 @@ function markTreeDirty(node) { } class Container extends Node { + get first() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[0] + } + + get last() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] + } + append(...children) { for (let child of children) { let nodes = this.normalize(child, this.last) @@ -391,16 +401,6 @@ class Container extends Node { } }) } - - get first() { - if (!this.proxyOf.nodes) return undefined - return this.proxyOf.nodes[0] - } - - get last() { - if (!this.proxyOf.nodes) return undefined - return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] - } } Container.registerParse = dependant => { diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index e707ad67e..d489b4270 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -68,14 +68,6 @@ declare class Declaration_ extends Node { type: 'decl' - constructor(defaults?: Declaration.DeclarationProps) - assign(overrides: Declaration.DeclarationProps | object): this - - clone(overrides?: Partial): this - - cloneAfter(overrides?: Partial): this - - cloneBefore(overrides?: Partial): this /** * It represents a specificity of the declaration. * @@ -91,8 +83,8 @@ declare class Declaration_ extends Node { * ``` */ get important(): boolean - set important(value: boolean) + /** * The property name for a CSS declaration. * @@ -106,6 +98,7 @@ declare class Declaration_ extends Node { get prop(): string set prop(value: string) + /** * The property value for a CSS declaration. * @@ -125,6 +118,7 @@ declare class Declaration_ extends Node { */ get value(): string set value(value: string) + /** * It represents a getter that returns `true` if a declaration starts with * `--` or `$`, which are used to declare variables in CSS and SASS/SCSS. @@ -144,6 +138,12 @@ declare class Declaration_ extends Node { * ``` */ get variable(): boolean + constructor(defaults?: Declaration.DeclarationProps) + + assign(overrides: Declaration.DeclarationProps | object): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this } declare class Declaration extends Declaration_ {} diff --git a/lib/declaration.js b/lib/declaration.js index a04bdec36..65a03aa96 100644 --- a/lib/declaration.js +++ b/lib/declaration.js @@ -3,6 +3,10 @@ let Node = require('./node') class Declaration extends Node { + get variable() { + return this.prop.startsWith('--') || this.prop[0] === '$' + } + constructor(defaults) { if ( defaults && @@ -14,10 +18,6 @@ class Declaration extends Node { super(defaults) this.type = 'decl' } - - get variable() { - return this.prop.startsWith('--') || this.prop[0] === '$' - } } module.exports = Declaration diff --git a/lib/input.d.ts b/lib/input.d.ts index e45f7e9dc..260040f35 100644 --- a/lib/input.d.ts +++ b/lib/input.d.ts @@ -111,6 +111,20 @@ declare class Input_ { */ map: PreviousMap + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.from //=> "/home/ai/a.css" + * + * const root = postcss.parse(css) + * root.source.input.from //=> "" + * ``` + */ + get from(): string + /** * @param css Input CSS source. * @param opts Process options. @@ -137,7 +151,6 @@ declare class Input_ { }, opts?: { plugin?: CssSyntaxError['plugin'] } ): CssSyntaxError - /** * Returns `CssSyntaxError` with information about the error and its position. */ @@ -147,13 +160,11 @@ declare class Input_ { column: number, opts?: { plugin?: CssSyntaxError['plugin'] } ): CssSyntaxError - error( message: string, offset: number, opts?: { plugin?: CssSyntaxError['plugin'] } ): CssSyntaxError - /** * Converts source offset to line and column. * @@ -185,22 +196,9 @@ declare class Input_ { endLine?: number, endColumn?: number ): false | Input.FilePosition + /** Converts this to a JSON-friendly object representation. */ toJSON(): object - - /** - * The CSS source identifier. Contains `Input#file` if the user - * set the `from` option, or `Input#id` if they did not. - * - * ```js - * const root = postcss.parse(css, { from: 'a.css' }) - * root.source.input.from //=> "/home/ai/a.css" - * - * const root = postcss.parse(css) - * root.source.input.from //=> "" - * ``` - */ - get from(): string } declare class Input extends Input_ {} diff --git a/lib/input.js b/lib/input.js index 0306efc3a..9773e0fa3 100644 --- a/lib/input.js +++ b/lib/input.js @@ -15,6 +15,10 @@ let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(resolve && isAbsolute) class Input { + get from() { + return this.file || this.id + } + constructor(css, opts = {}) { if ( css === null || @@ -237,10 +241,6 @@ class Input { } return json } - - get from() { - return this.file || this.id - } } module.exports = Input diff --git a/lib/lazy-result.d.ts b/lib/lazy-result.d.ts index dd291aa3a..2eb72796e 100644 --- a/lib/lazy-result.d.ts +++ b/lib/lazy-result.d.ts @@ -67,46 +67,6 @@ declare class LazyResult_ */ then: Promise>['then'] - /** - * @param processor Processor used for this transformation. - * @param css CSS to parse and transform. - * @param opts Options from the `Processor#process` or `Root#toResult`. - */ - constructor(processor: Processor, css: string, opts: ResultOptions) - - /** - * Run plugin in async way and return `Result`. - * - * @return Result with output content. - */ - async(): Promise> - - /** - * Run plugin in sync way and return `Result`. - * - * @return Result with output content. - */ - sync(): Result - - /** - * Alias for the `LazyResult#css` property. - * - * ```js - * lazy + '' === lazy.css - * ``` - * - * @return Output CSS. - */ - toString(): string - - /** - * Processes input CSS through synchronous plugins - * and calls `Result#warnings`. - * - * @return Warnings from plugins. - */ - warnings(): Warning[] - /** * An alias for the `css` property. Use it with syntaxes * that generate non-CSS output. @@ -181,6 +141,46 @@ declare class LazyResult_ * Required to implement the Promise interface. */ get [Symbol.toStringTag](): string + + /** + * @param processor Processor used for this transformation. + * @param css CSS to parse and transform. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, css: string, opts: ResultOptions) + + /** + * Run plugin in async way and return `Result`. + * + * @return Result with output content. + */ + async(): Promise> + + /** + * Run plugin in sync way and return `Result`. + * + * @return Result with output content. + */ + sync(): Result + + /** + * Alias for the `LazyResult#css` property. + * + * ```js + * lazy + '' === lazy.css + * ``` + * + * @return Output CSS. + */ + toString(): string + + /** + * Processes input CSS through synchronous plugins + * and calls `Result#warnings`. + * + * @return Warnings from plugins. + */ + warnings(): Warning[] } declare class LazyResult< diff --git a/lib/lazy-result.js b/lib/lazy-result.js index e27701dd5..1ea52b87a 100644 --- a/lib/lazy-result.js +++ b/lib/lazy-result.js @@ -105,6 +105,38 @@ function cleanMarks(node) { let postcss = {} class LazyResult { + get content() { + return this.stringify().content + } + + get css() { + return this.stringify().css + } + + get map() { + return this.stringify().map + } + + get messages() { + return this.sync().messages + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + return this.sync().root + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } + constructor(processor, css, opts) { this.stringified = false this.processed = false @@ -505,38 +537,6 @@ class LazyResult { warnings() { return this.sync().warnings() } - - get content() { - return this.stringify().content - } - - get css() { - return this.stringify().css - } - - get map() { - return this.stringify().map - } - - get messages() { - return this.sync().messages - } - - get opts() { - return this.result.opts - } - - get processor() { - return this.result.processor - } - - get root() { - return this.sync().root - } - - get [Symbol.toStringTag]() { - return 'LazyResult' - } } LazyResult.registerPostcss = dependant => { diff --git a/lib/no-work-result.d.ts b/lib/no-work-result.d.ts index 803907654..094f30ab4 100644 --- a/lib/no-work-result.d.ts +++ b/lib/no-work-result.d.ts @@ -26,11 +26,6 @@ declare class NoWorkResult_ implements LazyResult { catch: Promise>['catch'] finally: Promise>['finally'] then: Promise>['then'] - constructor(processor: Processor, css: string, opts: ResultOptions) - async(): Promise> - sync(): Result - toString(): string - warnings(): Warning[] get content(): string get css(): string get map(): SourceMap @@ -39,6 +34,11 @@ declare class NoWorkResult_ implements LazyResult { get processor(): Processor get root(): Root get [Symbol.toStringTag](): string + constructor(processor: Processor, css: string, opts: ResultOptions) + async(): Promise> + sync(): Result + toString(): string + warnings(): Warning[] } declare class NoWorkResult extends NoWorkResult_ {} diff --git a/lib/no-work-result.js b/lib/no-work-result.js index a84d8438d..dd46182d4 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -7,6 +7,56 @@ let stringify = require('./stringify') let warnOnce = require('./warn-once') class NoWorkResult { + get content() { + return this.result.css + } + + get css() { + return this.result.css + } + + get map() { + return this.result.map + } + + get messages() { + return [] + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + if (this._root) { + return this._root + } + + let root + let parser = parse + + try { + root = parser(this._css, this._opts) + } catch (error) { + this.error = error + } + + if (this.error) { + throw this.error + } else { + this._root = root + return root + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } + constructor(processor, css, opts) { css = css.toString() this.stringified = false @@ -82,56 +132,6 @@ class NoWorkResult { warnings() { return [] } - - get content() { - return this.result.css - } - - get css() { - return this.result.css - } - - get map() { - return this.result.map - } - - get messages() { - return [] - } - - get opts() { - return this.result.opts - } - - get processor() { - return this.result.processor - } - - get root() { - if (this._root) { - return this._root - } - - let root - let parser = parse - - try { - root = parser(this._css, this._opts) - } catch (error) { - this.error = error - } - - if (this.error) { - throw this.error - } else { - this._root = root - return root - } - } - - get [Symbol.toStringTag]() { - return 'NoWorkResult' - } } module.exports = NoWorkResult diff --git a/lib/node.d.ts b/lib/node.d.ts index 359767026..aa7229f83 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -234,14 +234,6 @@ declare abstract class Node_ { constructor(defaults?: object) - /** - * If this node isn't already dirty, marks it and its ancestors as such. This - * indicates to the LazyResult processor that the {@link Root} has been - * modified by the current plugin and may need to be processed again by other - * plugins. - */ - protected markDirty(): void - /** * Insert new node after current node to current node’s parent. * @@ -534,6 +526,14 @@ declare abstract class Node_ { * @return `Warning` instance is returned */ warn(result: Result, message: string, options?: WarningOptions): Warning + + /** + * If this node isn't already dirty, marks it and its ancestors as such. This + * indicates to the LazyResult processor that the {@link Root} has been + * modified by the current plugin and may need to be processed again by other + * plugins. + */ + protected markDirty(): void } declare class Node extends Node_ {} diff --git a/lib/node.js b/lib/node.js index f6d28a3e9..2b865ba37 100644 --- a/lib/node.js +++ b/lib/node.js @@ -63,6 +63,10 @@ function sourceOffset(inputCSS, position) { } class Node { + get proxyOf() { + return this + } + constructor(defaults = {}) { this.raws = {} this[isClean] = false @@ -424,10 +428,6 @@ class Node { for (let i in opts) data[i] = opts[i] return result.warn(text, data) } - - get proxyOf() { - return this - } } module.exports = Node diff --git a/lib/postcss.d.mts b/lib/postcss.d.mts index 4cf5b4923..d343f3cdf 100644 --- a/lib/postcss.d.mts +++ b/lib/postcss.d.mts @@ -1,69 +1,69 @@ export { - // postcss function / namespace - default, - - // Value exports from postcss.mjs - stringify, - fromJSON, - // @ts-expect-error This value exists, but it’s untyped. - plugin, - parse, - list, - document, - comment, - atRule, - rule, - decl, - root, - CssSyntaxError, - Declaration, - Container, - Processor, - Document, - Comment, - Warning, - AtRule, - Result, - Input, - Rule, - Root, - Node, - // Type-only exports AcceptedPlugin, + AnyNode, + atRule, + AtRule, AtRuleProps, Builder, ChildNode, ChildProps, + comment, + Comment, CommentProps, + Container, ContainerProps, + CssSyntaxError, + decl, + Declaration, DeclarationProps, + // postcss function / namespace + default, + document, + Document, DocumentProps, FilePosition, + fromJSON, Helpers, + Input, + JSONHydrator, + // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here. + type LazyResult, + list, Message, + Node, NodeErrorOptions, NodeProps, OldPlugin, + parse, Parser, + // @ts-expect-error This value exists, but it’s untyped. + plugin, Plugin, PluginCreator, Position, Postcss, ProcessOptions, + Processor, + Result, + root, + Root, RootProps, + rule, + Rule, RuleProps, Source, SourceMap, SourceMapOptions, Stringifier, + // Value exports from postcss.mjs + stringify, Syntax, TransformCallback, Transformer, - WarningOptions, + Warning, - // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here. - type LazyResult + WarningOptions } from './postcss.js' diff --git a/lib/result.d.ts b/lib/result.d.ts index 40e086f7b..3f52efb3d 100644 --- a/lib/result.d.ts +++ b/lib/result.d.ts @@ -142,6 +142,16 @@ declare class Result_ { */ root: RootNode + /** + * An alias for the `Result#css` property. + * Use it with syntaxes that generate non-CSS output. + * + * ```js + * result.css === result.content + * ``` + */ + get content(): string + /** * @param processor Processor used for this transformation. * @param root Root node after all transformations. @@ -188,16 +198,6 @@ declare class Result_ { * @return Warnings from plugins. */ warnings(): Warning[] - - /** - * An alias for the `Result#css` property. - * Use it with syntaxes that generate non-CSS output. - * - * ```js - * result.css === result.content - * ``` - */ - get content(): string } declare class Result extends Result_ {} diff --git a/lib/result.js b/lib/result.js index a39751de0..4ab2a8fc2 100644 --- a/lib/result.js +++ b/lib/result.js @@ -3,6 +3,10 @@ let Warning = require('./warning') class Result { + get content() { + return this.css + } + constructor(processor, root, opts) { this.processor = processor this.messages = [] @@ -32,10 +36,6 @@ class Result { warnings() { return this.messages.filter(i => i.type === 'warning') } - - get content() { - return this.css - } } module.exports = Result diff --git a/lib/rule.d.ts b/lib/rule.d.ts index ff617693e..9a951e7b1 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -83,14 +83,6 @@ declare class Rule_ extends Container { parent: ContainerWithChildren | undefined raws: Rule.RuleRaws type: 'rule' - constructor(defaults?: Rule.RuleProps) - - assign(overrides: object | Rule.RuleProps): this - clone(overrides?: Partial): this - - cloneAfter(overrides?: Partial): this - - cloneBefore(overrides?: Partial): this /** * The rule’s full selector represented as a string. * @@ -101,6 +93,7 @@ declare class Rule_ extends Container { * ``` */ get selector(): string + set selector(value: string) /** * An array containing the rule’s individual selectors. @@ -118,7 +111,14 @@ declare class Rule_ extends Container { * ``` */ get selectors(): string[] + set selectors(values: string[]) + + constructor(defaults?: Rule.RuleProps) + assign(overrides: object | Rule.RuleProps): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this } declare class Rule extends Rule_ {} diff --git a/lib/rule.js b/lib/rule.js index a93ab25bf..3b9b7e9bb 100644 --- a/lib/rule.js +++ b/lib/rule.js @@ -4,12 +4,6 @@ let Container = require('./container') let list = require('./list') class Rule extends Container { - constructor(defaults) { - super(defaults) - this.type = 'rule' - if (!this.nodes) this.nodes = [] - } - get selectors() { return list.comma(this.selector) } @@ -19,6 +13,12 @@ class Rule extends Container { let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') this.selector = values.join(sep) } + + constructor(defaults) { + super(defaults) + this.type = 'rule' + if (!this.nodes) this.nodes = [] + } } module.exports = Rule diff --git a/package.json b/package.json index c8db5b402..bdab886fa 100755 --- a/package.json +++ b/package.json @@ -90,19 +90,19 @@ "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^53.5.1", - "@size-limit/preset-small-lib": "^11.1.6", - "@types/node": "^22.13.1", + "@logux/eslint-config": "^54.4.0", + "@size-limit/preset-small-lib": "^11.2.0", + "@types/node": "^22.13.4", "c8": "^10.1.3", "check-dts": "^0.8.2", "clean-publish": "^5.1.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.20.0", + "eslint": "^9.20.1", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", "simple-git-hooks": "^2.11.1", - "size-limit": "^11.1.6", + "size-limit": "^11.2.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.2", "typescript": "^5.7.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fd70b2b8..c1041aa32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,14 +19,14 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^53.5.1 - version: 53.5.1(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + specifier: ^54.4.0 + version: 54.4.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) '@size-limit/preset-small-lib': - specifier: ^11.1.6 - version: 11.1.6(size-limit@11.1.6) + specifier: ^11.2.0 + version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^22.13.1 - version: 22.13.1 + specifier: ^22.13.4 + version: 22.13.4 c8: specifier: ^10.1.3 version: 10.1.3 @@ -40,8 +40,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.20.0 - version: 9.20.0(jiti@2.4.2) + specifier: ^9.20.1 + version: 9.20.1(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -55,14 +55,14 @@ importers: specifier: ^2.11.1 version: 2.11.1 size-limit: - specifier: ^11.1.6 - version: 11.1.6 + specifier: ^11.2.0 + version: 11.2.0 strip-ansi: specifier: ^6.0.1 version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.13.1)(typescript@5.7.3) + version: 10.9.2(@types/node@22.13.4)(typescript@5.7.3) typescript: specifier: ^5.7.3 version: 5.7.3 @@ -80,152 +80,152 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -244,10 +244,6 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.11.0': resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -264,8 +260,8 @@ packages: resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.2.6': + resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -309,8 +305,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@logux/eslint-config@53.5.1': - resolution: {integrity: sha512-rw8NxhTWPcqBTenTrKhuLwq4vpecogq+cw7g0q9/QTbj+Waj2POZMuhS7Dn9UoXkmJ5r5n1gdyURHKZsB8MOLg==} + '@logux/eslint-config@54.4.0': + resolution: {integrity: sha512-J7jgHYsFrrK/vnNoKdz2X5R4gnDYpvRCOeC+LvAsYzDC0FWavHjiqBAtLq7WlzsR0oOYGnEcS6tSOdHGa1z8Mg==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -341,22 +337,22 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@size-limit/esbuild@11.1.6': - resolution: {integrity: sha512-0nBKYSxeRjUVCVoCkWZbmGkGBwpm0HdwHedWgxksBGxTKU0PjOMSHc3XTjKOrXBKXQzw90Ue0mgOd4n6zct9SA==} + '@size-limit/esbuild@11.2.0': + resolution: {integrity: sha512-vSg9H0WxGQPRzDnBzeDyD9XT0Zdq0L+AI3+77/JhxznbSCMJMMr8ndaWVQRhOsixl97N0oD4pRFw2+R1Lcvi6A==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 11.1.6 + size-limit: 11.2.0 - '@size-limit/file@11.1.6': - resolution: {integrity: sha512-ojzzJMrTfcSECRnaTjGy0wNIolTCRdyqZTSWG9sG5XEoXG6PNgHXDDS6gf6YNxnqb+rWfCfVe93u6aKi3wEocQ==} + '@size-limit/file@11.2.0': + resolution: {integrity: sha512-OZHE3putEkQ/fgzz3Tp/0hSmfVo3wyTpOJSRNm6AmcwX4Nm9YtTfbQQ/hZRwbBFR23S7x2Sd9EbqYzngKwbRoA==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 11.1.6 + size-limit: 11.2.0 - '@size-limit/preset-small-lib@11.1.6': - resolution: {integrity: sha512-hlmkBlOryJIsKlGpS61Ti7/EEZomygAzOabpo2htdxUbkCkvtVoUQpGWHUfWuxdhheDVF6rtZZ6lPGftMKlaQg==} + '@size-limit/preset-small-lib@11.2.0': + resolution: {integrity: sha512-RFbbIVfv8/QDgTPyXzjo5NKO6CYyK5Uq5xtNLHLbw5RgSKrgo8WpiB/fNivZuNd/5Wk0s91PtaJ9ThNcnFuI3g==} peerDependencies: - size-limit: 11.1.6 + size-limit: 11.2.0 '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -382,57 +378,57 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.13.1': - resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} + '@types/node@22.13.4': + resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.24.0': - resolution: {integrity: sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==} + '@typescript-eslint/eslint-plugin@8.24.1': + resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.24.0': - resolution: {integrity: sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==} + '@typescript-eslint/parser@8.24.1': + resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.24.0': - resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} + '@typescript-eslint/scope-manager@8.24.1': + resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.24.0': - resolution: {integrity: sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==} + '@typescript-eslint/type-utils@8.24.1': + resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.24.0': - resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} + '@typescript-eslint/types@8.24.1': + resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.24.0': - resolution: {integrity: sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==} + '@typescript-eslint/typescript-estree@8.24.1': + resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.24.0': - resolution: {integrity: sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==} + '@typescript-eslint/utils@8.24.1': + resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.24.0': - resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} + '@typescript-eslint/visitor-keys@8.24.1': + resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: @@ -533,8 +529,8 @@ packages: monocart-coverage-reports: optional: true - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} call-bind@1.0.8: @@ -689,15 +685,16 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} hasBin: true @@ -770,24 +767,11 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@3.9.1: - resolution: {integrity: sha512-9WRzf6XaAxF4Oi5t/3TqKP5zUjERhasHmLFHin2Yw6ZAp/EP/EVA2dr3BhQrrHWCm5SzTMZf0FcjDnBkO2xFkA==} + eslint-plugin-perfectionist@4.9.0: + resolution: {integrity: sha512-76lDfJnonOcXGW3bEXuqhEGId0LrOlvIE1yLHvK/eKMMPOc0b43KchAIR2Bdbqlg+LPXU5/Q+UzuzkO+cWHT6w==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - astro-eslint-parser: ^1.0.2 eslint: '>=8.0.0' - svelte: '>=3.0.0' - svelte-eslint-parser: ^0.41.1 - vue-eslint-parser: '>=9.0.0' - peerDependenciesMeta: - astro-eslint-parser: - optional: true - svelte: - optional: true - svelte-eslint-parser: - optional: true - vue-eslint-parser: - optional: true eslint-plugin-prefer-let@4.0.0: resolution: {integrity: sha512-X4ep5PMO1320HKaNC9DM5+p6XvOhwv+RcqGjhv3aiw9iAtHhiFtdIUB5l0Zya0iM22ys2BGKzrNI9Xpw/ZHooQ==} @@ -811,8 +795,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.20.0: - resolution: {integrity: sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==} + eslint@9.20.1: + resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -881,11 +865,11 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - for-each@0.3.4: - resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} foreground-child@3.3.0: @@ -937,8 +921,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} globalthis@1.0.4: @@ -1216,8 +1200,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.0.9: - resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + nanoid@5.1.0: + resolution: {integrity: sha512-zDAl/llz8Ue/EblwSYwdxGBYfj46IM1dhjVi8dyp9LQffoIGxJEAHj2oeZ4uNcgycSRcQ83CnfcZqEJzVDLcDw==} engines: {node: ^18 || >=20} hasBin: true @@ -1228,12 +1212,13 @@ packages: resolution: {integrity: sha512-wvmmALNstRRhLhy7RV11NCRY2k1zxstImiju4VyyKNNRIKDVjyBtmEd/Q4G82/3dN4VSTe+0PRR3DUAASSbEEQ==} engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || ^16.0.0 || ^18.0.0 || >=20.0.0} - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -1325,8 +1310,8 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - readdirp@4.1.1: - resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} reflect.getprototypeof@1.0.10: @@ -1433,8 +1418,8 @@ packages: resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} hasBin: true - size-limit@11.1.6: - resolution: {integrity: sha512-S5ux2IB8rU26xwVgMskmknGMFkieaIAqDLuwgKiypk6oa4lFsie8yFPrzRFV+yrLDY2GddjXuCaVk5PveVOHiQ==} + size-limit@11.2.0: + resolution: {integrity: sha512-2kpQq2DD/pRpx3Tal/qRW1SYwcIeQ0iq8li5CJHQgOC+FtPn2BVmuDtzUCgNnpCrbgtfEHqh+iWzxK+Tq6C+RQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -1498,8 +1483,8 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + tinyglobby@0.2.11: + resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: @@ -1549,8 +1534,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.24.0: - resolution: {integrity: sha512-/lmv4366en/qbB32Vz5+kCNZEMf6xYHwh1z48suBwZvAtnXKbP+YhGe8OLE2BqC67LMqKkCNLtjejdwsdW6uOQ==} + typescript-eslint@8.24.1: + resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1656,84 +1641,84 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.0': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.0': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.0': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.0': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.0': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.0': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.0': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.0': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.0': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.0': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.0': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.0': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.0': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.0': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.0': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.0': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.0': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/netbsd-arm64@0.25.0': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-x64@0.25.0': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.25.0': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.0': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.0': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.0': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.0': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-x64@0.25.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.20.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1(jiti@2.4.2))': dependencies: - eslint: 9.20.0(jiti@2.4.2) + eslint: 9.20.1(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -1746,10 +1731,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@0.11.0': dependencies: '@types/json-schema': 7.0.15 @@ -1772,9 +1753,9 @@ snapshots: '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.6': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.11.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -1815,26 +1796,23 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@53.5.1(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': + '@logux/eslint-config@54.4.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint/eslintrc': 3.2.0 - eslint: 9.20.0(jiti@2.4.2) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)))(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-n: 17.15.1(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 3.9.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.1(jiti@2.4.2) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.1(jiti@2.4.2)))(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-n: 17.15.1(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-perfectionist: 4.9.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.20.0(jiti@2.4.2)) - typescript-eslint: 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-promise: 7.2.1(eslint@9.20.1(jiti@2.4.2)) + typescript-eslint: 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - '@typescript-eslint/parser' - - astro-eslint-parser - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - - svelte-eslint-parser - typescript - - vue-eslint-parser '@nodelib/fs.scandir@2.1.5': dependencies: @@ -1853,21 +1831,21 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@size-limit/esbuild@11.1.6(size-limit@11.1.6)': + '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: - esbuild: 0.24.2 - nanoid: 5.0.9 - size-limit: 11.1.6 + esbuild: 0.25.0 + nanoid: 5.1.0 + size-limit: 11.2.0 - '@size-limit/file@11.1.6(size-limit@11.1.6)': + '@size-limit/file@11.2.0(size-limit@11.2.0)': dependencies: - size-limit: 11.1.6 + size-limit: 11.2.0 - '@size-limit/preset-small-lib@11.1.6(size-limit@11.1.6)': + '@size-limit/preset-small-lib@11.2.0(size-limit@11.2.0)': dependencies: - '@size-limit/esbuild': 11.1.6(size-limit@11.1.6) - '@size-limit/file': 11.1.6(size-limit@11.1.6) - size-limit: 11.1.6 + '@size-limit/esbuild': 11.2.0(size-limit@11.2.0) + '@size-limit/file': 11.2.0(size-limit@11.2.0) + size-limit: 11.2.0 '@tsconfig/node10@1.0.11': {} @@ -1885,21 +1863,21 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@22.13.1': + '@types/node@22.13.4': dependencies: undici-types: 6.20.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/type-utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.24.0 - eslint: 9.20.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/type-utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.24.1 + eslint: 9.20.1(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -1908,40 +1886,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 - eslint: 9.20.0(jiti@2.4.2) + eslint: 9.20.1(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.24.0': + '@typescript-eslint/scope-manager@8.24.1': dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 - '@typescript-eslint/type-utils@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.20.0(jiti@2.4.2) + eslint: 9.20.1(jiti@2.4.2) ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.24.0': {} + '@typescript-eslint/types@8.24.1': {} - '@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -1952,20 +1930,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) - eslint: 9.20.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + eslint: 9.20.1(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.24.0': + '@typescript-eslint/visitor-keys@8.24.1': dependencies: - '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/types': 8.24.1 eslint-visitor-keys: 4.2.0 acorn-jsx@5.3.2(acorn@8.14.0): @@ -2020,21 +1998,21 @@ snapshots: es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: @@ -2083,21 +2061,21 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 - call-bind-apply-helpers@1.0.1: + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 get-intrinsic: 1.2.7 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.2.7 callsites@3.1.0: {} @@ -2117,7 +2095,7 @@ snapshots: chokidar@4.0.3: dependencies: - readdirp: 4.1.1 + readdirp: 4.1.2 clean-publish@5.1.0: dependencies: @@ -2206,7 +2184,7 @@ snapshots: dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 @@ -2290,7 +2268,7 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 @@ -2300,49 +2278,49 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild@0.24.2: + esbuild@0.25.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.20.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.20.1(jiti@2.4.2)): dependencies: - eslint: 9.20.0(jiti@2.4.2) + eslint: 9.20.1(jiti@2.4.2) semver: 7.7.1 - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)))(eslint@9.20.0(jiti@2.4.2)): + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.1(jiti@2.4.2)))(eslint@9.20.1(jiti@2.4.2)): dependencies: - eslint: 9.20.0(jiti@2.4.2) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-n: 17.15.1(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-promise: 7.2.1(eslint@9.20.0(jiti@2.4.2)) + eslint: 9.20.1(jiti@2.4.2) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-n: 17.15.1(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.20.1(jiti@2.4.2)) eslint-import-resolver-node@0.3.9: dependencies: @@ -2352,24 +2330,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.1(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.20.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.20.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.20.1(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.20.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.20.0(jiti@2.4.2)) + eslint: 9.20.1(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.20.1(jiti@2.4.2)) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -2378,9 +2356,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.20.0(jiti@2.4.2) + eslint: 9.20.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.1(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -2392,31 +2370,30 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)): + eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.20.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.20.0(jiti@2.4.2)) + eslint: 9.20.1(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.20.1(jiti@2.4.2)) get-tsconfig: 4.10.0 - globals: 15.14.0 + globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.1 - eslint-plugin-perfectionist@3.9.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-perfectionist@4.9.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.20.0(jiti@2.4.2) - minimatch: 9.0.5 - natural-compare-lite: 1.4.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.1(jiti@2.4.2) + natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript @@ -2425,10 +2402,10 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.20.1(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) - eslint: 9.20.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) + eslint: 9.20.1(jiti@2.4.2) eslint-scope@8.2.0: dependencies: @@ -2439,15 +2416,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.20.0(jiti@2.4.2): + eslint@9.20.1(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 '@eslint/core': 0.11.0 '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.20.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/plugin-kit': 0.2.6 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -2535,12 +2512,12 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatted@3.3.3: {} - for-each@0.3.4: + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -2566,7 +2543,7 @@ snapshots: get-intrinsic@1.2.7: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 @@ -2611,7 +2588,7 @@ snapshots: globals@14.0.0: {} - globals@15.14.0: {} + globals@15.15.0: {} globalthis@1.0.4: dependencies: @@ -2865,7 +2842,7 @@ snapshots: nanoid@3.3.8: {} - nanoid@5.0.9: {} + nanoid@5.1.0: {} nanospinner@1.2.2: dependencies: @@ -2873,10 +2850,10 @@ snapshots: nanospy@1.0.0: {} - natural-compare-lite@1.4.0: {} - natural-compare@1.4.0: {} + natural-orderby@5.0.0: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -2968,7 +2945,7 @@ snapshots: queue-microtask@1.2.3: {} - readdirp@4.1.1: {} + readdirp@4.1.2: {} reflect.getprototypeof@1.0.10: dependencies: @@ -3097,7 +3074,7 @@ snapshots: simple-git-hooks@2.11.1: {} - size-limit@11.1.6: + size-limit@11.2.0: dependencies: bytes-iec: 3.1.1 chokidar: 4.0.3 @@ -3105,7 +3082,7 @@ snapshots: lilconfig: 3.1.3 nanospinner: 1.2.2 picocolors: 1.1.1 - tinyglobby: 0.2.10 + tinyglobby: 0.2.11 source-map-js@1.2.1: {} @@ -3172,7 +3149,7 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - tinyglobby@0.2.10: + tinyglobby@0.2.11: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 @@ -3185,14 +3162,14 @@ snapshots: dependencies: typescript: 5.7.3 - ts-node@10.9.2(@types/node@22.13.1)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.1 + '@types/node': 22.13.4 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -3223,7 +3200,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -3232,7 +3209,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -3241,18 +3218,18 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.20.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.1(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color @@ -3342,7 +3319,7 @@ snapshots: available-typed-arrays: 1.0.7 call-bind: 1.0.8 call-bound: 1.0.3 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-tostringtag: 1.0.2 diff --git a/test/container.test.ts b/test/container.test.ts index 0a4b2d69a..9e8f22402 100755 --- a/test/container.test.ts +++ b/test/container.test.ts @@ -20,14 +20,14 @@ let example = test('throws error on declaration without value', () => { throws(() => { - // @ts-expect-error + // @ts-expect-error Testing invalid API new Rule().append({ prop: 'color', vlaue: 'black' }) }, /Value field is missed/) }) test('throws error on unknown node type', () => { throws(() => { - // @ts-expect-error + // @ts-expect-error Testing invalid API new Rule().append({ foo: 'bar' }) }, /Unknown node type/) }) @@ -843,7 +843,7 @@ test('normalize() does not normalize new children with exists before', () => { test('forces Declaration#value to be string', () => { let rule = parse('a { a: 1; b: 2 }').first as Rule - // @ts-expect-error + // @ts-expect-error Testing invalid API rule.append({ prop: 'c', value: 3 }) let aDecl = rule.first as Declaration let cDecl = rule.last as Declaration diff --git a/test/declaration.test.ts b/test/declaration.test.ts index eacbb8735..75eb003b1 100755 --- a/test/declaration.test.ts +++ b/test/declaration.test.ts @@ -31,7 +31,7 @@ test('clones spaces from another declaration', () => { }) test('converts value to string', () => { - // @ts-expect-error + // @ts-expect-error Testing invalid API let decl = new Declaration({ prop: 'color', value: 1 }) is(decl.value, '1') }) diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index 92af5a8c5..b83c18c45 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -38,7 +38,7 @@ test('throws error on sync()', () => { throws(() => noWorkResult.sync(), 'AAA') }) -test('returns cached root on second access', async () => { +test('returns cached root on second access', () => { let result = new NoWorkResult(processor, 'a {}', { from: '/a.css' }) result.root @@ -102,74 +102,82 @@ test('prints its object type', () => { }) test('no work result matches lazy result', async () => { - let source = '.foo { color: red }\n'; + let source = '.foo { color: red }\n' let noWorkResult = await postcss([]).process(source, { from: 'foo.css', map: false - }); + }) let lazyResult = await postcss([]).process(source, { from: 'foo.css', map: false, syntax: { parse, stringify } - }); + }) - equal(noWorkResult.css, lazyResult.css); + equal(noWorkResult.css, lazyResult.css) }) // https://github.com/postcss/postcss/issues/1911 test('no work result matches lazy result when map is true', async () => { - let source = '.foo { color: red }\n'; + let source = '.foo { color: red }\n' let noWorkResult = await postcss([]).process(source, { from: 'foo.css', map: true - }); + }) - equal(noWorkResult.css, '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZm9vLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb28geyBjb2xvcjogcmVkIH1cbiJdfQ== */'); + equal( + noWorkResult.css, + '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZm9vLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb28geyBjb2xvcjogcmVkIH1cbiJdfQ== */' + ) let lazyResult = await postcss([]).process(source, { from: 'foo.css', map: true, syntax: { parse, stringify } - }); + }) - equal(lazyResult.css, '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXIiwiZmlsZSI6ImZvby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vIHsgY29sb3I6IHJlZCB9XG4iXX0= */'); + equal( + lazyResult.css, + '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXIiwiZmlsZSI6ImZvby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vIHsgY29sb3I6IHJlZCB9XG4iXX0= */' + ) }) test('no work result matches lazy result when the source contains an inline source map', async () => { - let source = '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXIiwiZmlsZSI6ImZvby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vIHsgY29sb3I6IHJlZCB9XG4iXX0= */\n'; + let source = + '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXIiwiZmlsZSI6ImZvby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vIHsgY29sb3I6IHJlZCB9XG4iXX0= */\n' let noWorkResult = await postcss([]).process(source, { from: 'foo.css', map: false - }); + }) let lazyResult = await postcss([]).process(source, { from: 'foo.css', map: false, syntax: { parse, stringify } - }); + }) - equal(noWorkResult.css, lazyResult.css); + equal(noWorkResult.css, lazyResult.css) }) test('no work result matches lazy result when map is true and the source contains an inline source map', async () => { - let source = '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXIiwiZmlsZSI6ImZvby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vIHsgY29sb3I6IHJlZCB9XG4iXX0= */\n'; + let source = + '.foo { color: red }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXIiwiZmlsZSI6ImZvby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vIHsgY29sb3I6IHJlZCB9XG4iXX0= */\n' let lazyResult = await postcss([]).process(source, { from: 'bar.css', map: true, syntax: { parse, stringify } - }); + }) let noWorkResult = await postcss([]).process(source, { from: 'bar.css', map: true - }); + }) - equal(noWorkResult.css, lazyResult.css); + equal(noWorkResult.css, lazyResult.css) }) test.run() diff --git a/test/node.test.ts b/test/node.test.ts index e1b6ca3eb..b8f3a7b4d 100755 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -207,7 +207,7 @@ test('clone() keeps code style', () => { test('clone() works with null in raws', () => { let decl = new Declaration({ prop: 'color', - // @ts-expect-error + // @ts-expect-error Testing invalid input raws: { value: null }, value: 'black' }) @@ -542,9 +542,9 @@ test('rangeBy() returns range for word when offsets are missing', () => { let a = css.first as Rule let one = a.first as Declaration - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (one.source?.start) delete one.source.start.offset - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (one.source?.end) delete one.source.end.offset equal(one.rangeBy({ word: 'one' }), { @@ -586,13 +586,13 @@ test('rangeBy() returns range for word even after AST mutations when offsets are let one = a.first as Declaration let two = one.next() as Declaration - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (a.source?.start) delete a.source.start.offset - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (a.source?.end) delete a.source.end.offset - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (two.source?.start) delete two.source.start.offset - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (two.source?.end) delete two.source.end.offset equal(a.rangeBy({ word: 'two' }), { @@ -631,9 +631,9 @@ test('rangeBy() returns range for index and endIndex when offsets are missing', let a = css.first as Rule let one = a.first as Declaration - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (one.source?.start) delete one.source.start.offset - // @ts-expect-error + // @ts-expect-error Testing non-standard AST if (one.source?.end) delete one.source.end.offset equal(one.rangeBy({ endIndex: 3, index: 1 }), { diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 683aef570..7c3325197 100755 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -112,7 +112,7 @@ test('contains list module', () => { test('works with null', () => { throws(() => { - // @ts-expect-error + // @ts-expect-error Testing invalid input postcss([() => {}]).process(null).css }, /PostCSS received null instead of CSS string/) }) diff --git a/test/previous-map.test.ts b/test/previous-map.test.ts index 0f97abca8..efda7ff92 100755 --- a/test/previous-map.test.ts +++ b/test/previous-map.test.ts @@ -162,7 +162,7 @@ test('raises on unknown inline encoding', () => { test('raises on unknown map format', () => { throws(() => { - // @ts-expect-error + // @ts-expect-error Invalid input parse('a{}', { map: { prev: 1 } }) }, 'Unsupported previous source map format: 1') }) diff --git a/test/processor.test.ts b/test/processor.test.ts index f1ed61831..74803073d 100755 --- a/test/processor.test.ts +++ b/test/processor.test.ts @@ -1,4 +1,3 @@ -// @ts-ignore type definitions for nanodelay@1 are wrong. import { delay } from 'nanodelay' import { restoreAll, spyOn } from 'nanospy' import { resolve as pathResolve } from 'path' @@ -103,7 +102,7 @@ test('returns itself', () => { test('throws on wrong format', () => { let pr = new Processor() throws(() => { - // @ts-expect-error + // @ts-expect-error Testing invalid API pr.use(1) }, /1 is not a PostCSS plugin/) }) @@ -300,8 +299,8 @@ test('supports async errors', async () => { let err1 = await catchError(async () => await result) equal(err1, error) - let err2: Error | undefined - result.catch(catched => { + let err2: unknown + result.catch((catched: unknown) => { err2 = catched }) await delay(10) @@ -337,7 +336,7 @@ test('throws error on sync method to async plugin', () => { }, /async/) }) -test('throws a sync call in async running', async () => { +test('throws a sync call in async running', () => { let async = (): Promise => new Promise(resolve => setTimeout(resolve, 1)) @@ -495,7 +494,7 @@ test('throws on syntax as plugin', () => { let processor = new Processor([() => {}]) throws(() => { processor.use({ - // @ts-expect-error + // @ts-expect-error Testing invalid API parse() {} }) }, /syntax/) @@ -518,7 +517,7 @@ test('warns about missed from', async () => { ]) }) -test('returns NoWorkResult object', async () => { +test('returns NoWorkResult object', () => { let result = new Processor().process('a{}') instance(result, NoWorkResult) }) @@ -526,10 +525,10 @@ test('returns NoWorkResult object', async () => { test('without plugins parses CSS only on root access', async () => { let noWorkResult = new Processor().process('a{}') let result = await noWorkResult - // @ts-expect-error + // @ts-expect-error Testing private API type(noWorkResult._root, 'undefined') is(result.root.nodes.length, 1) - // @ts-expect-error + // @ts-expect-error Testing private API not.type(noWorkResult._root, 'undefined') is(noWorkResult.root.nodes.length, 1) }) @@ -543,7 +542,7 @@ test('catches error with empty processor', async () => { let err = await catchError(async () => await noWorkResult) - noWorkResult.catch(e => { + noWorkResult.catch((e: unknown) => { instance(e, CssSyntaxError) }) diff --git a/test/visitor.test.ts b/test/visitor.test.ts index e2a663872..72557ab25 100755 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -1,4 +1,3 @@ -// @ts-ignore type definitions for nanodelay@1 are wrong. import { delay } from 'nanodelay' import { basename, resolve } from 'path' import { test } from 'uvu' @@ -18,9 +17,11 @@ import postcss, { function hasAlready(parent: Container | undefined, selector: string): boolean { if (typeof parent === 'undefined') return false - return parent.nodes?.some(i => { - return i.type === 'rule' && i.selectors.includes(selector) - }) ?? false + return ( + parent.nodes?.some(i => { + return i.type === 'rule' && i.selectors.includes(selector) + }) ?? false + ) } function addIndex(array: any[][]): any[][] { @@ -264,7 +265,7 @@ test('works classic plugin replace-color', async () => { is(css, '.a{ color: green; } ' + '.b{ will-change: transform; }') }) -test('works visitor plugin will-change', async () => { +test('works visitor plugin will-change', () => { let { css } = postcss([willChangeVisitor]).process( '.foo { will-change: transform; }', { from: 'a.css' } @@ -508,7 +509,7 @@ test('works visitor plugins postcss-focus and hidden; sequence 2', async () => { is(css, expectedFocusHidden) }) -test('works visitor plugin postcss-alias', async () => { +test('works visitor plugin postcss-alias', () => { let input = '@alias { fs: font-size; bg: background; }' + '.aliased { fs: 16px; bg: white; }' @@ -517,7 +518,7 @@ test('works visitor plugin postcss-alias', async () => { is(css, expected) }) -test('adds plugin to error', async () => { +test('adds plugin to error', () => { let broken: Plugin = { postcssPlugin: 'broken', Rule(rule) { @@ -572,7 +573,7 @@ test('adds sync plugin to async error', async () => { is(error.stack.includes('broken.css:1:1'), true) }) -test('adds node to error', async () => { +test('adds node to error', () => { let broken: Plugin = { postcssPlugin: 'broken', Rule() { From 22c309d32924e1eeb33c80a6a50b7ba8a43a1832 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 19 Feb 2025 14:45:28 +0100 Subject: [PATCH 2868/3047] Release 8.5.3 version --- CHANGELOG.md | 5 +++++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca9885119..ad10ecf7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.3 +* Added more details to `Unknown word` error (by @hiepxanh). +* Fixed types (by @romainmenke). +* Fixed docs (by @catnipan). + ## 8.5.2 * Fixed end position of rules with semicolon (by @romainmenke). diff --git a/lib/processor.js b/lib/processor.js index 2fa743e86..c38be5326 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.2' + this.version = '8.5.3' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index bdab886fa..b194b4d3d 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.2", + "version": "8.5.3", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 7ac43db0c30c08dc799a55e5f2f1f269a61b6856 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 21 Feb 2025 20:16:34 +0000 Subject: [PATCH 2869/3047] Update ESLint config --- package.json | 2 +- pnpm-lock.yaml | 1164 +++--------------------------------------------- 2 files changed, 71 insertions(+), 1095 deletions(-) diff --git a/package.json b/package.json index b194b4d3d..de9a51269 100755 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^54.4.0", + "@logux/eslint-config": "^55.0.1", "@size-limit/preset-small-lib": "^11.2.0", "@types/node": "^22.13.4", "c8": "^10.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c1041aa32..c8cea535a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^54.4.0 - version: 54.4.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + specifier: ^55.0.1 + version: 55.0.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) @@ -248,6 +248,10 @@ packages: resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -260,8 +264,8 @@ packages: resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.6': - resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==} + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -280,8 +284,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} '@isaacs/cliui@8.0.2': @@ -305,18 +309,21 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@logux/eslint-config@54.4.0': - resolution: {integrity: sha512-J7jgHYsFrrK/vnNoKdz2X5R4gnDYpvRCOeC+LvAsYzDC0FWavHjiqBAtLq7WlzsR0oOYGnEcS6tSOdHGa1z8Mg==} + '@logux/eslint-config@55.0.1': + resolution: {integrity: sha512-CPt/SMMlYo4kEdg1P7iusJLqqMt0ljL90PIIsZTnzHUdT0u6zexfwCYLwKGVLqnrDLAOE5a/Uvo+z4YcfUJPMQ==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-svelte: ^2.35.1 + eslint-plugin-svelte: ^3.0.0-next.18 svelte: ^4.2.12 || ^5.0.0 + svelte-eslint-parser: ^1.0.0-next.13 peerDependenciesMeta: eslint-plugin-svelte: optional: true svelte: optional: true + svelte-eslint-parser: + optional: true '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -334,9 +341,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@size-limit/esbuild@11.2.0': resolution: {integrity: sha512-vSg9H0WxGQPRzDnBzeDyD9XT0Zdq0L+AI3+77/JhxznbSCMJMMr8ndaWVQRhOsixl97N0oD4pRFw2+R1Lcvi6A==} engines: {node: ^18.0.0 || >=20.0.0} @@ -366,6 +370,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@types/doctrine@0.0.9': + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -375,9 +382,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.13.4': resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} @@ -470,38 +474,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -529,18 +501,6 @@ packages: monocart-coverage-reports: optional: true - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -592,18 +552,6 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -624,14 +572,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -644,13 +584,9 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -665,34 +601,6 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - esbuild@0.25.0: resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} @@ -712,54 +620,20 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - eslint-plugin-es-x@7.8.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} + eslint-plugin-import-x@4.6.1: + resolution: {integrity: sha512-wluSUifMIb7UfwWXqx7Yx0lE/SGCcGXECLx/9bCmbY2nneLwvAZ4vkd1IXDjPKFvdcdUgr1BaRnaRpx3k2+Pfw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^8.57.0 || ^9.0.0 eslint-plugin-n@17.15.1: resolution: {integrity: sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==} @@ -868,10 +742,6 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -879,29 +749,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} @@ -925,13 +776,9 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} + globals@16.0.0: + resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + engines: {node: '>=18'} graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -939,29 +786,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -981,113 +809,26 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1123,10 +864,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -1159,10 +896,6 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1178,9 +911,6 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -1219,38 +949,10 @@ packages: resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} engines: {node: '>=18'} - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -1292,10 +994,6 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss-parser-tests@8.9.0: resolution: {integrity: sha512-WGbGB0FMGoaaBz5AVLXscO76ibgm1ZjBD2weWHhFQSrQ8HyVhNqZDLZSVejIZSd7pQ7SX73EUTHZjx3Jbg60zw==} @@ -1314,14 +1012,6 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -1353,39 +1043,11 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - semver@7.7.1: resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1394,22 +1056,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -1431,6 +1077,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1439,18 +1088,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1459,10 +1096,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -1483,8 +1116,8 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - tinyglobby@0.2.11: - resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==} + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: @@ -1511,29 +1144,13 @@ packages: '@swc/wasm': optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - typescript-eslint@8.24.1: resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1546,10 +1163,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} @@ -1580,22 +1193,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1735,6 +1332,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.12.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 @@ -1753,9 +1354,9 @@ snapshots: '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.6': + '@eslint/plugin-kit@0.2.7': dependencies: - '@eslint/core': 0.11.0 + '@eslint/core': 0.12.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -1769,7 +1370,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.2': {} '@isaacs/cliui@8.0.2': dependencies: @@ -1796,21 +1397,18 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@54.4.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': + '@logux/eslint-config@55.0.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint/eslintrc': 3.2.0 eslint: 9.20.1(jiti@2.4.2) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.1(jiti@2.4.2)))(eslint@9.20.1(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-import-x: 4.6.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) eslint-plugin-n: 17.15.1(eslint@9.20.1(jiti@2.4.2)) eslint-plugin-perfectionist: 4.9.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) eslint-plugin-prefer-let: 4.0.0 eslint-plugin-promise: 7.2.1(eslint@9.20.1(jiti@2.4.2)) + globals: 16.0.0 typescript-eslint: 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - typescript @@ -1829,8 +1427,6 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rtsao/scc@1.1.0': {} - '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: esbuild: 0.25.0 @@ -1855,14 +1451,14 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@types/doctrine@0.0.9': {} + '@types/estree@1.0.6': {} '@types/istanbul-lib-coverage@2.0.6': {} '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} - '@types/node@22.13.4': dependencies: undici-types: 6.20.0 @@ -1977,59 +1573,6 @@ snapshots: argparse@2.0.1: {} - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - is-string: 1.1.1 - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - is-array-buffer: 3.0.5 - - async-function@1.0.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - balanced-match@1.0.2: {} brace-expansion@1.1.11: @@ -2061,23 +1604,6 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.2.7 - set-function-length: 1.2.2 - - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.2.7 - callsites@3.1.0: {} chalk@4.1.2: @@ -2132,24 +1658,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - debug@3.2.7: dependencies: ms: 2.1.3 @@ -2160,34 +1668,16 @@ snapshots: deep-is@0.1.4: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - dequal@2.0.3: {} diff@4.0.2: {} diff@5.2.0: {} - doctrine@2.1.0: + doctrine@3.0.0: dependencies: esutils: 2.0.3 - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - eastasianwidth@0.2.0: {} emoji-regex@8.0.0: {} @@ -2199,85 +1689,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - esbuild@0.25.0: optionalDependencies: '@esbuild/aix-ppc64': 0.25.0 @@ -2315,13 +1726,6 @@ snapshots: eslint: 9.20.1(jiti@2.4.2) semver: 7.7.1 - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)))(eslint-plugin-promise@7.2.1(eslint@9.20.1(jiti@2.4.2)))(eslint@9.20.1(jiti@2.4.2)): - dependencies: - eslint: 9.20.1(jiti@2.4.2) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)) - eslint-plugin-n: 17.15.1(eslint@9.20.1(jiti@2.4.2)) - eslint-plugin-promise: 7.2.1(eslint@9.20.1(jiti@2.4.2)) - eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -2330,16 +1734,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.1(jiti@2.4.2)): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.20.1(jiti@2.4.2) - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.20.1(jiti@2.4.2)): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) @@ -2347,34 +1741,25 @@ snapshots: eslint: 9.20.1(jiti@2.4.2) eslint-compat-utils: 0.5.1(eslint@9.20.1(jiti@2.4.2)) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2)): + eslint-plugin-import-x@4.6.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 + '@types/doctrine': 0.0.9 + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + debug: 4.4.0 + doctrine: 3.0.0 + enhanced-resolve: 5.18.1 eslint: 9.20.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.1(jiti@2.4.2)) - hasown: 2.0.2 - is-core-module: 2.16.1 + get-tsconfig: 4.10.0 is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + minimatch: 9.0.5 + semver: 7.7.1 + stable-hash: 0.0.4 + tslib: 2.8.1 transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color + - typescript eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)): dependencies: @@ -2424,10 +1809,10 @@ snapshots: '@eslint/core': 0.11.0 '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.20.0 - '@eslint/plugin-kit': 0.2.6 + '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -2517,10 +1902,6 @@ snapshots: flatted@3.3.3: {} - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.3.0: dependencies: cross-spawn: 7.0.6 @@ -2528,43 +1909,8 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - get-caller-file@2.0.5: {} - get-intrinsic@1.2.7: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - get-tsconfig@4.10.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -2590,35 +1936,14 @@ snapshots: globals@15.15.0: {} - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - gopd@1.2.0: {} + globals@16.0.0: {} graceful-fs@4.2.11: {} graphemer@1.4.0: {} - has-bigints@1.1.0: {} - has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -2634,121 +1959,20 @@ snapshots: imurmurhash@0.1.4: {} - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.3 - is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-map@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.3 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.18 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.3 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - - isarray@2.0.5: {} - isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -2782,10 +2006,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -2813,8 +2033,6 @@ snapshots: make-error@1.3.6: {} - math-intrinsics@1.1.0: {} - merge2@1.4.1: {} micromatch@4.0.8: @@ -2830,8 +2048,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimist@1.2.8: {} - minipass@7.1.2: {} mri@1.2.0: {} @@ -2854,39 +2070,6 @@ snapshots: natural-orderby@5.0.0: {} - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -2896,12 +2079,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.2.7 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -2933,8 +2110,6 @@ snapshots: picomatch@4.0.2: {} - possible-typed-array-names@1.1.0: {} - postcss-parser-tests@8.9.0: dependencies: picocolors: 1.1.1 @@ -2947,26 +2122,6 @@ snapshots: readdirp@4.1.2: {} - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - require-directory@2.1.1: {} requireindex@1.2.0: {} @@ -2991,85 +2146,14 @@ snapshots: dependencies: mri: 1.2.0 - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - - semver@6.3.1: {} - semver@7.7.1: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.7 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - signal-exit@4.1.0: {} simple-git-hooks@2.11.1: {} @@ -3082,12 +2166,14 @@ snapshots: lilconfig: 3.1.3 nanospinner: 1.2.2 picocolors: 1.1.1 - tinyglobby: 0.2.11 + tinyglobby: 0.2.12 source-map-js@1.2.1: {} source-map@0.6.1: {} + stable-hash@0.0.4: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -3100,29 +2186,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3131,8 +2194,6 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom@3.0.0: {} - strip-json-comments@3.1.1: {} supports-color@7.2.0: @@ -3149,7 +2210,7 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - tinyglobby@0.2.11: + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 @@ -3180,50 +2241,12 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 + tslib@2.8.1: {} type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - typescript-eslint@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): dependencies: '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) @@ -3236,13 +2259,6 @@ snapshots: typescript@5.7.3: {} - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - undici-types@6.20.0: {} unist-util-stringify-position@4.0.0: @@ -3283,46 +2299,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.3 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.18 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.18: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.5 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 From a9cf39e7fe864e87d91d56511fd594a0dc0fbdf5 Mon Sep 17 00:00:00 2001 From: Mallikarjun-0 Date: Mon, 3 Mar 2025 17:37:48 +0530 Subject: [PATCH 2870/3047] The return type of the method rawValue in Stringifier should be `any` instead of `string` --- lib/stringifier.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index f707a6aa3..16c5ba463 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -35,7 +35,7 @@ declare class Stringifier_ { rawEmptyBody(root: Root): string | undefined rawIndent(root: Root): string | undefined rawSemicolon(root: Root): boolean | undefined - rawValue(node: AnyNode, prop: string): string + rawValue(node: AnyNode, prop: string): any root(node: Root): void rule(node: Rule): void stringify(node: AnyNode, semicolon?: boolean): void From c5058912f2659f2c81ec7ccf04408fd4f25e4fc0 Mon Sep 17 00:00:00 2001 From: Mallikarjun-0 Date: Tue, 4 Mar 2025 00:39:07 +0530 Subject: [PATCH 2871/3047] There are no other `props` with non-string type. --- lib/stringifier.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index 16c5ba463..82f75c1ad 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -35,7 +35,7 @@ declare class Stringifier_ { rawEmptyBody(root: Root): string | undefined rawIndent(root: Root): string | undefined rawSemicolon(root: Root): boolean | undefined - rawValue(node: AnyNode, prop: string): any + rawValue(node: AnyNode, prop: string): number | string root(node: Root): void rule(node: Rule): void stringify(node: AnyNode, semicolon?: boolean): void From 31a5de71d12f16aa31092c86106cd6f181bd1250 Mon Sep 17 00:00:00 2001 From: Sai mallikarjun Galipelli <106309863+Mallikarjun-0@users.noreply.github.com> Date: Wed, 5 Mar 2025 05:18:51 +0530 Subject: [PATCH 2872/3047] Return type of method `raw` of `Stringifier` can be boolean, as the property `semicolon` can be boolean (#2024) --- lib/stringifier.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index 82f75c1ad..13db3acd1 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -25,7 +25,7 @@ declare class Stringifier_ { comment(node: Comment): void decl(node: Declaration, semicolon?: boolean): void document(node: Document): void - raw(node: AnyNode, own: null | string, detect?: string): string + raw(node: AnyNode, own: null | string, detect?: string): string | boolean rawBeforeClose(root: Root): string | undefined rawBeforeComment(root: Root, node: Comment): string | undefined rawBeforeDecl(root: Root, node: Declaration): string | undefined From 6c2a808c4ac483317be2a906b5ee6d168a16568c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 5 Mar 2025 00:51:29 +0100 Subject: [PATCH 2873/3047] Clean up code --- lib/stringifier.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index 13db3acd1..b5a6f86fe 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -25,7 +25,7 @@ declare class Stringifier_ { comment(node: Comment): void decl(node: Declaration, semicolon?: boolean): void document(node: Document): void - raw(node: AnyNode, own: null | string, detect?: string): string | boolean + raw(node: AnyNode, own: null | string, detect?: string): boolean | string rawBeforeClose(root: Root): string | undefined rawBeforeComment(root: Root, node: Comment): string | undefined rawBeforeDecl(root: Root, node: Declaration): string | undefined From 9229218b515eaffcd6f5c6bacdee766f27262ebc Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 5 Mar 2025 00:52:00 +0100 Subject: [PATCH 2874/3047] Update dependencies --- package.json | 6 +- pnpm-lock.yaml | 318 ++++++++++++++++++++++++------------------------- 2 files changed, 158 insertions(+), 166 deletions(-) diff --git a/package.json b/package.json index de9a51269..fe467220f 100755 --- a/package.json +++ b/package.json @@ -92,12 +92,12 @@ "devDependencies": { "@logux/eslint-config": "^55.0.1", "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^22.13.4", + "@types/node": "^22.13.9", "c8": "^10.1.3", "check-dts": "^0.8.2", "clean-publish": "^5.1.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.20.1", + "eslint": "^9.21.0", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", @@ -105,7 +105,7 @@ "size-limit": "^11.2.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.2", - "typescript": "^5.7.3", + "typescript": "^5.8.2", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8cea535a..df95400b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,19 +20,19 @@ importers: devDependencies: '@logux/eslint-config': specifier: ^55.0.1 - version: 55.0.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + version: 55.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^22.13.4 - version: 22.13.4 + specifier: ^22.13.9 + version: 22.13.9 c8: specifier: ^10.1.3 version: 10.1.3 check-dts: specifier: ^0.8.2 - version: 0.8.2(typescript@5.7.3) + version: 0.8.2(typescript@5.8.2) clean-publish: specifier: ^5.1.0 version: 5.1.0 @@ -40,8 +40,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.20.1 - version: 9.20.1(jiti@2.4.2) + specifier: ^9.21.0 + version: 9.21.0(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -62,10 +62,10 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.13.4)(typescript@5.7.3) + version: 10.9.2(@types/node@22.13.9)(typescript@5.8.2) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 uvu: specifier: ^0.5.6 version: 0.5.6 @@ -244,20 +244,16 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.11.0': - resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.12.0': resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/eslintrc@3.3.0': + resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.20.0': - resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} + '@eslint/js@9.21.0': + resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -382,57 +378,57 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.13.4': - resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} + '@types/node@22.13.9': + resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.24.1': - resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==} + '@typescript-eslint/eslint-plugin@8.26.0': + resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.24.1': - resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==} + '@typescript-eslint/parser@8.26.0': + resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.24.1': - resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} + '@typescript-eslint/scope-manager@8.26.0': + resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.24.1': - resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==} + '@typescript-eslint/type-utils@8.26.0': + resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.24.1': - resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} + '@typescript-eslint/types@8.26.0': + resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.24.1': - resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} + '@typescript-eslint/typescript-estree@8.26.0': + resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.24.1': - resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==} + '@typescript-eslint/utils@8.26.0': + resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.24.1': - resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} + '@typescript-eslint/visitor-keys@8.26.0': + resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: @@ -635,8 +631,8 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-n@17.15.1: - resolution: {integrity: sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==} + eslint-plugin-n@17.16.2: + resolution: {integrity: sha512-iQM5Oj+9o0KaeLoObJC/uxNGpktZCkYiTTBo8PkRWq3HwNcRxwpvSDFjBhQ5+HLJzBTy+CLDC5+bw0Z5GyhlOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -669,8 +665,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.20.1: - resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} + eslint@9.21.0: + resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -712,8 +708,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.19.0: - resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} @@ -742,8 +738,8 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} function-bind@1.1.2: @@ -930,8 +926,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.0: - resolution: {integrity: sha512-zDAl/llz8Ue/EblwSYwdxGBYfj46IM1dhjVi8dyp9LQffoIGxJEAHj2oeZ4uNcgycSRcQ83CnfcZqEJzVDLcDw==} + nanoid@5.1.2: + resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==} engines: {node: ^18 || >=20} hasBin: true @@ -1032,8 +1028,8 @@ packages: engines: {node: '>= 0.4'} hasBin: true - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} run-parallel@1.2.0: @@ -1151,15 +1147,15 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.24.1: - resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==} + typescript-eslint@8.26.0: + resolution: {integrity: sha512-PtVz9nAnuNJuAVeUFvwztjuUgSnJInODAUx47VDwWPXzd5vismPOtPtt83tzNXyOjVQbPRp786D6WFW/M2koIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true @@ -1313,9 +1309,9 @@ snapshots: '@esbuild/win32-x64@0.25.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': dependencies: - eslint: 9.20.1(jiti@2.4.2) + eslint: 9.21.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -1328,15 +1324,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.11.0': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.0': dependencies: ajv: 6.12.6 debug: 4.4.0 @@ -1350,7 +1342,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.20.0': {} + '@eslint/js@9.21.0': {} '@eslint/object-schema@2.1.6': {} @@ -1397,17 +1389,17 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@55.0.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': + '@logux/eslint-config@55.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint/eslintrc': 3.2.0 - eslint: 9.20.1(jiti@2.4.2) - eslint-plugin-import-x: 4.6.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-n: 17.15.1(eslint@9.20.1(jiti@2.4.2)) - eslint-plugin-perfectionist: 4.9.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@eslint/eslintrc': 3.3.0 + eslint: 9.21.0(jiti@2.4.2) + eslint-plugin-import-x: 4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-n: 17.16.2(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-perfectionist: 4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.20.1(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.21.0(jiti@2.4.2)) globals: 16.0.0 - typescript-eslint: 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + typescript-eslint: 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - supports-color - typescript @@ -1422,7 +1414,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.0 + fastq: 1.19.1 '@pkgjs/parseargs@0.11.0': optional: true @@ -1430,7 +1422,7 @@ snapshots: '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: esbuild: 0.25.0 - nanoid: 5.1.0 + nanoid: 5.1.2 size-limit: 11.2.0 '@size-limit/file@11.2.0(size-limit@11.2.0)': @@ -1459,87 +1451,87 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@22.13.4': + '@types/node@22.13.9': dependencies: undici-types: 6.20.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.24.1 - '@typescript-eslint/type-utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.24.1 - eslint: 9.20.1(jiti@2.4.2) + '@typescript-eslint/parser': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/type-utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.0 + eslint: 9.21.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 8.24.1 - '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.24.1 + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.0 debug: 4.4.0 - eslint: 9.20.1(jiti@2.4.2) - typescript: 5.7.3 + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.24.1': + '@typescript-eslint/scope-manager@8.26.0': dependencies: - '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/visitor-keys': 8.24.1 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/visitor-keys': 8.26.0 - '@typescript-eslint/type-utils@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 - eslint: 9.20.1(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + eslint: 9.21.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.24.1': {} + '@typescript-eslint/types@8.26.0': {} - '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/visitor-keys': 8.24.1 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/visitor-keys': 8.26.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.24.1 - '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) - eslint: 9.20.1(jiti@2.4.2) - typescript: 5.7.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.24.1': + '@typescript-eslint/visitor-keys@8.26.0': dependencies: - '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/types': 8.26.0 eslint-visitor-keys: 4.2.0 acorn-jsx@5.3.2(acorn@8.14.0): @@ -1595,7 +1587,7 @@ snapshots: '@bcoe/v8-coverage': 1.0.2 '@istanbuljs/schema': 0.1.3 find-up: 5.0.0 - foreground-child: 3.3.0 + foreground-child: 3.3.1 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.1.7 @@ -1611,12 +1603,12 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - check-dts@0.8.2(typescript@5.7.3): + check-dts@0.8.2(typescript@5.8.2): dependencies: fast-glob: 3.3.3 nanospinner: 1.2.2 picocolors: 1.1.1 - typescript: 5.7.3 + typescript: 5.8.2 vfile-location: 5.0.3 chokidar@4.0.3: @@ -1721,9 +1713,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.20.1(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.21.0(jiti@2.4.2)): dependencies: - eslint: 9.20.1(jiti@2.4.2) + eslint: 9.21.0(jiti@2.4.2) semver: 7.7.1 eslint-import-resolver-node@0.3.9: @@ -1734,22 +1726,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.20.1(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.21.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.20.1(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.20.1(jiti@2.4.2)) + eslint: 9.21.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-import-x@4.6.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-import-x@4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.24.1 - '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 doctrine: 3.0.0 enhanced-resolve: 5.18.1 - eslint: 9.20.1(jiti@2.4.2) + eslint: 9.21.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.10.0 is-glob: 4.0.3 @@ -1761,23 +1753,23 @@ snapshots: - supports-color - typescript - eslint-plugin-n@17.15.1(eslint@9.20.1(jiti@2.4.2)): + eslint-plugin-n@17.16.2(eslint@9.21.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.20.1(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.20.1(jiti@2.4.2)) + eslint: 9.21.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.21.0(jiti@2.4.2)) get-tsconfig: 4.10.0 globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.1 - eslint-plugin-perfectionist@4.9.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-perfectionist@4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/types': 8.24.1 - '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.20.1(jiti@2.4.2) + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.21.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -1787,10 +1779,10 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.20.1(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.21.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) - eslint: 9.20.1(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + eslint: 9.21.0(jiti@2.4.2) eslint-scope@8.2.0: dependencies: @@ -1801,14 +1793,14 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.20.1(jiti@2.4.2): + eslint@9.21.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 - '@eslint/core': 0.11.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.20.0 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.0 + '@eslint/js': 9.21.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -1874,9 +1866,9 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.19.0: + fastq@1.19.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fdir@6.4.3(picomatch@4.0.2): optionalDependencies: @@ -1902,7 +1894,7 @@ snapshots: flatted@3.3.3: {} - foreground-child@3.3.0: + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 @@ -1925,7 +1917,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -2058,7 +2050,7 @@ snapshots: nanoid@3.3.8: {} - nanoid@5.1.0: {} + nanoid@5.1.2: {} nanospinner@1.2.2: dependencies: @@ -2136,7 +2128,7 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} + reusify@1.1.0: {} run-parallel@1.2.0: dependencies: @@ -2219,25 +2211,25 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@2.0.1(typescript@5.7.3): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.7.3 + typescript: 5.8.2 - ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.13.9)(typescript@5.8.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.4 + '@types/node': 22.13.9 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.7.3 + typescript: 5.8.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -2247,17 +2239,17 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.24.1(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.20.1(jiti@2.4.2) - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - typescript@5.7.3: {} + typescript@5.8.2: {} undici-types@6.20.0: {} From 368bd0092000f01f6e873d9f55ef3c93a9149217 Mon Sep 17 00:00:00 2001 From: Sai mallikarjun Galipelli <106309863+Mallikarjun-0@users.noreply.github.com> Date: Wed, 5 Mar 2025 18:32:12 +0530 Subject: [PATCH 2875/3047] Change in type definition of property `css` of `result` (#2025) * Property `css` of `Result` is initialized as `undefined`. * Property `css` of `Result` is initialized as undefined. * Initialize `result.css` to an empty string. * revert changes in type definitions of `result.css` and `result.toString()` --- lib/result.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/result.js b/lib/result.js index 4ab2a8fc2..c6af4e8ca 100644 --- a/lib/result.js +++ b/lib/result.js @@ -12,7 +12,7 @@ class Result { this.messages = [] this.root = root this.opts = opts - this.css = undefined + this.css = '' this.map = undefined } From 3fc6388e91d496105f5a8fe63ab22a9a5a3c5254 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Fri, 7 Mar 2025 12:27:34 +0100 Subject: [PATCH 2876/3047] Update Nano ID --- package.json | 2 +- pnpm-lock.yaml | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index fe467220f..7118eda53 100755 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.9", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df95400b2..0c05b3774 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: nanoid: - specifier: ^3.3.8 - version: 3.3.8 + specifier: ^3.3.9 + version: 3.3.9 picocolors: specifier: ^1.1.1 version: 1.1.1 @@ -440,8 +440,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} engines: {node: '>=0.4.0'} hasBin: true @@ -921,8 +921,8 @@ packages: nanodelay@1.0.8: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + nanoid@3.3.9: + resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1534,15 +1534,15 @@ snapshots: '@typescript-eslint/types': 8.26.0 eslint-visitor-keys: 4.2.0 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: - acorn: 8.14.0 + acorn: 8.14.1 acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.14.1 - acorn@8.14.0: {} + acorn@8.14.1: {} ajv@6.12.6: dependencies: @@ -1836,8 +1836,8 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 esquery@1.6.0: @@ -2048,7 +2048,7 @@ snapshots: nanodelay@1.0.8: {} - nanoid@3.3.8: {} + nanoid@3.3.9: {} nanoid@5.1.2: {} @@ -2223,7 +2223,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.13.9 - acorn: 8.14.0 + acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 From 0a76df5f60511cb577374f869942e5a52d976666 Mon Sep 17 00:00:00 2001 From: Valentine Date: Tue, 11 Mar 2025 12:27:42 +0000 Subject: [PATCH 2877/3047] add postcss-auto-var-fallback fallback plugin to plugins.md (#2026) * add new fallback plugin to plugins.md [`postcss-auto-var-fallback`] adds var fallbacks by provided files of variables * added a link and fix typo * fix spacing --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 57b45ba0a..0d5008e19 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -137,6 +137,7 @@ by one line of code. ## Fallbacks +* [`postcss-auto-var-fallback`] adds var fallbacks by provided files of variables. * [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal. * [`postcss-disabled`] adds a `[disabled]` attribute and/or a `.disabled` class when the `:disabled` pseudo class is present. @@ -629,6 +630,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-russian-stylesheets`]: https://github.com/Semigradsky/postcss-russian-stylesheets [`postcss-swedish-stylesheets`]: https://github.com/johnie/postcss-swedish-stylesheets [`postcss-color-rebeccapurple`]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-rebeccapurple +[`postcss-auto-var-fallback`]: https://github.com/Ch-Valentine/postcss-auto-var-fallback [`postcss-color-rgba-fallback`]: https://github.com/postcss/postcss-color-rgba-fallback [`postcss-spanish-stylesheets`]: https://github.com/ismamz/postcss-spanish-stylesheets [`postcss-at-rules-variables`]: https://github.com/GitScrum/postcss-at-rules-variables From 25443a59303678426e521fdb434bf95f4925ca14 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 18 Mar 2025 23:08:12 +0000 Subject: [PATCH 2878/3047] Update dependencies --- package.json | 8 +- pnpm-lock.yaml | 635 ++++++++++++++++++++++++++++++------------------- 2 files changed, 399 insertions(+), 244 deletions(-) diff --git a/package.json b/package.json index 7118eda53..42fb3c4a6 100755 --- a/package.json +++ b/package.json @@ -85,19 +85,19 @@ "url": "https://github.com/postcss/postcss/issues" }, "dependencies": { - "nanoid": "^3.3.9", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^55.0.1", + "@logux/eslint-config": "^55.1.0", "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^22.13.9", + "@types/node": "^22.13.10", "c8": "^10.1.3", "check-dts": "^0.8.2", "clean-publish": "^5.1.0", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.21.0", + "eslint": "^9.22.0", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c05b3774..f4de3db7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: nanoid: - specifier: ^3.3.9 - version: 3.3.9 + specifier: ^3.3.11 + version: 3.3.11 picocolors: specifier: ^1.1.1 version: 1.1.1 @@ -19,14 +19,14 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^55.0.1 - version: 55.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + specifier: ^55.1.0 + version: 55.1.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^22.13.9 - version: 22.13.9 + specifier: ^22.13.10 + version: 22.13.10 c8: specifier: ^10.1.3 version: 10.1.3 @@ -40,8 +40,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.21.0 - version: 9.21.0(jiti@2.4.2) + specifier: ^9.22.0 + version: 9.22.0(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -62,7 +62,7 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.13.9)(typescript@5.8.2) + version: 10.9.2(@types/node@22.13.10)(typescript@5.8.2) typescript: specifier: ^5.8.2 version: 5.8.2 @@ -80,158 +80,167 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@esbuild/aix-ppc64@0.25.0': - resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + + '@esbuild/aix-ppc64@0.25.1': + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.0': - resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + '@esbuild/android-arm64@0.25.1': + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.0': - resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + '@esbuild/android-arm@0.25.1': + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.0': - resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + '@esbuild/android-x64@0.25.1': + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.0': - resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + '@esbuild/darwin-arm64@0.25.1': + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.0': - resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + '@esbuild/darwin-x64@0.25.1': + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.0': - resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + '@esbuild/freebsd-arm64@0.25.1': + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.0': - resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + '@esbuild/freebsd-x64@0.25.1': + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.0': - resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + '@esbuild/linux-arm64@0.25.1': + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.0': - resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + '@esbuild/linux-arm@0.25.1': + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.0': - resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + '@esbuild/linux-ia32@0.25.1': + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.0': - resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + '@esbuild/linux-loong64@0.25.1': + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.0': - resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + '@esbuild/linux-mips64el@0.25.1': + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.0': - resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + '@esbuild/linux-ppc64@0.25.1': + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.0': - resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + '@esbuild/linux-riscv64@0.25.1': + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.0': - resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + '@esbuild/linux-s390x@0.25.1': + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.0': - resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + '@esbuild/linux-x64@0.25.1': + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.0': - resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + '@esbuild/netbsd-arm64@0.25.1': + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.0': - resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + '@esbuild/netbsd-x64@0.25.1': + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.0': - resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + '@esbuild/openbsd-arm64@0.25.1': + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.0': - resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + '@esbuild/openbsd-x64@0.25.1': + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.0': - resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + '@esbuild/sunos-x64@0.25.1': + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.0': - resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + '@esbuild/win32-arm64@0.25.1': + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.0': - resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + '@esbuild/win32-ia32@0.25.1': + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.0': - resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + '@esbuild/win32-x64@0.25.1': + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.5.1': + resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -244,6 +253,10 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.1.0': + resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.12.0': resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -252,8 +265,8 @@ packages: resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.21.0': - resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} + '@eslint/js@9.22.0': + resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -305,14 +318,14 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@logux/eslint-config@55.0.1': - resolution: {integrity: sha512-CPt/SMMlYo4kEdg1P7iusJLqqMt0ljL90PIIsZTnzHUdT0u6zexfwCYLwKGVLqnrDLAOE5a/Uvo+z4YcfUJPMQ==} + '@logux/eslint-config@55.1.0': + resolution: {integrity: sha512-sUWEuD+XZYGQhh9sDJxb+WDlWITtEOi8ZG241jcoKbNA+4d+Or3mAdFh0i/0CJ2frZskJDnusBvBaO0Ohm/yAw==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-svelte: ^3.0.0-next.18 + eslint-plugin-svelte: ^3.0.0 svelte: ^4.2.12 || ^5.0.0 - svelte-eslint-parser: ^1.0.0-next.13 + svelte-eslint-parser: ^1.0.0 peerDependenciesMeta: eslint-plugin-svelte: optional: true @@ -321,6 +334,9 @@ packages: svelte-eslint-parser: optional: true + '@napi-rs/wasm-runtime@0.2.7': + resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -366,6 +382,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} @@ -378,59 +397,114 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.13.9': - resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} + '@types/node@22.13.10': + resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.26.0': - resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==} + '@typescript-eslint/eslint-plugin@8.26.1': + resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.26.0': - resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==} + '@typescript-eslint/parser@8.26.1': + resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.26.0': - resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==} + '@typescript-eslint/scope-manager@8.26.1': + resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.26.0': - resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==} + '@typescript-eslint/type-utils@8.26.1': + resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.26.0': - resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==} + '@typescript-eslint/types@8.26.1': + resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.26.0': - resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==} + '@typescript-eslint/typescript-estree@8.26.1': + resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.26.0': - resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==} + '@typescript-eslint/utils@8.26.1': + resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.26.0': - resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==} + '@typescript-eslint/visitor-keys@8.26.1': + resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@unrs/rspack-resolver-binding-darwin-arm64@1.2.1': + resolution: {integrity: sha512-xgSjy64typsn/lhQk/uKaS363H7ZeIBlWSh25FJFWXSCeLMHpEZ0umDo5Vzqi5iS26OZ5R1SpQkwiS78GhQRjw==} + cpu: [arm64] + os: [darwin] + + '@unrs/rspack-resolver-binding-darwin-x64@1.2.1': + resolution: {integrity: sha512-3maDtW0vehzciEbuLxc2g+0FmDw5LGfCt+yMN1ZDn0lW0ikEBEFp6ul3h2fRphtfuCc7IvBJE9WWTt1UHkS7Nw==} + cpu: [x64] + os: [darwin] + + '@unrs/rspack-resolver-binding-freebsd-x64@1.2.1': + resolution: {integrity: sha512-aN6ifws9rNLjK2+6sIU9wvHyjXEf3S5+EZTHRarzd4jfa8i5pA7Mwt28un2DZVrBtIxhWDQvUPVKGI7zSBfVCA==} + cpu: [x64] + os: [freebsd] + + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.1': + resolution: {integrity: sha512-tKqu9VQyCO1yEUX6n6jgOHi7SJA9e6lvHczK60gur4VBITxnPmVYiCj2aekrOOIavvvjjuWAL2rqPQuc4g7RHQ==} + cpu: [arm] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.1': + resolution: {integrity: sha512-+xDI0kvwPiCR7334O83TPfaUXSe0UMVi5srQpQxP4+SDVYuONWsbwAC1IXe+yfOwRVGZsUdW9wE0ZiWs4Z+egw==} + cpu: [arm64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.1': + resolution: {integrity: sha512-fcrVHlw+6UgQliMbI0znFD4ASWKuyY17FdH67ZmyNH62b0hRhhxQuJE0D6N3410m8lKVu4QW4EzFiHxYFUC0cg==} + cpu: [arm64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.1': + resolution: {integrity: sha512-xISTyUJ2PiAT4x9nlh8FdciDcdKbsatgK9qO7EEsILt9VB7Y1mHYGaszj3ouxfZnaKQ13WwW+dFLGxkZLP/WVg==} + cpu: [x64] + os: [linux] + + '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.1': + resolution: {integrity: sha512-LE8EjE/iPlvSsFbZ6P9c0Jh5/pifAi03UYeXYwOnQqt1molKAPMB0R4kGWOM7dnDYaNgkk1MN9MOTCLsqe97Fw==} + cpu: [x64] + os: [linux] + + '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.1': + resolution: {integrity: sha512-XERT3B88+G55RgG96May8QvAdgGzHr8qtQ70cIdbuWTpIcA0I76cnxSZ8Qwx33y73jE5N/myX2YKDlFksn4z6w==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.1': + resolution: {integrity: sha512-I8OLI6JbmNx2E/SG8MOEuo/d6rNx8dwgL09rcItSMcP82v1oZ8AY8HNA+axxuxEH95nkb6MPJU09p63isDvzrA==} + cpu: [arm64] + os: [win32] + + '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.1': + resolution: {integrity: sha512-s5WvCljhFqiE3McvaD3lDIsQpmk7gEJRUHy1PRwLPzEB7snq9P2xQeqgzdjGhJQq62jBFz7NDy7NbMkocWr2pw==} + cpu: [x64] + os: [win32] + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -597,8 +671,8 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - esbuild@0.25.0: - resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} engines: {node: '>=18'} hasBin: true @@ -625,8 +699,8 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.6.1: - resolution: {integrity: sha512-wluSUifMIb7UfwWXqx7Yx0lE/SGCcGXECLx/9bCmbY2nneLwvAZ4vkd1IXDjPKFvdcdUgr1BaRnaRpx3k2+Pfw==} + eslint-plugin-import-x@4.9.0: + resolution: {integrity: sha512-qdrsei0heLV8z9QpY2/PHF/r/3fF15w3JeVXqWlLzPMiiwYx0VAwIjxN6SzdaPVuGeIMAbQHHS1Wwdn1/bsCgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -637,11 +711,11 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@4.9.0: - resolution: {integrity: sha512-76lDfJnonOcXGW3bEXuqhEGId0LrOlvIE1yLHvK/eKMMPOc0b43KchAIR2Bdbqlg+LPXU5/Q+UzuzkO+cWHT6w==} + eslint-plugin-perfectionist@4.10.1: + resolution: {integrity: sha512-GXwFfL47RfBLZRGQdrvGZw9Ali2T2GPW8p4Gyj2fyWQ9396R/HgJMf0m9kn7D6WXRwrINfTDGLS+QYIeok9qEg==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - eslint: '>=8.0.0' + eslint: '>=8.45.0' eslint-plugin-prefer-let@4.0.0: resolution: {integrity: sha512-X4ep5PMO1320HKaNC9DM5+p6XvOhwv+RcqGjhv3aiw9iAtHhiFtdIUB5l0Zya0iM22ys2BGKzrNI9Xpw/ZHooQ==} @@ -653,8 +727,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -665,8 +739,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.21.0: - resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} + eslint@9.22.0: + resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -921,13 +995,13 @@ packages: nanodelay@1.0.8: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} - nanoid@3.3.9: - resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.2: - resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==} + nanoid@5.1.4: + resolution: {integrity: sha512-GTFcMIDgR7tqji/LpSY8rtg464VnJl/j6ypoehYnuGb+Y8qZUdtKB8WVCXon0UEZgFDbuUxpIl//6FHLHgXSNA==} engines: {node: ^18 || >=20} hasBin: true @@ -1032,6 +1106,9 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rspack-resolver@1.2.1: + resolution: {integrity: sha512-yTaWGUvHOjcoyFMdVTdYt2nq2Hu8sw6ia3X9szloXFJlWLQZnQ9g/4TPhL3Bb3qN58Mkye8mFG7MCaKhya7fOw==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -1073,8 +1150,8 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - stable-hash@0.0.4: - resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -1147,8 +1224,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.26.0: - resolution: {integrity: sha512-PtVz9nAnuNJuAVeUFvwztjuUgSnJInODAUx47VDwWPXzd5vismPOtPtt83tzNXyOjVQbPRp786D6WFW/M2koIA==} + typescript-eslint@8.26.1: + resolution: {integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1234,84 +1311,100 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@esbuild/aix-ppc64@0.25.0': + '@emnapi/core@1.3.1': + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.8.1 optional: true - '@esbuild/android-arm64@0.25.0': + '@esbuild/aix-ppc64@0.25.1': optional: true - '@esbuild/android-arm@0.25.0': + '@esbuild/android-arm64@0.25.1': optional: true - '@esbuild/android-x64@0.25.0': + '@esbuild/android-arm@0.25.1': optional: true - '@esbuild/darwin-arm64@0.25.0': + '@esbuild/android-x64@0.25.1': optional: true - '@esbuild/darwin-x64@0.25.0': + '@esbuild/darwin-arm64@0.25.1': optional: true - '@esbuild/freebsd-arm64@0.25.0': + '@esbuild/darwin-x64@0.25.1': optional: true - '@esbuild/freebsd-x64@0.25.0': + '@esbuild/freebsd-arm64@0.25.1': optional: true - '@esbuild/linux-arm64@0.25.0': + '@esbuild/freebsd-x64@0.25.1': optional: true - '@esbuild/linux-arm@0.25.0': + '@esbuild/linux-arm64@0.25.1': optional: true - '@esbuild/linux-ia32@0.25.0': + '@esbuild/linux-arm@0.25.1': optional: true - '@esbuild/linux-loong64@0.25.0': + '@esbuild/linux-ia32@0.25.1': optional: true - '@esbuild/linux-mips64el@0.25.0': + '@esbuild/linux-loong64@0.25.1': optional: true - '@esbuild/linux-ppc64@0.25.0': + '@esbuild/linux-mips64el@0.25.1': optional: true - '@esbuild/linux-riscv64@0.25.0': + '@esbuild/linux-ppc64@0.25.1': optional: true - '@esbuild/linux-s390x@0.25.0': + '@esbuild/linux-riscv64@0.25.1': optional: true - '@esbuild/linux-x64@0.25.0': + '@esbuild/linux-s390x@0.25.1': optional: true - '@esbuild/netbsd-arm64@0.25.0': + '@esbuild/linux-x64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.25.0': + '@esbuild/netbsd-arm64@0.25.1': optional: true - '@esbuild/openbsd-arm64@0.25.0': + '@esbuild/netbsd-x64@0.25.1': optional: true - '@esbuild/openbsd-x64@0.25.0': + '@esbuild/openbsd-arm64@0.25.1': optional: true - '@esbuild/sunos-x64@0.25.0': + '@esbuild/openbsd-x64@0.25.1': optional: true - '@esbuild/win32-arm64@0.25.0': + '@esbuild/sunos-x64@0.25.1': optional: true - '@esbuild/win32-ia32@0.25.0': + '@esbuild/win32-arm64@0.25.1': optional: true - '@esbuild/win32-x64@0.25.0': + '@esbuild/win32-ia32@0.25.1': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': + '@esbuild/win32-x64@0.25.1': + optional: true + + '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))': dependencies: - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -1324,6 +1417,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/config-helpers@0.1.0': {} + '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 @@ -1342,7 +1437,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.21.0': {} + '@eslint/js@9.22.0': {} '@eslint/object-schema@2.1.6': {} @@ -1389,21 +1484,28 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@55.0.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': + '@logux/eslint-config@55.1.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint/eslintrc': 3.3.0 - eslint: 9.21.0(jiti@2.4.2) - eslint-plugin-import-x: 4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-n: 17.16.2(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + eslint-plugin-import-x: 4.9.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-n: 17.16.2(eslint@9.22.0(jiti@2.4.2)) + eslint-plugin-perfectionist: 4.10.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.22.0(jiti@2.4.2)) globals: 16.0.0 - typescript-eslint: 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + typescript-eslint: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) transitivePeerDependencies: - supports-color - typescript + '@napi-rs/wasm-runtime@0.2.7': + dependencies: + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 + '@tybys/wasm-util': 0.9.0 + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1421,8 +1523,8 @@ snapshots: '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: - esbuild: 0.25.0 - nanoid: 5.1.2 + esbuild: 0.25.1 + nanoid: 5.1.4 size-limit: 11.2.0 '@size-limit/file@11.2.0(size-limit@11.2.0)': @@ -1443,6 +1545,11 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 + optional: true + '@types/doctrine@0.0.9': {} '@types/estree@1.0.6': {} @@ -1451,21 +1558,21 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@22.13.9': + '@types/node@22.13.10': dependencies: undici-types: 6.20.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.0 - '@typescript-eslint/type-utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.26.0 - eslint: 9.21.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.1 + eslint: 9.22.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -1474,40 +1581,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 8.26.0 - '@typescript-eslint/types': 8.26.0 - '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.26.0 + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.1 debug: 4.4.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.26.0': + '@typescript-eslint/scope-manager@8.26.1': dependencies: - '@typescript-eslint/types': 8.26.0 - '@typescript-eslint/visitor-keys': 8.26.0 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/visitor-keys': 8.26.1 - '@typescript-eslint/type-utils@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) ts-api-utils: 2.0.1(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.26.0': {} + '@typescript-eslint/types@8.26.1': {} - '@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.26.0 - '@typescript-eslint/visitor-keys': 8.26.0 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/visitor-keys': 8.26.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -1518,22 +1625,57 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.26.0 - '@typescript-eslint/types': 8.26.0 - '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2) - eslint: 9.21.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.26.0': + '@typescript-eslint/visitor-keys@8.26.1': dependencies: - '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/types': 8.26.1 eslint-visitor-keys: 4.2.0 + '@unrs/rspack-resolver-binding-darwin-arm64@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-darwin-x64@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-freebsd-x64@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.7 + optional: true + + '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.1': + optional: true + + '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.1': + optional: true + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: acorn: 8.14.1 @@ -1681,41 +1823,41 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - esbuild@0.25.0: + esbuild@0.25.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.0 - '@esbuild/android-arm': 0.25.0 - '@esbuild/android-arm64': 0.25.0 - '@esbuild/android-x64': 0.25.0 - '@esbuild/darwin-arm64': 0.25.0 - '@esbuild/darwin-x64': 0.25.0 - '@esbuild/freebsd-arm64': 0.25.0 - '@esbuild/freebsd-x64': 0.25.0 - '@esbuild/linux-arm': 0.25.0 - '@esbuild/linux-arm64': 0.25.0 - '@esbuild/linux-ia32': 0.25.0 - '@esbuild/linux-loong64': 0.25.0 - '@esbuild/linux-mips64el': 0.25.0 - '@esbuild/linux-ppc64': 0.25.0 - '@esbuild/linux-riscv64': 0.25.0 - '@esbuild/linux-s390x': 0.25.0 - '@esbuild/linux-x64': 0.25.0 - '@esbuild/netbsd-arm64': 0.25.0 - '@esbuild/netbsd-x64': 0.25.0 - '@esbuild/openbsd-arm64': 0.25.0 - '@esbuild/openbsd-x64': 0.25.0 - '@esbuild/sunos-x64': 0.25.0 - '@esbuild/win32-arm64': 0.25.0 - '@esbuild/win32-ia32': 0.25.0 - '@esbuild/win32-x64': 0.25.0 + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.21.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.22.0(jiti@2.4.2)): dependencies: - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) semver: 7.7.1 eslint-import-resolver-node@0.3.9: @@ -1726,50 +1868,48 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.22.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.21.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.21.0(jiti@2.4.2)) + eslint: 9.22.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-import-x@4.6.1(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-import-x@4.9.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.26.0 - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) debug: 4.4.0 doctrine: 3.0.0 - enhanced-resolve: 5.18.1 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.10.0 - is-glob: 4.0.3 - minimatch: 9.0.5 + picomatch: 4.0.2 + rspack-resolver: 1.2.1 semver: 7.7.1 - stable-hash: 0.0.4 + stable-hash: 0.0.5 tslib: 2.8.1 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-n@17.16.2(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-n@17.16.2(eslint@9.22.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.21.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.21.0(jiti@2.4.2)) + eslint: 9.22.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.22.0(jiti@2.4.2)) get-tsconfig: 4.10.0 globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.1 - eslint-plugin-perfectionist@4.9.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-perfectionist@4.10.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/types': 8.26.0 - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.21.0(jiti@2.4.2) + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -1779,12 +1919,12 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.22.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) - eslint: 9.21.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + eslint: 9.22.0(jiti@2.4.2) - eslint-scope@8.2.0: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -1793,14 +1933,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.21.0(jiti@2.4.2): + eslint@9.22.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.1.0 '@eslint/core': 0.12.0 '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.21.0 + '@eslint/js': 9.22.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -1812,7 +1953,7 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -2048,9 +2189,9 @@ snapshots: nanodelay@1.0.8: {} - nanoid@3.3.9: {} + nanoid@3.3.11: {} - nanoid@5.1.2: {} + nanoid@5.1.4: {} nanospinner@1.2.2: dependencies: @@ -2130,6 +2271,20 @@ snapshots: reusify@1.1.0: {} + rspack-resolver@1.2.1: + optionalDependencies: + '@unrs/rspack-resolver-binding-darwin-arm64': 1.2.1 + '@unrs/rspack-resolver-binding-darwin-x64': 1.2.1 + '@unrs/rspack-resolver-binding-freebsd-x64': 1.2.1 + '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.2.1 + '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.2.1 + '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.2.1 + '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.2.1 + '@unrs/rspack-resolver-binding-linux-x64-musl': 1.2.1 + '@unrs/rspack-resolver-binding-wasm32-wasi': 1.2.1 + '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.2.1 + '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.2.1 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -2164,7 +2319,7 @@ snapshots: source-map@0.6.1: {} - stable-hash@0.0.4: {} + stable-hash@0.0.5: {} string-width@4.2.3: dependencies: @@ -2215,14 +2370,14 @@ snapshots: dependencies: typescript: 5.8.2 - ts-node@10.9.2(@types/node@22.13.9)(typescript@5.8.2): + ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.9 + '@types/node': 22.13.10 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2239,12 +2394,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2): + typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.21.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color From 875f1fb7f863a859d16261b0a24a5823e7a6c40d Mon Sep 17 00:00:00 2001 From: mizdra Date: Sun, 23 Mar 2025 01:13:46 +0900 Subject: [PATCH 2879/3047] Fix `opts` argument of `Node#rangeBy()` and `Node#positionBy()` cannot be omitted (#2031) * Fix `opts` argument cannot be omitted * Assign default values to `opts` just in case - The `opts` argument to `Node#error` is currently omissible, but we'll assign a default value just in case. * Add test cases --- lib/node.js | 6 ++-- test/node.test.ts | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/lib/node.js b/lib/node.js index 2b865ba37..c9c758f2a 100644 --- a/lib/node.js +++ b/lib/node.js @@ -208,7 +208,7 @@ class Node { return this.parent.nodes[index + 1] } - positionBy(opts) { + positionBy(opts = {}) { let pos = this.source.start if (opts.index) { pos = this.positionInside(opts.index) @@ -253,7 +253,7 @@ class Node { return this.parent.nodes[index - 1] } - rangeBy(opts) { + rangeBy(opts = {}) { let start = { column: this.source.start.column, line: this.source.start.line @@ -423,7 +423,7 @@ class Node { return result } - warn(result, text, opts) { + warn(result, text, opts = {}) { let data = { node: this } for (let i in opts) data[i] = opts[i] return result.warn(text, data) diff --git a/test/node.test.ts b/test/node.test.ts index b8f3a7b4d..5c2e7c9cd 100755 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -453,6 +453,29 @@ test('positionInside() supports multi-root documents', () => { equal(a.positionInside(1), { column: 9, line: 1 }) }) +test('positionBy() returns position', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + equal(one.positionBy(), { column: 6, line: 1, offset: 5 }) + equal(a.positionBy(), { column: 1, line: 1, offset: 0 }) +}) + +test('positionBy() returns position after AST mutations', () => { + let css = parse('a {\n\tone: 1;\n\ttwo: 2;}') + let a = css.first as Rule + let one = a.first as Declaration + let two = one.next() as Declaration + + equal(a.positionBy(), { column: 1, line: 1, offset: 0 }) + equal(two.positionBy(), { column: 2, line: 3, offset: 14 }) + + one.remove() + + equal(a.positionBy(), { column: 1, line: 1, offset: 0 }) + equal(two.positionBy(), { column: 2, line: 3, offset: 14 }) +}) + test('positionBy() returns position for word', () => { let css = parse('a { one: X }') let a = css.first as Rule @@ -527,6 +550,59 @@ test('positionBy() supports multi-root documents', () => { equal(a.positionBy({ word: 'a' }), { column: 8, line: 1 }) }) +test('rangeBy() returns range', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + equal(one.rangeBy(), { + end: { column: 12, line: 1 }, + start: { column: 6, line: 1 } + }) +}) + +test('rangeBy() returns range when offsets are missing', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + + // @ts-expect-error Testing non-standard AST + if (one.source?.start) delete one.source.start.offset + // @ts-expect-error Testing non-standard AST + if (one.source?.end) delete one.source.end.offset + + equal(one.rangeBy(), { + end: { column: 12, line: 1 }, + start: { column: 6, line: 1 } + }) +}) + +test('rangeBy() returns range for empty object even after AST mutations', () => { + let css = parse('a {\n\tone: 1;\n\ttwo: 2;}') + let a = css.first as Rule + let one = a.first as Declaration + let two = one.next() as Declaration + + equal(a.rangeBy(), { + end: { column: 10, line: 3 }, + start: { column: 1, line: 1 } + }) + equal(two.rangeBy(), { + end: { column: 9, line: 3 }, + start: { column: 2, line: 3 } + }) + + one.remove() + + equal(a.rangeBy(), { + end: { column: 10, line: 3 }, + start: { column: 1, line: 1 } + }) + equal(two.rangeBy(), { + end: { column: 9, line: 3 }, + start: { column: 2, line: 3 } + }) +}) + test('rangeBy() returns range for word', () => { let css = parse('a { one: X }') let a = css.first as Rule From 7892a29ff8492f11cf2ce07f9aa17def26f96338 Mon Sep 17 00:00:00 2001 From: mizdra Date: Sun, 23 Mar 2025 02:07:03 +0900 Subject: [PATCH 2880/3047] Fix missing offset in `Node#positionInside`, `Node#positionBy` and `Node#rangeBy` (#2033) * Fix `opts` argument cannot be omitted * Assign default values to `opts` just in case - The `opts` argument to `Node#error` is currently omissible, but we'll assign a default value just in case. * Add test cases * Add test cases for `Node#rangeBy({start, end})` * Add test cases for offset * Fix missing offset in `Node#positionInside`, `Node#positionBy` and `Node#rangeBy` * Fix conflict resolution mistakes --------- Co-authored-by: Andrey Sitnik --- lib/node.d.ts | 2 +- lib/node.js | 35 ++++-- test/node.test.ts | 271 ++++++++++++++++++++++++++++++++++------------ 3 files changed, 226 insertions(+), 82 deletions(-) diff --git a/lib/node.d.ts b/lib/node.d.ts index aa7229f83..a563376d7 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -424,7 +424,7 @@ declare abstract class Node_ { * @return Range. */ rangeBy( - opts?: Pick + opts?: Pick ): Node.Range /** diff --git a/lib/node.js b/lib/node.js index c9c758f2a..a3c1a3106 100644 --- a/lib/node.js +++ b/lib/node.js @@ -244,7 +244,7 @@ class Node { } } - return { column, line } + return { column, line, offset: end } } prev() { @@ -254,24 +254,33 @@ class Node { } rangeBy(opts = {}) { + let inputString = ('document' in this.source.input) + ? this.source.input.document + : this.source.input.css let start = { column: this.source.start.column, - line: this.source.start.line + line: this.source.start.line, + offset: sourceOffset(inputString, this.source.start) } let end = this.source.end ? { column: this.source.end.column + 1, - line: this.source.end.line + line: this.source.end.line, + offset: typeof this.source.end.offset === 'number' + // `source.end.offset` is exclusive, so we don't need to add 1 + ? this.source.end.offset + // Since line/column in this.source.end is inclusive, + // the `sourceOffset(... , this.source.end)` returns an inclusive offset. + // So, we add 1 to convert it to exclusive. + : sourceOffset(inputString, this.source.end) + 1 } : { column: start.column + 1, - line: start.line + line: start.line, + offset: start.offset + 1 } if (opts.word) { - let inputString = ('document' in this.source.input) - ? this.source.input.document - : this.source.input.css let stringRepresentation = inputString.slice( sourceOffset(inputString, this.source.start), sourceOffset(inputString, this.source.end) @@ -287,7 +296,8 @@ class Node { if (opts.start) { start = { column: opts.start.column, - line: opts.start.line + line: opts.start.line, + offset: sourceOffset(inputString, opts.start) } } else if (opts.index) { start = this.positionInside(opts.index) @@ -296,7 +306,8 @@ class Node { if (opts.end) { end = { column: opts.end.column, - line: opts.end.line + line: opts.end.line, + offset: sourceOffset(inputString, opts.end) } } else if (typeof opts.endIndex === 'number') { end = this.positionInside(opts.endIndex) @@ -309,7 +320,11 @@ class Node { end.line < start.line || (end.line === start.line && end.column <= start.column) ) { - end = { column: start.column + 1, line: start.line } + end = { + column: start.column + 1, + line: start.line, + offset: start.offset + 1 + } } return { end, start } diff --git a/test/node.test.ts b/test/node.test.ts index 5c2e7c9cd..03e3b3dd4 100755 --- a/test/node.test.ts +++ b/test/node.test.ts @@ -395,21 +395,21 @@ test('positionInside() returns position when node starts mid-line', () => { let css = parse('a { one: X }') let a = css.first as Rule let one = a.first as Declaration - equal(one.positionInside(6), { column: 12, line: 1 }) + equal(one.positionInside(6), { column: 12, line: 1, offset: 11 }) }) test('positionInside() returns position when before contains newline', () => { let css = parse('a {\n one: X}') let a = css.first as Rule let one = a.first as Declaration - equal(one.positionInside(6), { column: 9, line: 2 }) + equal(one.positionInside(6), { column: 9, line: 2, offset: 12 }) }) test('positionInside() returns position when node contains newlines', () => { let css = parse('a {\n\tone: 1\n\t\tX\n3}') let a = css.first as Rule let one = a.first as Declaration - equal(one.positionInside(10), { column: 4, line: 3 }) + equal(one.positionInside(10), { column: 4, line: 3, offset: 15 }) }) test('positionInside() returns position after AST mutations', () => { @@ -418,13 +418,13 @@ test('positionInside() returns position after AST mutations', () => { let one = a.first as Declaration let two = one.next() as Declaration - equal(a.positionInside(15), { column: 3, line: 3 }) - equal(two.positionInside(1), { column: 3, line: 3 }) + equal(a.positionInside(15), { column: 3, line: 3, offset: 15 }) + equal(two.positionInside(1), { column: 3, line: 3, offset: 15 }) one.remove() - equal(a.positionInside(15), { column: 3, line: 3 }) - equal(two.positionInside(1), { column: 3, line: 3 }) + equal(a.positionInside(15), { column: 3, line: 3, offset: 15 }) + equal(two.positionInside(1), { column: 3, line: 3, offset: 15 }) }) test('positionInside() supports multi-root documents', () => { @@ -449,8 +449,31 @@ test('positionInside() supports multi-root documents', () => { } } - equal(a.positionInside(0), { column: 8, line: 1 }) - equal(a.positionInside(1), { column: 9, line: 1 }) + equal(a.positionInside(0), { column: 8, line: 1, offset: 7 }) + equal(a.positionInside(1), { column: 9, line: 1, offset: 8 }) +}) + +test('positionBy() returns position', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + equal(one.positionBy(), { column: 6, line: 1, offset: 5 }) + equal(a.positionBy(), { column: 1, line: 1, offset: 0 }) +}) + +test('positionBy() returns position after AST mutations', () => { + let css = parse('a {\n\tone: 1;\n\ttwo: 2;}') + let a = css.first as Rule + let one = a.first as Declaration + let two = one.next() as Declaration + + equal(a.positionBy(), { column: 1, line: 1, offset: 0 }) + equal(two.positionBy(), { column: 2, line: 3, offset: 14 }) + + one.remove() + + equal(a.positionBy(), { column: 1, line: 1, offset: 0 }) + equal(two.positionBy(), { column: 2, line: 3, offset: 14 }) }) test('positionBy() returns position', () => { @@ -480,9 +503,9 @@ test('positionBy() returns position for word', () => { let css = parse('a { one: X }') let a = css.first as Rule let one = a.first as Declaration - equal(one.positionBy({ word: 'one' }), { column: 6, line: 1 }) - equal(one.positionBy({ word: 'X' }), { column: 11, line: 1 }) - equal(a.positionBy({ word: '}' }), { column: 14, line: 1 }) + equal(one.positionBy({ word: 'one' }), { column: 6, line: 1, offset: 5 }) + equal(one.positionBy({ word: 'X' }), { column: 11, line: 1, offset: 10 }) + equal(a.positionBy({ word: '}' }), { column: 14, line: 1, offset: 13 }) }) test('positionBy() returns position for word after AST mutations', () => { @@ -491,20 +514,20 @@ test('positionBy() returns position for word after AST mutations', () => { let one = a.first as Declaration let two = one.next() as Declaration - equal(a.positionBy({ word: 'two' }), { column: 2, line: 3 }) - equal(two.positionBy({ word: 'two' }), { column: 2, line: 3 }) + equal(a.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 }) + equal(two.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 }) one.remove() - equal(a.positionBy({ word: 'two' }), { column: 2, line: 3 }) - equal(two.positionBy({ word: 'two' }), { column: 2, line: 3 }) + equal(a.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 }) + equal(two.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 }) }) test('positionBy() returns position for index', () => { let css = parse('a { one: X }') let a = css.first as Rule let one = a.first as Declaration - equal(one.positionBy({ index: 1 }), { column: 7, line: 1 }) + equal(one.positionBy({ index: 1 }), { column: 7, line: 1, offset: 6 }) }) test('positionBy() returns position for index after AST mutations', () => { @@ -513,13 +536,13 @@ test('positionBy() returns position for index after AST mutations', () => { let one = a.first as Declaration let two = one.next() as Declaration - equal(a.positionBy({ index: 15 }), { column: 3, line: 3 }) - equal(two.positionBy({ index: 1 }), { column: 3, line: 3 }) + equal(a.positionBy({ index: 15 }), { column: 3, line: 3, offset: 15 }) + equal(two.positionBy({ index: 1 }), { column: 3, line: 3, offset: 15 }) one.remove() - equal(a.positionBy({ index: 15 }), { column: 3, line: 3 }) - equal(two.positionBy({ index: 1 }), { column: 3, line: 3 }) + equal(a.positionBy({ index: 15 }), { column: 3, line: 3, offset: 15 }) + equal(two.positionBy({ index: 1 }), { column: 3, line: 3, offset: 15 }) }) test('positionBy() supports multi-root documents', () => { @@ -546,8 +569,61 @@ test('positionBy() supports multi-root documents', () => { // `offset` is present because the `0` index returns `source.start` equal(a.positionBy({ index: 0 }), { column: 8, line: 1, offset: 7 }) - equal(a.positionBy({ index: 1 }), { column: 9, line: 1 }) - equal(a.positionBy({ word: 'a' }), { column: 8, line: 1 }) + equal(a.positionBy({ index: 1 }), { column: 9, line: 1, offset: 8 }) + equal(a.positionBy({ word: 'a' }), { column: 8, line: 1, offset: 7 }) +}) + +test('rangeBy() returns range', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + equal(one.rangeBy(), { + end: { column: 12, line: 1, offset: 11 }, + start: { column: 6, line: 1, offset: 5 } + }) +}) + +test('rangeBy() returns range when offsets are missing', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + + // @ts-expect-error Testing non-standard AST + if (one.source?.start) delete one.source.start.offset + // @ts-expect-error Testing non-standard AST + if (one.source?.end) delete one.source.end.offset + + equal(one.rangeBy(), { + end: { column: 12, line: 1, offset: 11 }, + start: { column: 6, line: 1, offset: 5 } + }) +}) + +test('rangeBy() returns range for empty object even after AST mutations', () => { + let css = parse('a {\n\tone: 1;\n\ttwo: 2;}') + let a = css.first as Rule + let one = a.first as Declaration + let two = one.next() as Declaration + + equal(a.rangeBy(), { + end: { column: 10, line: 3, offset: 22 }, + start: { column: 1, line: 1, offset: 0 } + }) + equal(two.rangeBy(), { + end: { column: 9, line: 3, offset: 21 }, + start: { column: 2, line: 3, offset: 14 } + }) + + one.remove() + + equal(a.rangeBy(), { + end: { column: 10, line: 3, offset: 22 }, + start: { column: 1, line: 1, offset: 0 } + }) + equal(two.rangeBy(), { + end: { column: 9, line: 3, offset: 21 }, + start: { column: 2, line: 3, offset: 14 } + }) }) test('rangeBy() returns range', () => { @@ -555,8 +631,8 @@ test('rangeBy() returns range', () => { let a = css.first as Rule let one = a.first as Declaration equal(one.rangeBy(), { - end: { column: 12, line: 1 }, - start: { column: 6, line: 1 } + end: { column: 12, line: 1, offset: 11 }, + start: { column: 6, line: 1, offset: 5 } }) }) @@ -571,8 +647,8 @@ test('rangeBy() returns range when offsets are missing', () => { if (one.source?.end) delete one.source.end.offset equal(one.rangeBy(), { - end: { column: 12, line: 1 }, - start: { column: 6, line: 1 } + end: { column: 12, line: 1, offset: 11 }, + start: { column: 6, line: 1, offset: 5 } }) }) @@ -583,23 +659,23 @@ test('rangeBy() returns range for empty object even after AST mutations', () => let two = one.next() as Declaration equal(a.rangeBy(), { - end: { column: 10, line: 3 }, - start: { column: 1, line: 1 } + end: { column: 10, line: 3, offset: 22 }, + start: { column: 1, line: 1, offset: 0 } }) equal(two.rangeBy(), { - end: { column: 9, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 9, line: 3, offset: 21 }, + start: { column: 2, line: 3, offset: 14 } }) one.remove() equal(a.rangeBy(), { - end: { column: 10, line: 3 }, - start: { column: 1, line: 1 } + end: { column: 10, line: 3, offset: 22 }, + start: { column: 1, line: 1, offset: 0 } }) equal(two.rangeBy(), { - end: { column: 9, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 9, line: 3, offset: 21 }, + start: { column: 2, line: 3, offset: 14 } }) }) @@ -608,8 +684,8 @@ test('rangeBy() returns range for word', () => { let a = css.first as Rule let one = a.first as Declaration equal(one.rangeBy({ word: 'one' }), { - end: { column: 9, line: 1 }, - start: { column: 6, line: 1 } + end: { column: 9, line: 1, offset: 8 }, + start: { column: 6, line: 1, offset: 5 } }) }) @@ -624,8 +700,8 @@ test('rangeBy() returns range for word when offsets are missing', () => { if (one.source?.end) delete one.source.end.offset equal(one.rangeBy({ word: 'one' }), { - end: { column: 9, line: 1 }, - start: { column: 6, line: 1 } + end: { column: 9, line: 1, offset: 8 }, + start: { column: 6, line: 1, offset: 5 } }) }) @@ -636,23 +712,23 @@ test('rangeBy() returns range for word even after AST mutations', () => { let two = one.next() as Declaration equal(a.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 2, line: 3, offset: 14 } }) equal(two.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 2, line: 3, offset: 14 } }) one.remove() equal(a.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 2, line: 3, offset: 14 } }) equal(two.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 2, line: 3, offset: 14 } }) }) @@ -672,23 +748,76 @@ test('rangeBy() returns range for word even after AST mutations when offsets are if (two.source?.end) delete two.source.end.offset equal(a.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17, }, + start: { column: 2, line: 3, offset: 14 } }) equal(two.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17, }, + start: { column: 2, line: 3, offset: 14 } }) one.remove() equal(a.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17, }, + start: { column: 2, line: 3, offset: 14 } }) equal(two.rangeBy({ word: 'two' }), { - end: { column: 5, line: 3 }, - start: { column: 2, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 2, line: 3, offset: 14 } + }) +}) + +test('rangeBy() returns range for start and end', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + equal(one.rangeBy({ end: { column: 9, line: 1 }, start: { column: 7, line: 1 } }), { + end: { column: 9, line: 1, offset: 8 }, + start: { column: 7, line: 1, offset: 6 } + }) +}) + +test('rangeBy() returns range for start and end when offsets are missing', () => { + let css = parse('a { one: X }') + let a = css.first as Rule + let one = a.first as Declaration + + // @ts-expect-error Testing non-standard AST + if (one.source?.start) delete one.source.start.offset + // @ts-expect-error Testing non-standard AST + if (one.source?.end) delete one.source.end.offset + + equal(one.rangeBy({ end: { column: 9, line: 1 }, start: { column: 7, line: 1 } }), { + end: { column: 9, line: 1, offset: 8 }, + start: { column: 7, line: 1, offset: 6 } + }) +}) + +test('rangeBy() returns range for start and end after AST mutations', () => { + let css = parse('a {\n\tone: 1;\n\ttwo: 2;}') + let a = css.first as Rule + let one = a.first as Declaration + let two = one.next() as Declaration + + equal(a.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), { + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } + }) + equal(two.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), { + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } + }) + + one.remove() + + equal(a.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), { + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } + }) + equal(two.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), { + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } }) }) @@ -697,8 +826,8 @@ test('rangeBy() returns range for index and endIndex', () => { let a = css.first as Rule let one = a.first as Declaration equal(one.rangeBy({ endIndex: 3, index: 1 }), { - end: { column: 9, line: 1 }, - start: { column: 7, line: 1 } + end: { column: 9, line: 1, offset: 8 }, + start: { column: 7, line: 1, offset: 6 } }) }) @@ -713,8 +842,8 @@ test('rangeBy() returns range for index and endIndex when offsets are missing', if (one.source?.end) delete one.source.end.offset equal(one.rangeBy({ endIndex: 3, index: 1 }), { - end: { column: 9, line: 1 }, - start: { column: 7, line: 1 } + end: { column: 9, line: 1, offset: 8 }, + start: { column: 7, line: 1, offset: 6 } }) }) @@ -725,23 +854,23 @@ test('rangeBy() returns range for index and endIndex after AST mutations', () => let two = one.next() as Declaration equal(a.rangeBy({ endIndex: 17, index: 15 }), { - end: { column: 5, line: 3 }, - start: { column: 3, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } }) equal(two.rangeBy({ endIndex: 3, index: 1 }), { - end: { column: 5, line: 3 }, - start: { column: 3, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } }) one.remove() equal(a.rangeBy({ endIndex: 17, index: 15 }), { - end: { column: 5, line: 3 }, - start: { column: 3, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } }) equal(two.rangeBy({ endIndex: 3, index: 1 }), { - end: { column: 5, line: 3 }, - start: { column: 3, line: 3 } + end: { column: 5, line: 3, offset: 17 }, + start: { column: 3, line: 3, offset: 15 } }) }) @@ -768,13 +897,13 @@ test('rangeBy() supports multi-root documents', () => { } equal(a.rangeBy({ endIndex: 1, index: 0 }), { - end: { column: 9, line: 1 }, - start: { column: 8, line: 1 } + end: { column: 9, line: 1, offset: 8 }, + start: { column: 8, line: 1, offset: 7 } }) equal(a.rangeBy({ word: 'a' }), { - end: { column: 9, line: 1 }, - start: { column: 8, line: 1 } + end: { column: 9, line: 1, offset: 8 }, + start: { column: 8, line: 1, offset: 7 } }) }) From f82c2a60906ee889be26fe8e7e37d90fca23224e Mon Sep 17 00:00:00 2001 From: mizdra Date: Sun, 23 Mar 2025 02:08:32 +0900 Subject: [PATCH 2881/3047] Add `Input#fromLineAndColumn`, `CssSyntaxError.input.offset` and `CssSyntaxError.input.endOffset` (#2034) * Test the current behavior of error location * Fix missing jsdoc for `Input#error(message, start, end, opts)` * Refactor `fromOffset` * Add `Input#fromLineAndColumn` * Add `Input#offset` and `Input#endOffset` * Convert `_getLineToIndex` to function --- lib/input.d.ts | 27 ++++++++++++++-- lib/input.js | 58 ++++++++++++++++++++++------------- test/css-syntax-error.test.ts | 20 ++++++++++++ test/input.test.ts | 20 ++++++++++++ 4 files changed, 100 insertions(+), 25 deletions(-) create mode 100644 test/input.test.ts diff --git a/lib/input.d.ts b/lib/input.d.ts index 260040f35..3207da3e1 100644 --- a/lib/input.d.ts +++ b/lib/input.d.ts @@ -18,6 +18,11 @@ declare namespace Input { */ endLine?: number + /** + * Offset of exclusive end position in source file. + */ + endOffset?: number + /** * Absolute path to the source file. */ @@ -28,6 +33,11 @@ declare namespace Input { */ line: number + /** + * Offset of inclusive start position in source file. + */ + offset: number + /** * Source code. */ @@ -131,6 +141,9 @@ declare class Input_ { */ constructor(css: string, opts?: ProcessOptions) + /** + * Returns `CssSyntaxError` with information about the error and its position. + */ error( message: string, start: @@ -151,9 +164,6 @@ declare class Input_ { }, opts?: { plugin?: CssSyntaxError['plugin'] } ): CssSyntaxError - /** - * Returns `CssSyntaxError` with information about the error and its position. - */ error( message: string, line: number, @@ -165,12 +175,23 @@ declare class Input_ { offset: number, opts?: { plugin?: CssSyntaxError['plugin'] } ): CssSyntaxError + + /** + * Converts source line and column to offset. + * + * @param line Source line. + * @param column Source column. + * @return Source offset. + */ + fromLineAndColumn(line: number, column: number): number + /** * Converts source offset to line and column. * * @param offset Source offset. */ fromOffset(offset: number): { col: number; line: number } | null + /** * Reads the input source map and returns a symbol position * in the input source (e.g., in a Sass file that was compiled diff --git a/lib/input.js b/lib/input.js index 9773e0fa3..bb0ccf53a 100644 --- a/lib/input.js +++ b/lib/input.js @@ -9,11 +9,26 @@ let CssSyntaxError = require('./css-syntax-error') let PreviousMap = require('./previous-map') let terminalHighlight = require('./terminal-highlight') -let fromOffsetCache = Symbol('fromOffsetCache') +let lineToIndexCache = Symbol('lineToIndexCache') let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) let pathAvailable = Boolean(resolve && isAbsolute) +function getLineToIndex(input) { + if (input[lineToIndexCache]) return input[lineToIndexCache] + let lines = input.css.split('\n') + let lineToIndex = new Array(lines.length) + let prevIndex = 0 + + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex + prevIndex += lines[i].length + 1 + } + + input[lineToIndexCache] = lineToIndex + return lineToIndex +} + class Input { get from() { return this.file || this.id @@ -68,31 +83,38 @@ class Input { } error(message, line, column, opts = {}) { - let endColumn, endLine, result + let endColumn, endLine, endOffset, offset, result if (line && typeof line === 'object') { let start = line let end = column if (typeof start.offset === 'number') { - let pos = this.fromOffset(start.offset) + offset = start.offset + let pos = this.fromOffset(offset) line = pos.line column = pos.col } else { line = start.line column = start.column + offset = this.fromLineAndColumn(line, column) } if (typeof end.offset === 'number') { - let pos = this.fromOffset(end.offset) + endOffset = end.offset + let pos = this.fromOffset(endOffset) endLine = pos.line endColumn = pos.col } else { endLine = end.line endColumn = end.column + endOffset = this.fromLineAndColumn(end.line, end.column) } } else if (!column) { - let pos = this.fromOffset(line) + offset = line + let pos = this.fromOffset(offset) line = pos.line column = pos.col + } else { + offset = this.fromLineAndColumn(line, column) } let origin = this.origin(line, column, endLine, endColumn) @@ -120,7 +142,7 @@ class Input { ) } - result.input = { column, endColumn, endLine, line, source: this.css } + result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css } if (this.file) { if (pathToFileURL) { result.input.url = pathToFileURL(this.file).toString() @@ -131,23 +153,15 @@ class Input { return result } - fromOffset(offset) { - let lastLine, lineToIndex - if (!this[fromOffsetCache]) { - let lines = this.css.split('\n') - lineToIndex = new Array(lines.length) - let prevIndex = 0 - - for (let i = 0, l = lines.length; i < l; i++) { - lineToIndex[i] = prevIndex - prevIndex += lines[i].length + 1 - } + fromLineAndColumn(line, column) { + let lineToIndex = getLineToIndex(this) + let index = lineToIndex[line - 1] + return index + column - 1 + } - this[fromOffsetCache] = lineToIndex - } else { - lineToIndex = this[fromOffsetCache] - } - lastLine = lineToIndex[lineToIndex.length - 1] + fromOffset(offset) { + let lineToIndex = getLineToIndex(this) + let lastLine = lineToIndex[lineToIndex.length - 1] let min = 0 if (offset >= lastLine) { diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 8e1e9beaa..0467896c1 100755 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -55,13 +55,17 @@ test('saves source', () => { is(error.reason, 'Unclosed string') is(error.line, 2) is(error.column, 12) + is(error.endLine, undefined) + is(error.endColumn, undefined) is(error.source, 'a {\n content: "\n}') equal(error.input, { column: error.column, endColumn: error.endColumn, endLine: error.endLine, + endOffset: undefined, line: error.line, + offset: 15, source: error.source }) }) @@ -83,7 +87,9 @@ test('saves source with ranges', () => { column: error.column, endColumn: error.endColumn, endLine: error.endLine, + endOffset: 7, line: error.line, + offset: 0, source: error.source }) }) @@ -109,7 +115,9 @@ test('saves source with ranges', () => { column: error.column, endColumn: error.endColumn, endLine: error.endLine, + endOffset: 7, line: error.line, + offset: 0, source: error.source }) }) @@ -131,7 +139,9 @@ test('saves source with ranges', () => { column: error.column, endColumn: error.endColumn, endLine: error.endLine, + endOffset: 7, line: error.line, + offset: 0, source: error.source }) }) @@ -285,14 +295,19 @@ test('uses source map', () => { is(error.file, join(__dirname, 'b.css')) is(error.line, 2) + is(error.column, 0) // Is this correct? + is(error.endLine, undefined) + is(error.endColumn, undefined) type(error.source, 'undefined') equal(error.input, { column: 1, endColumn: error.endColumn, endLine: error.endLine, + endOffset: undefined, file: join(__dirname, 'build', 'all.css'), line: 3, + offset: 7, source: 'a { }\n\nb {\n', url: urlOf(join('build', 'all.css')) }) @@ -314,14 +329,19 @@ test('works with path in sources', () => { is(error.file, join(__dirname, 'b.css')) is(error.line, 2) + is(error.column, 0) // Is this correct? + is(error.endLine, undefined) + is(error.endColumn, undefined) type(error.source, 'undefined') equal(error.input, { column: 1, endColumn: error.endColumn, endLine: error.endLine, + endOffset: undefined, file: join(__dirname, 'build', 'all.css'), line: 3, + offset: 7, source: 'a { }\n\nb {\n', url: pathToFileURL(pathOf(join('build', 'all.css'))).toString() }) diff --git a/test/input.test.ts b/test/input.test.ts new file mode 100644 index 000000000..85a5ecb79 --- /dev/null +++ b/test/input.test.ts @@ -0,0 +1,20 @@ +import { test } from 'uvu' +import { equal, is } from 'uvu/assert' + +import { Input } from '../lib/postcss.js' + +test('fromLineAndColumn() returns offset', () => { + let input = new Input('a {\n}') + is(input.fromLineAndColumn(1, 1), 0) + is(input.fromLineAndColumn(1, 3), 2) + is(input.fromLineAndColumn(2, 1), 4) + is(input.fromLineAndColumn(2, 2), 5) +}) + +test('fromOffset() returns line and column', () => { + let input = new Input('a {\n}') + equal(input.fromOffset(0), { col: 1, line: 1 }) + equal(input.fromOffset(2), { col: 3, line: 1 }) + equal(input.fromOffset(4), { col: 1, line: 2 }) + equal(input.fromOffset(5), { col: 2, line: 2 }) +}) From ff48c29ebb16339188761827701e832f516bfb7d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 22 Mar 2025 18:12:55 +0100 Subject: [PATCH 2882/3047] Increase size --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 42fb3c4a6..e026d7ec4 100755 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "size-limit": [ { "path": "lib/postcss.js", - "limit": "15 KB" + "limit": "16 KB" } ], "clean-publish": { From cf6b9697519aa0a9feda3b3468a738ba8870b61b Mon Sep 17 00:00:00 2001 From: Abhay Sharma <41940582+Daggron@users.noreply.github.com> Date: Thu, 10 Apr 2025 23:35:55 +0530 Subject: [PATCH 2883/3047] fix: add a mention for postcssense extension (#2040) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0c5d12b9e..0da9f375d 100644 --- a/README.md +++ b/README.md @@ -463,6 +463,9 @@ module.exports = { [`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss +- [`smallcase.postcssense`] adds Intellisense for global classes + +[`smallcase.postcssense`]: https://marketplace.visualstudio.com/items?itemName=smallcase.postcssense ### Sublime Text From a20724af14ad05304f99ced858f6f2f47f4a1633 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 10 Apr 2025 20:06:31 +0200 Subject: [PATCH 2884/3047] Fix Markdown syntax --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 0da9f375d..1006e27ab 100644 --- a/README.md +++ b/README.md @@ -460,11 +460,9 @@ module.exports = { ### VS Code * [`csstools.postcss`] adds PostCSS support. +* [`smallcase.postcssense`] adds Intellisense for global classes [`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss - -- [`smallcase.postcssense`] adds Intellisense for global classes - [`smallcase.postcssense`]: https://marketplace.visualstudio.com/items?itemName=smallcase.postcssense ### Sublime Text From 94b5260be6fd43f230cc4dd91a7d3c51b09a0e94 Mon Sep 17 00:00:00 2001 From: mizdra Date: Sat, 12 Apr 2025 21:22:12 +0900 Subject: [PATCH 2885/3047] Clarify documentation for `node.source.end.offset` (#2032) * Clarify documentation for `node.source.end.offset` * Add test cases for `node.source` * Show example code for `end.offset` --- lib/node.d.ts | 16 ++++++++++++++++ test/location.test.ts | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/lib/node.d.ts b/lib/node.d.ts index a563376d7..6331b57ce 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -66,6 +66,22 @@ declare namespace Node { /** * The inclusive ending position for the source * code of a node. + * + * However, `end.offset` of a non `Root` node is the exclusive position. + * See https://github.com/postcss/postcss/pull/1879 for details. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const a = root.first + * const color = a.first + * + * // The offset of `Root` node is the inclusive position + * css.source.end // { line: 1, column: 19, offset: 18 } + * + * // The offset of non `Root` node is the exclusive position + * a.source.end // { line: 1, column: 18, offset: 18 } + * color.source.end // { line: 1, column: 16, offset: 16 } + * ``` */ end?: Position diff --git a/test/location.test.ts b/test/location.test.ts index e74c895f0..6c41aeffd 100644 --- a/test/location.test.ts +++ b/test/location.test.ts @@ -16,6 +16,23 @@ function checkOffset(source: string, node: Node, expected: string): void { equal(source.slice(start, end), expected) } +test('root', () => { + let source = '.a{}' + let css = parse(source) + + checkOffset(source, css, '.a{}') + equal(css.source!.start, { + column: 1, + line: 1, + offset: 0 + }) + equal(css.source!.end, { + column: 5, + line: 1, + offset: 4 + }) +}) + test('rule', () => { let source = '.a{}' let css = parse(source) From b5f407f3976419310bcc530043f5835b7192f41c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar=20Rubio?= Date: Sat, 26 Apr 2025 22:48:46 +0200 Subject: [PATCH 2886/3047] Add `postcss-fontsource-url` to plugins (#2043) * Add `postcss-fontsource-url` plugin to plugins * Update docs/plugins.md --------- Co-authored-by: Andrey Sitnik --- docs/plugins.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index 0d5008e19..6c0fedfef 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -314,13 +314,14 @@ for targeting all button elements. * [`postcss-foft-classes`] adds guarding classes to blocks using web fonts for better font loading strategies. * [`postcss-font-awesome`] adds an easy shortcut to font-awesome unicode codes +* [`postcss-font-grabber`] grabs remote fonts in `@font-face`, + download them and update your CSS. * [`postcss-font-pack`] simplifies font declarations and validates they match configured font packs. * [`postcss-fontsize`] generates `rem` unit `font-size` and `line-height` with `px` fallbacks. * [`postcss-fontpath`] adds font links for different browsers. -* [`postcss-font-grabber`] it grabs remote fonts in `@font-face`, - download them and update your CSS. +* [`postcss-fontsource-url`] rewrite Fontsource assets folder. * [`postcss-lazyimagecss`] adds image width and height automatically. * [`postcss-lazysprite`] generates sprites from the directory of images. * [`postcss-placehold`] makes it easy to drop in placeholder images. @@ -745,6 +746,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-flexibility`]: https://github.com/7rulnik/postcss-flexibility [`postcss-font-family`]: https://github.com/ben-eb/postcss-font-family [`postcss-fontsize`]: https://github.com/richbachman/postcss-fontsize +[`postcss-fontsource-url`]: https://github.com/mondeja/postcss-fontsource-url [`postcss-grid-system`]: https://github.com/francoisromain/postcss-grid-system [`postcss-input-style`]: https://github.com/seaneking/postcss-input-style [`postcss-merge-rules`]: https://github.com/ben-eb/postcss-merge-rules From 0538b6309e5ca80044bc8ca34833db422bbaa9fe Mon Sep 17 00:00:00 2001 From: Patrick Kollitsch Date: Sun, 4 May 2025 15:27:12 +0700 Subject: [PATCH 2887/3047] docs: Update README.md (#2044) fixed some language issues. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1006e27ab..71907544d 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more. PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, -and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins is one of the most popular CSS tools. +and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some of the most popular CSS tools. --- From 50542335f22e513edaa52cb8bd214370ceef1bc9 Mon Sep 17 00:00:00 2001 From: git-sumitchaudhary <155057360+git-sumitchaudhary@users.noreply.github.com> Date: Thu, 29 May 2025 10:11:11 +0530 Subject: [PATCH 2888/3047] fixed error at line 401 (#2046) when using postcss using parcel an error was occuring due to no check mentioned for value at line 401 , which caused error while reading value when it was undefined hence i added a check if its value is undefined continue and dont move forward --- lib/node.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/node.js b/lib/node.js index a3c1a3106..8e3a34020 100644 --- a/lib/node.js +++ b/lib/node.js @@ -399,6 +399,9 @@ class Node { } else if (typeof value === 'object' && value.toJSON) { fixed[name] = value.toJSON(null, inputs) } else if (name === 'source') { + if (value == null) { + continue; + } let inputId = inputs.get(value.input) if (inputId == null) { inputId = inputsNextIndex From e85e9385c87499bc7e274c6ce332cf59e3988994 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 29 May 2025 13:46:23 +0900 Subject: [PATCH 2889/3047] Fix code format --- lib/node.js | 51 ++++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/lib/node.js b/lib/node.js index 8e3a34020..b403b7136 100644 --- a/lib/node.js +++ b/lib/node.js @@ -34,11 +34,8 @@ function cloneNode(obj, parent) { function sourceOffset(inputCSS, position) { // Not all custom syntaxes support `offset` in `source.start` and `source.end` - if ( - position && - typeof position.offset !== 'undefined' - ) { - return position.offset; + if (position && typeof position.offset !== 'undefined') { + return position.offset } let column = 1 @@ -213,9 +210,10 @@ class Node { if (opts.index) { pos = this.positionInside(opts.index) } else if (opts.word) { - let inputString = ('document' in this.source.input) - ? this.source.input.document - : this.source.input.css + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css let stringRepresentation = inputString.slice( sourceOffset(inputString, this.source.start), sourceOffset(inputString, this.source.end) @@ -229,9 +227,10 @@ class Node { positionInside(index) { let column = this.source.start.column let line = this.source.start.line - let inputString = ('document' in this.source.input) - ? this.source.input.document - : this.source.input.css + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css let offset = sourceOffset(inputString, this.source.start) let end = offset + index @@ -254,9 +253,10 @@ class Node { } rangeBy(opts = {}) { - let inputString = ('document' in this.source.input) - ? this.source.input.document - : this.source.input.css + let inputString = + 'document' in this.source.input + ? this.source.input.document + : this.source.input.css let start = { column: this.source.start.column, line: this.source.start.line, @@ -266,13 +266,14 @@ class Node { ? { column: this.source.end.column + 1, line: this.source.end.line, - offset: typeof this.source.end.offset === 'number' - // `source.end.offset` is exclusive, so we don't need to add 1 - ? this.source.end.offset - // Since line/column in this.source.end is inclusive, - // the `sourceOffset(... , this.source.end)` returns an inclusive offset. - // So, we add 1 to convert it to exclusive. - : sourceOffset(inputString, this.source.end) + 1 + offset: + typeof this.source.end.offset === 'number' + ? // `source.end.offset` is exclusive, so we don't need to add 1 + this.source.end.offset + : // Since line/column in this.source.end is inclusive, + // the `sourceOffset(... , this.source.end)` returns an inclusive offset. + // So, we add 1 to convert it to exclusive. + sourceOffset(inputString, this.source.end) + 1 } : { column: start.column + 1, @@ -288,9 +289,7 @@ class Node { let index = stringRepresentation.indexOf(opts.word) if (index !== -1) { start = this.positionInside(index) - end = this.positionInside( - index + opts.word.length, - ) + end = this.positionInside(index + opts.word.length) } } else { if (opts.start) { @@ -399,9 +398,7 @@ class Node { } else if (typeof value === 'object' && value.toJSON) { fixed[name] = value.toJSON(null, inputs) } else if (name === 'source') { - if (value == null) { - continue; - } + if (value == null) continue let inputId = inputs.get(value.input) if (inputId == null) { inputId = inputsNextIndex From ec5c1e031083664bed1cf91eaac72f8c61068110 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 29 May 2025 13:54:36 +0900 Subject: [PATCH 2890/3047] Update dependencies --- lib/node.d.ts | 1 - package.json | 14 +- pnpm-lock.yaml | 941 ++++++++++++++++++++---------------- test/no-work-result.test.ts | 4 +- test/postcss.test.ts | 2 +- tsconfig.json | 3 +- 6 files changed, 538 insertions(+), 427 deletions(-) mode change 100755 => 100644 package.json diff --git a/lib/node.d.ts b/lib/node.d.ts index 6331b57ce..a09fe4dda 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -1,5 +1,4 @@ import AtRule = require('./at-rule.js') - import { AtRuleProps } from './at-rule.js' import Comment, { CommentProps } from './comment.js' import Container, { NewChild } from './container.js' diff --git a/package.json b/package.json old mode 100755 new mode 100644 index e026d7ec4..9e9f8cf53 --- a/package.json +++ b/package.json @@ -90,22 +90,22 @@ "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^55.1.0", + "@logux/eslint-config": "^55.2.1", "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^22.13.10", + "@types/node": "^22.15.24", "c8": "^10.1.3", - "check-dts": "^0.8.2", - "clean-publish": "^5.1.0", + "check-dts": "^0.9.0", + "clean-publish": "^5.2.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.22.0", + "eslint": "^9.27.0", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", - "simple-git-hooks": "^2.11.1", + "simple-git-hooks": "^2.13.0", "size-limit": "^11.2.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.2", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4de3db7b..f4a009924 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,29 +19,29 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^55.1.0 - version: 55.1.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + specifier: ^55.2.1 + version: 55.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^22.13.10 - version: 22.13.10 + specifier: ^22.15.24 + version: 22.15.24 c8: specifier: ^10.1.3 version: 10.1.3 check-dts: - specifier: ^0.8.2 - version: 0.8.2(typescript@5.8.2) + specifier: ^0.9.0 + version: 0.9.0(typescript@5.8.3) clean-publish: - specifier: ^5.1.0 - version: 5.1.0 + specifier: ^5.2.1 + version: 5.2.1 concat-with-sourcemaps: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.22.0 - version: 9.22.0(jiti@2.4.2) + specifier: ^9.27.0 + version: 9.27.0(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -52,8 +52,8 @@ importers: specifier: ^8.9.0 version: 8.9.0 simple-git-hooks: - specifier: ^2.11.1 - version: 2.11.1 + specifier: ^2.13.0 + version: 2.13.0 size-limit: specifier: ^11.2.0 version: 11.2.0 @@ -62,10 +62,10 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.13.10)(typescript@5.8.2) + version: 10.9.2(@types/node@22.15.24)(typescript@5.8.3) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 uvu: specifier: ^0.5.6 version: 0.5.6 @@ -80,167 +80,167 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.3.1': - resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@emnapi/wasi-threads@1.0.1': - resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - '@esbuild/aix-ppc64@0.25.1': - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.1': - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.1': - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.1': - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.1': - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.1': - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.1': - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.1': - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.1': - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.1': - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.1': - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.1': - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.1': - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.1': - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.1': - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.1': - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.1': - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.1': - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.1': - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.1': - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.1': - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.1': - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -249,32 +249,32 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.1.0': - resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + '@eslint/config-helpers@0.2.2': + resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.22.0': - resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} + '@eslint/js@9.27.0': + resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.7': - resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + '@eslint/plugin-kit@0.3.1': + resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -293,8 +293,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} '@isaacs/cliui@8.0.2': @@ -318,8 +318,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@logux/eslint-config@55.1.0': - resolution: {integrity: sha512-sUWEuD+XZYGQhh9sDJxb+WDlWITtEOi8ZG241jcoKbNA+4d+Or3mAdFh0i/0CJ2frZskJDnusBvBaO0Ohm/yAw==} + '@logux/eslint-config@55.2.1': + resolution: {integrity: sha512-lwSB1tkMeiHLZIduvt5273gA1akONIm+aMIwy7nnJngvcv3KuDWCi0EXVkeSuDMZamY6LAViF7v5J/Z1xWwBqg==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -334,8 +334,8 @@ packages: svelte-eslint-parser: optional: true - '@napi-rs/wasm-runtime@0.2.7': - resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==} + '@napi-rs/wasm-runtime@0.2.10': + resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -385,11 +385,8 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/doctrine@0.0.9': - resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -397,111 +394,151 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.13.10': - resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + '@types/node@22.15.24': + resolution: {integrity: sha512-w9CZGm9RDjzTh/D+hFwlBJ3ziUaVw7oufKA3vOFSOZlzmW9AkZnfjPb+DLnrV6qtgL/LNmP0/2zBNCFHL3F0ng==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.26.1': - resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} + '@typescript-eslint/eslint-plugin@8.33.0': + resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.33.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.26.1': - resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} + '@typescript-eslint/parser@8.33.0': + resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.26.1': - resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} + '@typescript-eslint/project-service@8.33.0': + resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.33.0': + resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.33.0': + resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.26.1': - resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} + '@typescript-eslint/type-utils@8.33.0': + resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.26.1': - resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} + '@typescript-eslint/types@8.33.0': + resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.26.1': - resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + '@typescript-eslint/typescript-estree@8.33.0': + resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.26.1': - resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} + '@typescript-eslint/utils@8.33.0': + resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.26.1': - resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + '@typescript-eslint/visitor-keys@8.33.0': + resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unrs/rspack-resolver-binding-darwin-arm64@1.2.1': - resolution: {integrity: sha512-xgSjy64typsn/lhQk/uKaS363H7ZeIBlWSh25FJFWXSCeLMHpEZ0umDo5Vzqi5iS26OZ5R1SpQkwiS78GhQRjw==} + '@unrs/resolver-binding-darwin-arm64@1.7.7': + resolution: {integrity: sha512-3sRvuOUJPnr55HM6SXQhYiWB4QZtVDFtJT7xu1asdXxuR4C3wHX6ORp3byP3DIMwOFbNrcPSPcDzvdikS/pMqA==} cpu: [arm64] os: [darwin] - '@unrs/rspack-resolver-binding-darwin-x64@1.2.1': - resolution: {integrity: sha512-3maDtW0vehzciEbuLxc2g+0FmDw5LGfCt+yMN1ZDn0lW0ikEBEFp6ul3h2fRphtfuCc7IvBJE9WWTt1UHkS7Nw==} + '@unrs/resolver-binding-darwin-x64@1.7.7': + resolution: {integrity: sha512-Xh3eNqnJOuIbaGv5QynH12Vf9mRPdHkiJlbisAUt7oywCwAcLTz+g9KP4Bww9m9b2//+xrew52dIZa56VRrl+w==} cpu: [x64] os: [darwin] - '@unrs/rspack-resolver-binding-freebsd-x64@1.2.1': - resolution: {integrity: sha512-aN6ifws9rNLjK2+6sIU9wvHyjXEf3S5+EZTHRarzd4jfa8i5pA7Mwt28un2DZVrBtIxhWDQvUPVKGI7zSBfVCA==} + '@unrs/resolver-binding-freebsd-x64@1.7.7': + resolution: {integrity: sha512-FC5vAxd0GD4CqPDuSooesyXTiCJY9V7ow72u8sIXdf3v8NWj6ceNG9cPE0GFUQUk++tqf+Yp01W79BBvQ31lEA==} cpu: [x64] os: [freebsd] - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.1': - resolution: {integrity: sha512-tKqu9VQyCO1yEUX6n6jgOHi7SJA9e6lvHczK60gur4VBITxnPmVYiCj2aekrOOIavvvjjuWAL2rqPQuc4g7RHQ==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.7': + resolution: {integrity: sha512-oSNFKV3j/VeCkl1cQP6KpDevAWtEfEIA6nkEN56etQgG6gLSEndJahvV1RDRKE18VSgKkXtYtFr3WM9L3Zlo1g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.7': + resolution: {integrity: sha512-bqP4jd4luBxEKOXjo4zGcmEtJephzA/AqtXf1LcO7YwtesDgPMAedJNZt2DJIgGc4JT99Prx5JLkPzoGYQZJ/w==} cpu: [arm] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.1': - resolution: {integrity: sha512-+xDI0kvwPiCR7334O83TPfaUXSe0UMVi5srQpQxP4+SDVYuONWsbwAC1IXe+yfOwRVGZsUdW9wE0ZiWs4Z+egw==} + '@unrs/resolver-binding-linux-arm64-gnu@1.7.7': + resolution: {integrity: sha512-dKA6SesiVtGYADa8rJrWraoyfyna5I68hJI0Ge+y2bEVTKh2ObghwaLcgv0OR0Fo4XimpioB6FpvGezrvMJX4g==} cpu: [arm64] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.1': - resolution: {integrity: sha512-fcrVHlw+6UgQliMbI0znFD4ASWKuyY17FdH67ZmyNH62b0hRhhxQuJE0D6N3410m8lKVu4QW4EzFiHxYFUC0cg==} + '@unrs/resolver-binding-linux-arm64-musl@1.7.7': + resolution: {integrity: sha512-m6t6ylCxusfcXTszyxtkel1CRZZrB7LAd/TP48iggmNdE7+a1YByLr226TCBz0rJz7oxNnwUVw6ICHyV7zwVLA==} cpu: [arm64] os: [linux] - '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.1': - resolution: {integrity: sha512-xISTyUJ2PiAT4x9nlh8FdciDcdKbsatgK9qO7EEsILt9VB7Y1mHYGaszj3ouxfZnaKQ13WwW+dFLGxkZLP/WVg==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.7': + resolution: {integrity: sha512-Km4qNXKDHIFbFXhETEoRCtIIsyUldSZ3KU7zr/Id+MvBMyTsXZ5AMCVnbKEcoaLf7AjBnwbEFHnqGUOXKnS88g==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.7': + resolution: {integrity: sha512-pDBwW3n2RUD7VN1OSh1/MM/yYA7QyrbonNZcFhW79lpZFIekzIjYL83V2rZ1Lo0KYaI4iejwQTFOZoT7fRwPjw==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.7.7': + resolution: {integrity: sha512-0IQeRiDD8OHpj/ekf36ePRqd7i7X4k/SCcv9+XBJ5VNHKSuStsMRTVhMstRS3JSU7/c0R7OlZmj96vtpTSSazg==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.7.7': + resolution: {integrity: sha512-d0LCgzLsdsqYz4fxvBSZyo6TZZab6oUvGmfTtdwk/P9KCrpge8swsLvzK2cJVLHMSreyV6iknVBlBFNIkd9tgQ==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.7.7': + resolution: {integrity: sha512-cbspezCWjpslXCnij/4cWXoJj9l39mqL09/QltGqS8yfNmOk+U3E4IQiiqaNTeg+c9VJFCSx10MvBx49usUMFg==} cpu: [x64] os: [linux] - '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.1': - resolution: {integrity: sha512-LE8EjE/iPlvSsFbZ6P9c0Jh5/pifAi03UYeXYwOnQqt1molKAPMB0R4kGWOM7dnDYaNgkk1MN9MOTCLsqe97Fw==} + '@unrs/resolver-binding-linux-x64-musl@1.7.7': + resolution: {integrity: sha512-Q04EorD1iwqNs9x/OywI/DPUUGvWmgx5zQ/TnD0eFokDsDMtgsaRgcuNA3dc84F6lZC08dqmj1zdXddPfkC0YQ==} cpu: [x64] os: [linux] - '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.1': - resolution: {integrity: sha512-XERT3B88+G55RgG96May8QvAdgGzHr8qtQ70cIdbuWTpIcA0I76cnxSZ8Qwx33y73jE5N/myX2YKDlFksn4z6w==} + '@unrs/resolver-binding-wasm32-wasi@1.7.7': + resolution: {integrity: sha512-N70EZMr7LtYGkfqKHFSVAjJ/ZkNaWg+7qa4irCr91PHbeo9K0WtLXFcAqLoMXy9AU1HU8wXszu2QPFnM8Q9MMQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.1': - resolution: {integrity: sha512-I8OLI6JbmNx2E/SG8MOEuo/d6rNx8dwgL09rcItSMcP82v1oZ8AY8HNA+axxuxEH95nkb6MPJU09p63isDvzrA==} + '@unrs/resolver-binding-win32-arm64-msvc@1.7.7': + resolution: {integrity: sha512-jL52Di0GqihzIknxMpEFh+BKS5V99Suuai3XlrMwOg8NPM1aQYEHIJID3Nua0+MomcAmEX+Zj4db8yPjTYSljA==} cpu: [arm64] os: [win32] - '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.1': - resolution: {integrity: sha512-s5WvCljhFqiE3McvaD3lDIsQpmk7gEJRUHy1PRwLPzEB7snq9P2xQeqgzdjGhJQq62jBFz7NDy7NbMkocWr2pw==} + '@unrs/resolver-binding-win32-ia32-msvc@1.7.7': + resolution: {integrity: sha512-ZFiuMqGqh0oeq3aaMGKI8rZ2A3+2H8RTWTjnZkRCC5L3aE0pqhHB2q/7BGU7lEvWVv4mpvV/HvGBDPdyf6fB5w==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.7.7': + resolution: {integrity: sha512-jHIsTNlnZrY3uPUJ12sSy6t20Li6FJkOlI/eoTpO8cgQGh/EfbEwdiJto9V85RYR05GpPgdnClfT+loU2WpoNA==} cpu: [x64] os: [win32] @@ -579,8 +616,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - check-dts@0.8.2: - resolution: {integrity: sha512-+G9GREoEYIS/mLleQCIcsUdX6AyrURr8UENN3PzzBIe/mO2dKN/eNxsLu2atNrkjkY7ri1Gn5rjiy44IFgFxCw==} + check-dts@0.9.0: + resolution: {integrity: sha512-xAs/RKFiB1dHEFPK3+ACk0f2WdngQywmghiPsKJF2JmrsOHCQAfcqkD7C52V3FjwPtU5s8sdTJwX4pLP/66+Bw==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: @@ -590,8 +627,8 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - clean-publish@5.1.0: - resolution: {integrity: sha512-Gbz8x7sL/sn0j+2B+yYEumD17WmPT6pHLN+A5nhcd0Sdh86EYblQleU+dUIICXVFalFMFBdW2aGynrVJ6k1u4Q==} + clean-publish@5.2.1: + resolution: {integrity: sha512-NbVdbx/1NRxaD7nB7v6cPUGB2oVSV1QPwqswvI3W6Ii2A1gcPw6EnDV+xNcUTz6jc8e0bFr6Q08Mc0kSIc6DqQ==} engines: {node: '>= 18.0.0'} hasBin: true @@ -606,6 +643,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -630,8 +671,8 @@ packages: supports-color: optional: true - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -654,10 +695,6 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -671,8 +708,8 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} engines: {node: '>=18'} hasBin: true @@ -690,6 +727,15 @@ packages: peerDependencies: eslint: '>=6.0.0' + eslint-import-context@0.1.6: + resolution: {integrity: sha512-/e2ZNPDLCrU8niIy0pddcvXuoO2YrKjf3NAIX+60mHJBT4yv7mqCqvVdyCW2E720e25e4S/1OSVef4U6efGLFg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -699,20 +745,20 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.9.0: - resolution: {integrity: sha512-qdrsei0heLV8z9QpY2/PHF/r/3fF15w3JeVXqWlLzPMiiwYx0VAwIjxN6SzdaPVuGeIMAbQHHS1Wwdn1/bsCgw==} + eslint-plugin-import-x@4.13.3: + resolution: {integrity: sha512-CDewJDEeYQhm94KGCDYiuwU1SdaWc/vh+SziSKkF7kichAqAFnQYtSYUvSwSBbiBjYLxV5uUxocxxQobRI9YXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-n@17.16.2: - resolution: {integrity: sha512-iQM5Oj+9o0KaeLoObJC/uxNGpktZCkYiTTBo8PkRWq3HwNcRxwpvSDFjBhQ5+HLJzBTy+CLDC5+bw0Z5GyhlOQ==} + eslint-plugin-n@17.18.0: + resolution: {integrity: sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@4.10.1: - resolution: {integrity: sha512-GXwFfL47RfBLZRGQdrvGZw9Ali2T2GPW8p4Gyj2fyWQ9396R/HgJMf0m9kn7D6WXRwrINfTDGLS+QYIeok9qEg==} + eslint-plugin-perfectionist@4.13.0: + resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: eslint: '>=8.45.0' @@ -739,8 +785,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.22.0: - resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} + eslint@9.27.0: + resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -785,8 +831,8 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + fdir@6.4.5: + resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -823,8 +869,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -846,8 +892,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.0.0: - resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + globals@16.2.0: + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} engines: {node: '>=18'} graceful-fs@4.2.11: @@ -871,6 +917,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.4: + resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + engines: {node: '>= 4'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -974,6 +1024,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1000,8 +1054,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.4: - resolution: {integrity: sha512-GTFcMIDgR7tqji/LpSY8rtg464VnJl/j6ypoehYnuGb+Y8qZUdtKB8WVCXon0UEZgFDbuUxpIl//6FHLHgXSNA==} + nanoid@5.1.5: + resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} engines: {node: ^18 || >=20} hasBin: true @@ -1012,6 +1066,11 @@ packages: resolution: {integrity: sha512-wvmmALNstRRhLhy7RV11NCRY2k1zxstImiju4VyyKNNRIKDVjyBtmEd/Q4G82/3dN4VSTe+0PRR3DUAASSbEEQ==} engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || ^16.0.0 || ^18.0.0 || >=20.0.0} + napi-postinstall@0.2.4: + resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -1106,9 +1165,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rspack-resolver@1.2.1: - resolution: {integrity: sha512-yTaWGUvHOjcoyFMdVTdYt2nq2Hu8sw6ia3X9szloXFJlWLQZnQ9g/4TPhL3Bb3qN58Mkye8mFG7MCaKhya7fOw==} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -1116,8 +1172,8 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} hasBin: true @@ -1133,8 +1189,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-git-hooks@2.11.1: - resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} + simple-git-hooks@2.13.0: + resolution: {integrity: sha512-N+goiLxlkHJlyaYEglFypzVNMaNplPAk5syu0+OPp/Bk6dwVoXF6FfOw2vO0Dp+JHsBaI+w6cm8TnFl2Hw6tDA==} hasBin: true size-limit@11.2.0: @@ -1181,24 +1237,24 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} test-exclude@7.0.1: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -1224,24 +1280,27 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.26.1: - resolution: {integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==} + typescript-eslint@8.33.0: + resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unrs-resolver@1.7.7: + resolution: {integrity: sha512-KAJIrBeQXgI6futKlN0aZOG1aViGX1X37EFUYqcBWTPVatjeqoydHITsNuxUe6CRo/UTdwMvteSf4A7R4cAlxA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1311,122 +1370,122 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.3.1': + '@emnapi/core@1.4.3': dependencies: - '@emnapi/wasi-threads': 1.0.1 + '@emnapi/wasi-threads': 1.0.2 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.3.1': + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.1': + '@emnapi/wasi-threads@1.0.2': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.1': + '@esbuild/aix-ppc64@0.25.5': optional: true - '@esbuild/android-arm64@0.25.1': + '@esbuild/android-arm64@0.25.5': optional: true - '@esbuild/android-arm@0.25.1': + '@esbuild/android-arm@0.25.5': optional: true - '@esbuild/android-x64@0.25.1': + '@esbuild/android-x64@0.25.5': optional: true - '@esbuild/darwin-arm64@0.25.1': + '@esbuild/darwin-arm64@0.25.5': optional: true - '@esbuild/darwin-x64@0.25.1': + '@esbuild/darwin-x64@0.25.5': optional: true - '@esbuild/freebsd-arm64@0.25.1': + '@esbuild/freebsd-arm64@0.25.5': optional: true - '@esbuild/freebsd-x64@0.25.1': + '@esbuild/freebsd-x64@0.25.5': optional: true - '@esbuild/linux-arm64@0.25.1': + '@esbuild/linux-arm64@0.25.5': optional: true - '@esbuild/linux-arm@0.25.1': + '@esbuild/linux-arm@0.25.5': optional: true - '@esbuild/linux-ia32@0.25.1': + '@esbuild/linux-ia32@0.25.5': optional: true - '@esbuild/linux-loong64@0.25.1': + '@esbuild/linux-loong64@0.25.5': optional: true - '@esbuild/linux-mips64el@0.25.1': + '@esbuild/linux-mips64el@0.25.5': optional: true - '@esbuild/linux-ppc64@0.25.1': + '@esbuild/linux-ppc64@0.25.5': optional: true - '@esbuild/linux-riscv64@0.25.1': + '@esbuild/linux-riscv64@0.25.5': optional: true - '@esbuild/linux-s390x@0.25.1': + '@esbuild/linux-s390x@0.25.5': optional: true - '@esbuild/linux-x64@0.25.1': + '@esbuild/linux-x64@0.25.5': optional: true - '@esbuild/netbsd-arm64@0.25.1': + '@esbuild/netbsd-arm64@0.25.5': optional: true - '@esbuild/netbsd-x64@0.25.1': + '@esbuild/netbsd-x64@0.25.5': optional: true - '@esbuild/openbsd-arm64@0.25.1': + '@esbuild/openbsd-arm64@0.25.5': optional: true - '@esbuild/openbsd-x64@0.25.1': + '@esbuild/openbsd-x64@0.25.5': optional: true - '@esbuild/sunos-x64@0.25.1': + '@esbuild/sunos-x64@0.25.5': optional: true - '@esbuild/win32-arm64@0.25.1': + '@esbuild/win32-arm64@0.25.5': optional: true - '@esbuild/win32-ia32@0.25.1': + '@esbuild/win32-ia32@0.25.5': optional: true - '@esbuild/win32-x64@0.25.1': + '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.27.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.0 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.1.0': {} + '@eslint/config-helpers@0.2.2': {} - '@eslint/core@0.12.0': + '@eslint/core@0.14.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.4.1 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -1437,13 +1496,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.22.0': {} + '@eslint/js@9.27.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.7': + '@eslint/plugin-kit@0.3.1': dependencies: - '@eslint/core': 0.12.0 + '@eslint/core': 0.14.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -1457,7 +1516,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.2': {} + '@humanwhocodes/retry@0.4.3': {} '@isaacs/cliui@8.0.2': dependencies: @@ -1484,25 +1543,25 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@55.1.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@logux/eslint-config@55.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint/eslintrc': 3.3.0 - eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-import-x: 4.9.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint-plugin-n: 17.16.2(eslint@9.22.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 4.10.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@eslint/eslintrc': 3.3.1 + eslint: 9.27.0(jiti@2.4.2) + eslint-plugin-import-x: 4.13.3(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-n: 17.18.0(eslint@9.27.0(jiti@2.4.2)) + eslint-plugin-perfectionist: 4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.22.0(jiti@2.4.2)) - globals: 16.0.0 - typescript-eslint: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-promise: 7.2.1(eslint@9.27.0(jiti@2.4.2)) + globals: 16.2.0 + typescript-eslint: 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript - '@napi-rs/wasm-runtime@0.2.7': + '@napi-rs/wasm-runtime@0.2.10': dependencies: - '@emnapi/core': 1.3.1 - '@emnapi/runtime': 1.3.1 + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 '@tybys/wasm-util': 0.9.0 optional: true @@ -1523,8 +1582,8 @@ snapshots: '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: - esbuild: 0.25.1 - nanoid: 5.1.4 + esbuild: 0.25.5 + nanoid: 5.1.5 size-limit: 11.2.0 '@size-limit/file@11.2.0(size-limit@11.2.0)': @@ -1550,130 +1609,161 @@ snapshots: tslib: 2.8.1 optional: true - '@types/doctrine@0.0.9': {} - - '@types/estree@1.0.6': {} + '@types/estree@1.0.7': {} '@types/istanbul-lib-coverage@2.0.6': {} '@types/json-schema@7.0.15': {} - '@types/node@22.13.10': + '@types/node@22.15.24': dependencies: - undici-types: 6.20.0 + undici-types: 6.21.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.26.1 - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 + eslint: 9.27.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.4 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 + debug: 4.4.1 + eslint: 9.27.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.26.1 - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.8.2 + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color + - typescript + + '@typescript-eslint/scope-manager@8.33.0': + dependencies: + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 - '@typescript-eslint/scope-manager@8.26.1': + '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + typescript: 5.8.3 - '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + debug: 4.4.1 + eslint: 9.27.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.26.1': {} + '@typescript-eslint/types@8.33.0': {} - '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 - debug: 4.4.0 + '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 + debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.8.2 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.26.1': + '@typescript-eslint/visitor-keys@8.33.0': dependencies: - '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/types': 8.33.0 eslint-visitor-keys: 4.2.0 - '@unrs/rspack-resolver-binding-darwin-arm64@1.2.1': + '@unrs/resolver-binding-darwin-arm64@1.7.7': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.7.7': optional: true - '@unrs/rspack-resolver-binding-darwin-x64@1.2.1': + '@unrs/resolver-binding-freebsd-x64@1.7.7': optional: true - '@unrs/rspack-resolver-binding-freebsd-x64@1.2.1': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.7': optional: true - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.1': + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.7': optional: true - '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.7.7': optional: true - '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.1': + '@unrs/resolver-binding-linux-arm64-musl@1.7.7': optional: true - '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.7': optional: true - '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.7': optional: true - '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.1': + '@unrs/resolver-binding-linux-riscv64-musl@1.7.7': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.7.7': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.7.7': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.7.7': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.7.7': dependencies: - '@napi-rs/wasm-runtime': 0.2.7 + '@napi-rs/wasm-runtime': 0.2.10 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.7.7': optional: true - '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.1': + '@unrs/resolver-binding-win32-ia32-msvc@1.7.7': optional: true - '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.1': + '@unrs/resolver-binding-win32-x64-msvc@1.7.7': optional: true acorn-jsx@5.3.2(acorn@8.14.1): @@ -1745,19 +1835,19 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - check-dts@0.8.2(typescript@5.8.2): + check-dts@0.9.0(typescript@5.8.3): dependencies: fast-glob: 3.3.3 nanospinner: 1.2.2 picocolors: 1.1.1 - typescript: 5.8.2 + typescript: 5.8.3 vfile-location: 5.0.3 chokidar@4.0.3: dependencies: readdirp: 4.1.2 - clean-publish@5.1.0: + clean-publish@5.2.1: dependencies: cross-spawn: 7.0.6 fast-glob: 3.3.3 @@ -1776,6 +1866,8 @@ snapshots: color-name@1.1.4: {} + comment-parser@1.4.1: {} + concat-map@0.0.1: {} concat-with-sourcemaps@1.1.0: @@ -1796,7 +1888,7 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0: + debug@4.4.1: dependencies: ms: 2.1.3 @@ -1808,10 +1900,6 @@ snapshots: diff@5.2.0: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - eastasianwidth@0.2.0: {} emoji-regex@8.0.0: {} @@ -1821,44 +1909,51 @@ snapshots: enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.2.2 - esbuild@0.25.1: + esbuild@0.25.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.1 - '@esbuild/android-arm': 0.25.1 - '@esbuild/android-arm64': 0.25.1 - '@esbuild/android-x64': 0.25.1 - '@esbuild/darwin-arm64': 0.25.1 - '@esbuild/darwin-x64': 0.25.1 - '@esbuild/freebsd-arm64': 0.25.1 - '@esbuild/freebsd-x64': 0.25.1 - '@esbuild/linux-arm': 0.25.1 - '@esbuild/linux-arm64': 0.25.1 - '@esbuild/linux-ia32': 0.25.1 - '@esbuild/linux-loong64': 0.25.1 - '@esbuild/linux-mips64el': 0.25.1 - '@esbuild/linux-ppc64': 0.25.1 - '@esbuild/linux-riscv64': 0.25.1 - '@esbuild/linux-s390x': 0.25.1 - '@esbuild/linux-x64': 0.25.1 - '@esbuild/netbsd-arm64': 0.25.1 - '@esbuild/netbsd-x64': 0.25.1 - '@esbuild/openbsd-arm64': 0.25.1 - '@esbuild/openbsd-x64': 0.25.1 - '@esbuild/sunos-x64': 0.25.1 - '@esbuild/win32-arm64': 0.25.1 - '@esbuild/win32-ia32': 0.25.1 - '@esbuild/win32-x64': 0.25.1 + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.22.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.27.0(jiti@2.4.2)): + dependencies: + eslint: 9.27.0(jiti@2.4.2) + semver: 7.7.2 + + eslint-import-context@0.1.6(unrs-resolver@1.7.7): dependencies: - eslint: 9.22.0(jiti@2.4.2) - semver: 7.7.1 + get-tsconfig: 4.10.1 + stable-hash: 0.0.5 + optionalDependencies: + unrs-resolver: 1.7.7 eslint-import-resolver-node@0.3.9: dependencies: @@ -1868,48 +1963,48 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.27.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.22.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.22.0(jiti@2.4.2)) + eslint: 9.27.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-import-x@4.9.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-import-x@4.13.3(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@types/doctrine': 0.0.9 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - debug: 4.4.0 - doctrine: 3.0.0 - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + comment-parser: 1.4.1 + debug: 4.4.1 + eslint: 9.27.0(jiti@2.4.2) + eslint-import-context: 0.1.6(unrs-resolver@1.7.7) eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.10.0 - picomatch: 4.0.2 - rspack-resolver: 1.2.1 - semver: 7.7.1 + is-glob: 4.0.3 + minimatch: 10.0.1 + semver: 7.7.2 stable-hash: 0.0.5 tslib: 2.8.1 + unrs-resolver: 1.7.7 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-n@17.16.2(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-n@17.18.0(eslint@9.27.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.22.0(jiti@2.4.2)) - get-tsconfig: 4.10.0 + eslint: 9.27.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.27.0(jiti@2.4.2)) + get-tsconfig: 4.10.1 globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 - eslint-plugin-perfectionist@4.10.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + eslint-plugin-perfectionist@4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -1919,10 +2014,10 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.27.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) - eslint: 9.22.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.27.0(jiti@2.4.2) eslint-scope@8.3.0: dependencies: @@ -1933,25 +2028,25 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.22.0(jiti@2.4.2): + eslint@9.27.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/config-helpers': 0.1.0 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.22.0 - '@eslint/plugin-kit': 0.2.7 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.2 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.27.0 + '@eslint/plugin-kit': 0.3.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.6 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.1 escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -2011,7 +2106,7 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.3(picomatch@4.0.2): + fdir@6.4.5(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -2044,7 +2139,7 @@ snapshots: get-caller-file@2.0.5: {} - get-tsconfig@4.10.0: + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -2069,7 +2164,7 @@ snapshots: globals@15.15.0: {} - globals@16.0.0: {} + globals@16.2.0: {} graceful-fs@4.2.11: {} @@ -2085,6 +2180,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.4: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -2162,7 +2259,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 make-error@1.3.6: {} @@ -2173,6 +2270,10 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -2191,7 +2292,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.4: {} + nanoid@5.1.5: {} nanospinner@1.2.2: dependencies: @@ -2199,6 +2300,8 @@ snapshots: nanospy@1.0.0: {} + napi-postinstall@0.2.4: {} + natural-compare@1.4.0: {} natural-orderby@5.0.0: {} @@ -2271,20 +2374,6 @@ snapshots: reusify@1.1.0: {} - rspack-resolver@1.2.1: - optionalDependencies: - '@unrs/rspack-resolver-binding-darwin-arm64': 1.2.1 - '@unrs/rspack-resolver-binding-darwin-x64': 1.2.1 - '@unrs/rspack-resolver-binding-freebsd-x64': 1.2.1 - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.2.1 - '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.2.1 - '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.2.1 - '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.2.1 - '@unrs/rspack-resolver-binding-linux-x64-musl': 1.2.1 - '@unrs/rspack-resolver-binding-wasm32-wasi': 1.2.1 - '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.2.1 - '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.2.1 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -2293,7 +2382,7 @@ snapshots: dependencies: mri: 1.2.0 - semver@7.7.1: {} + semver@7.7.2: {} shebang-command@2.0.0: dependencies: @@ -2303,7 +2392,7 @@ snapshots: signal-exit@4.1.0: {} - simple-git-hooks@2.11.1: {} + simple-git-hooks@2.13.0: {} size-limit@11.2.0: dependencies: @@ -2313,7 +2402,7 @@ snapshots: lilconfig: 3.1.3 nanospinner: 1.2.2 picocolors: 1.1.1 - tinyglobby: 0.2.12 + tinyglobby: 0.2.14 source-map-js@1.2.1: {} @@ -2349,7 +2438,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tapable@2.2.1: {} + tapable@2.2.2: {} test-exclude@7.0.1: dependencies: @@ -2357,34 +2446,34 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - tinyglobby@0.2.12: + tinyglobby@0.2.14: dependencies: - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.5(picomatch@4.0.2) picomatch: 4.0.2 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - ts-api-utils@2.0.1(typescript@5.8.2): + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: - typescript: 5.8.2 + typescript: 5.8.3 - ts-node@10.9.2(@types/node@22.13.10)(typescript@5.8.2): + ts-node@10.9.2(@types/node@22.15.24)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.10 + '@types/node': 22.15.24 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.2 + typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -2394,24 +2483,46 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + typescript-eslint@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.8.2 + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.27.0(jiti@2.4.2) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - typescript@5.8.2: {} + typescript@5.8.3: {} - undici-types@6.20.0: {} + undici-types@6.21.0: {} unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 + unrs-resolver@1.7.7: + dependencies: + napi-postinstall: 0.2.4 + optionalDependencies: + '@unrs/resolver-binding-darwin-arm64': 1.7.7 + '@unrs/resolver-binding-darwin-x64': 1.7.7 + '@unrs/resolver-binding-freebsd-x64': 1.7.7 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.7 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.7 + '@unrs/resolver-binding-linux-arm64-gnu': 1.7.7 + '@unrs/resolver-binding-linux-arm64-musl': 1.7.7 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.7 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.7 + '@unrs/resolver-binding-linux-riscv64-musl': 1.7.7 + '@unrs/resolver-binding-linux-s390x-gnu': 1.7.7 + '@unrs/resolver-binding-linux-x64-gnu': 1.7.7 + '@unrs/resolver-binding-linux-x64-musl': 1.7.7 + '@unrs/resolver-binding-wasm32-wasi': 1.7.7 + '@unrs/resolver-binding-win32-arm64-msvc': 1.7.7 + '@unrs/resolver-binding-win32-ia32-msvc': 1.7.7 + '@unrs/resolver-binding-win32-x64-msvc': 1.7.7 + uri-js@4.4.1: dependencies: punycode: 2.3.1 diff --git a/test/no-work-result.test.ts b/test/no-work-result.test.ts index b83c18c45..4fa71796a 100644 --- a/test/no-work-result.test.ts +++ b/test/no-work-result.test.ts @@ -1,5 +1,3 @@ -import postcss = require('../lib/postcss.js') -import stringify = require('../lib/stringify.js') import { spy } from 'nanospy' import { SourceMapGenerator } from 'source-map-js' import { test } from 'uvu' @@ -7,7 +5,9 @@ import { equal, instance, is, not, throws, type } from 'uvu/assert' import NoWorkResult from '../lib/no-work-result.js' import parse from '../lib/parse.js' +import postcss = require('../lib/postcss.js') import Processor from '../lib/processor.js' +import stringify = require('../lib/stringify.js') let processor = new Processor() diff --git a/test/postcss.test.ts b/test/postcss.test.ts index 7c3325197..fddd982fe 100755 --- a/test/postcss.test.ts +++ b/test/postcss.test.ts @@ -1,8 +1,8 @@ -import postcss = require('../lib/postcss.js') import { restoreAll, spyOn } from 'nanospy' import { test } from 'uvu' import { equal, is, match, throws, type } from 'uvu/assert' +import postcss = require('../lib/postcss.js') import postcssDefault, { PluginCreator, Root } from '../lib/postcss.js' import Processor from '../lib/processor.js' diff --git a/tsconfig.json b/tsconfig.json index 8341d6de1..808df78e8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,5 +5,6 @@ "module": "commonjs", "strict": true, "noEmit": true - } + }, + "exclude": ["**/errors.ts"] } From 6cb4a6673fb6d8b23eb1ebe66a22b6267ab141de Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 29 May 2025 14:51:30 +0900 Subject: [PATCH 2891/3047] Release 8.5.4 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad10ecf7e..3500c2e5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.4 +* Fixed Parcel compatibility issue (by @git-sumitchaudhary). + ## 8.5.3 * Added more details to `Unknown word` error (by @hiepxanh). * Fixed types (by @romainmenke). diff --git a/lib/processor.js b/lib/processor.js index c38be5326..68eb1f2c4 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.3' + this.version = '8.5.4' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 9e9f8cf53..312b5b341 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.3", + "version": "8.5.4", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 4d720bd01adec2e8645bf91e725825bebb712e1b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 11 Jun 2025 15:23:27 +0000 Subject: [PATCH 2892/3047] Update EM text --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 71907544d..afc754afc 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some o --- -  Made at Evil Martians, product consulting for developer tools. +  Built by + Evil Martians, go-to agency for developer tools. --- From 2e3450c55f41e378e086f4f189e5243a573c3390 Mon Sep 17 00:00:00 2001 From: JounQin Date: Thu, 12 Jun 2025 01:03:21 +0800 Subject: [PATCH 2893/3047] refactor: `import` should be listed before `require` (#2052) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 312b5b341..3ef42ba88 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ }, "exports": { ".": { - "require": "./lib/postcss.js", - "import": "./lib/postcss.mjs" + "import": "./lib/postcss.mjs", + "require": "./lib/postcss.js" }, "./lib/at-rule": "./lib/at-rule.js", "./lib/comment": "./lib/comment.js", From c5523fbec5f32622e77103c643e1258007c2609d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 11 Jun 2025 17:08:19 +0000 Subject: [PATCH 2894/3047] Update dependencies --- package.json | 4 +- pnpm-lock.yaml | 562 ++++++++++++++++++++++++++----------------------- 2 files changed, 301 insertions(+), 265 deletions(-) diff --git a/package.json b/package.json index 3ef42ba88..346459c61 100644 --- a/package.json +++ b/package.json @@ -92,12 +92,12 @@ "devDependencies": { "@logux/eslint-config": "^55.2.1", "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^22.15.24", + "@types/node": "^24.0.0", "c8": "^10.1.3", "check-dts": "^0.9.0", "clean-publish": "^5.2.1", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.27.0", + "eslint": "^9.28.0", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4a009924..3320cdfde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,13 @@ importers: devDependencies: '@logux/eslint-config': specifier: ^55.2.1 - version: 55.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + version: 55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^22.15.24 - version: 22.15.24 + specifier: ^24.0.0 + version: 24.0.0 c8: specifier: ^10.1.3 version: 10.1.3 @@ -40,8 +40,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.27.0 - version: 9.27.0(jiti@2.4.2) + specifier: ^9.28.0 + version: 9.28.0(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -62,7 +62,7 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.15.24)(typescript@5.8.3) + version: 10.9.2(@types/node@24.0.0)(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -265,8 +265,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.27.0': - resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + '@eslint/js@9.28.0': + resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -334,8 +334,8 @@ packages: svelte-eslint-parser: optional: true - '@napi-rs/wasm-runtime@0.2.10': - resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} + '@napi-rs/wasm-runtime@0.2.11': + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -385,8 +385,8 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -394,151 +394,153 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.15.24': - resolution: {integrity: sha512-w9CZGm9RDjzTh/D+hFwlBJ3ziUaVw7oufKA3vOFSOZlzmW9AkZnfjPb+DLnrV6qtgL/LNmP0/2zBNCFHL3F0ng==} + '@types/node@24.0.0': + resolution: {integrity: sha512-yZQa2zm87aRVcqDyH5+4Hv9KYgSdgwX1rFnGvpbzMaC7YAljmhBET93TPiTd3ObwTL+gSpIzPKg5BqVxdCvxKg==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.33.0': - resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.33.0 + '@typescript-eslint/parser': ^8.34.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.33.0': - resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.33.0': - resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} + '@typescript-eslint/project-service@8.34.0': + resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.33.0': - resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} + '@typescript-eslint/scope-manager@8.34.0': + resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.33.0': - resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} + '@typescript-eslint/tsconfig-utils@8.34.0': + resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.33.0': - resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.33.0': - resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} + '@typescript-eslint/types@8.34.0': + resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.33.0': - resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} + '@typescript-eslint/typescript-estree@8.34.0': + resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.0': - resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} + '@typescript-eslint/utils@8.34.0': + resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.33.0': - resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} + '@typescript-eslint/visitor-keys@8.34.0': + resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unrs/resolver-binding-darwin-arm64@1.7.7': - resolution: {integrity: sha512-3sRvuOUJPnr55HM6SXQhYiWB4QZtVDFtJT7xu1asdXxuR4C3wHX6ORp3byP3DIMwOFbNrcPSPcDzvdikS/pMqA==} + '@unrs/resolver-binding-darwin-arm64@1.8.1': + resolution: {integrity: sha512-OKuBTQdOb4Kjbe+y4KgbRhn+nu47hNyNU2K3qjD+SA/bnQouvZnRzEiR85xZAIyZ6z1C+O1Zg1dK4hGH1RPdYA==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.7.7': - resolution: {integrity: sha512-Xh3eNqnJOuIbaGv5QynH12Vf9mRPdHkiJlbisAUt7oywCwAcLTz+g9KP4Bww9m9b2//+xrew52dIZa56VRrl+w==} + '@unrs/resolver-binding-darwin-x64@1.8.1': + resolution: {integrity: sha512-inaphBsOqqzauNvx6kSHrgqDLShicPg3+fInBcEdD7Ut8sUUbm2z19LL+S9ccGpHnYoNiJ+Qrf7/B8hRsCUvBw==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.7.7': - resolution: {integrity: sha512-FC5vAxd0GD4CqPDuSooesyXTiCJY9V7ow72u8sIXdf3v8NWj6ceNG9cPE0GFUQUk++tqf+Yp01W79BBvQ31lEA==} + '@unrs/resolver-binding-freebsd-x64@1.8.1': + resolution: {integrity: sha512-LkGw7jDoLKEZO6yYwTKUlrboD6Qmy9Jkq7ZDPlJReq/FnCnNh0k1Z1hjtevpqPCMLz9hGW0ITMb04jdDZ796Cg==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.7': - resolution: {integrity: sha512-oSNFKV3j/VeCkl1cQP6KpDevAWtEfEIA6nkEN56etQgG6gLSEndJahvV1RDRKE18VSgKkXtYtFr3WM9L3Zlo1g==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.8.1': + resolution: {integrity: sha512-6vhu22scv64dynXTVmeClenn3OPI8cwdhtydLFDkoW4UJzNwcgJ5mVtzbtikDGM9PmIQa+ekpH6tdvKt0ToK3A==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.7': - resolution: {integrity: sha512-bqP4jd4luBxEKOXjo4zGcmEtJephzA/AqtXf1LcO7YwtesDgPMAedJNZt2DJIgGc4JT99Prx5JLkPzoGYQZJ/w==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.8.1': + resolution: {integrity: sha512-SrQ286JVFWlnZSm1/TJwulTgJVOdb1x8BWW2ecOK0Sx+acdRpoMf4WSxH+/+R4LyE/YYyekcEtUrPhSEgJ748g==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.7.7': - resolution: {integrity: sha512-dKA6SesiVtGYADa8rJrWraoyfyna5I68hJI0Ge+y2bEVTKh2ObghwaLcgv0OR0Fo4XimpioB6FpvGezrvMJX4g==} + '@unrs/resolver-binding-linux-arm64-gnu@1.8.1': + resolution: {integrity: sha512-I2s4L27V+2kAee43x/qAkFjTZJgmDvSd9vtnyINOdBEdz5+QqiG6ccd5pgOw06MsUwygkrhB4jOe4ZN4SA6IwA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.7.7': - resolution: {integrity: sha512-m6t6ylCxusfcXTszyxtkel1CRZZrB7LAd/TP48iggmNdE7+a1YByLr226TCBz0rJz7oxNnwUVw6ICHyV7zwVLA==} + '@unrs/resolver-binding-linux-arm64-musl@1.8.1': + resolution: {integrity: sha512-Drq80e/EQbdSVyJpheF65qVmfYy8OaDdQqoWV+09tZHz/P1SdSulvVtgtYrk216D++9hbx3c1bwVXwR5PZ2TzA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.7': - resolution: {integrity: sha512-Km4qNXKDHIFbFXhETEoRCtIIsyUldSZ3KU7zr/Id+MvBMyTsXZ5AMCVnbKEcoaLf7AjBnwbEFHnqGUOXKnS88g==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.8.1': + resolution: {integrity: sha512-EninHQHw8Zkq8K5qB6KWNDqjCtUzTDsCRQ6LzAtQWIxic/VQxR5Kl36V/GCXNvQaR7W0AB5gvJLyQtJwkf+AJA==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.7': - resolution: {integrity: sha512-pDBwW3n2RUD7VN1OSh1/MM/yYA7QyrbonNZcFhW79lpZFIekzIjYL83V2rZ1Lo0KYaI4iejwQTFOZoT7fRwPjw==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.8.1': + resolution: {integrity: sha512-s7Xu5PS4vWhsb5ZFAi+UBguTn0g8qDhN+BbB1t9APX23AdAI7TS4DRrJV5dBVdQ6a8MiergGr1Cjb0Q1V/sW8w==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.7.7': - resolution: {integrity: sha512-0IQeRiDD8OHpj/ekf36ePRqd7i7X4k/SCcv9+XBJ5VNHKSuStsMRTVhMstRS3JSU7/c0R7OlZmj96vtpTSSazg==} + '@unrs/resolver-binding-linux-riscv64-musl@1.8.1': + resolution: {integrity: sha512-Ca+bVzOJtgQ3OrMkRSeDLYWJIjRmEylDHSZuSKqqPmZI2vgX6yZgzrKY28I6hjjG9idlW4DcJzLv/TjFXev+4Q==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.7.7': - resolution: {integrity: sha512-d0LCgzLsdsqYz4fxvBSZyo6TZZab6oUvGmfTtdwk/P9KCrpge8swsLvzK2cJVLHMSreyV6iknVBlBFNIkd9tgQ==} + '@unrs/resolver-binding-linux-s390x-gnu@1.8.1': + resolution: {integrity: sha512-ut1vBBFs6AC5EcerH8HorcmS/9wAy6iI1tfpzT7jy+SKnMgmPth/psc3W5V04njble7cyLPjFHwYJTlxmozQ/g==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.7.7': - resolution: {integrity: sha512-cbspezCWjpslXCnij/4cWXoJj9l39mqL09/QltGqS8yfNmOk+U3E4IQiiqaNTeg+c9VJFCSx10MvBx49usUMFg==} + '@unrs/resolver-binding-linux-x64-gnu@1.8.1': + resolution: {integrity: sha512-w5agLxesvrYKrCOlAsUkwRDogjnyRBi4/vEaujZRkXbeRCupJ9dFD0qUhLXZyIed+GSzJJIsJocUZIVzcTHYXQ==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.7.7': - resolution: {integrity: sha512-Q04EorD1iwqNs9x/OywI/DPUUGvWmgx5zQ/TnD0eFokDsDMtgsaRgcuNA3dc84F6lZC08dqmj1zdXddPfkC0YQ==} + '@unrs/resolver-binding-linux-x64-musl@1.8.1': + resolution: {integrity: sha512-vk5htmWYCLRpfjn2wmCUne6pLvlcYUFDAAut4g02/2iWeGeZO/3GmSLmiZ9fcn9oH0FUzgetg0/zSo8oZ7liIg==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.7.7': - resolution: {integrity: sha512-N70EZMr7LtYGkfqKHFSVAjJ/ZkNaWg+7qa4irCr91PHbeo9K0WtLXFcAqLoMXy9AU1HU8wXszu2QPFnM8Q9MMQ==} + '@unrs/resolver-binding-wasm32-wasi@1.8.1': + resolution: {integrity: sha512-RcsLTcrqDT5XW/TnhhIeM7lVLgUv/gvPEC4WaH+OhkLCkRfH6EEuhprwrcp1WhdlrtL/U5FkHh4NtFLnMXoeXA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.7.7': - resolution: {integrity: sha512-jL52Di0GqihzIknxMpEFh+BKS5V99Suuai3XlrMwOg8NPM1aQYEHIJID3Nua0+MomcAmEX+Zj4db8yPjTYSljA==} + '@unrs/resolver-binding-win32-arm64-msvc@1.8.1': + resolution: {integrity: sha512-XbSRLZY/gEi5weYv/aCkiUiSWvrNKkvec3m6/bDypDI+ZACwMllPH7smeOW/fdnIGhf9YtPATNliJHAS2GyMUA==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.7.7': - resolution: {integrity: sha512-ZFiuMqGqh0oeq3aaMGKI8rZ2A3+2H8RTWTjnZkRCC5L3aE0pqhHB2q/7BGU7lEvWVv4mpvV/HvGBDPdyf6fB5w==} + '@unrs/resolver-binding-win32-ia32-msvc@1.8.1': + resolution: {integrity: sha512-SbCJMKOmqOsIBCklT5c+t0DjVbOkseE7ZN0OtMxRnraLKdj1AAv7d3cjJMYkPd9ZGKosHoMXo66gBs02YM8KeA==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.7.7': - resolution: {integrity: sha512-jHIsTNlnZrY3uPUJ12sSy6t20Li6FJkOlI/eoTpO8cgQGh/EfbEwdiJto9V85RYR05GpPgdnClfT+loU2WpoNA==} + '@unrs/resolver-binding-win32-x64-msvc@1.8.1': + resolution: {integrity: sha512-DdHqo7XbeUa/ZOcxq+q5iuO4sSxhwX9HR1JPL0JMOKEzgkIO4OKF2TPjqmo6UCCGZUXIMwrAycFXj/40sICagw==} cpu: [x64] os: [win32] @@ -551,8 +553,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -584,11 +586,11 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -727,8 +729,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-import-context@0.1.6: - resolution: {integrity: sha512-/e2ZNPDLCrU8niIy0pddcvXuoO2YrKjf3NAIX+60mHJBT4yv7mqCqvVdyCW2E720e25e4S/1OSVef4U6efGLFg==} + eslint-import-context@0.1.8: + resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: unrs-resolver: ^1.0.0 @@ -745,20 +747,27 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.13.3: - resolution: {integrity: sha512-CDewJDEeYQhm94KGCDYiuwU1SdaWc/vh+SziSKkF7kichAqAFnQYtSYUvSwSBbiBjYLxV5uUxocxxQobRI9YXA==} + eslint-plugin-import-x@4.15.1: + resolution: {integrity: sha512-JfVpNg1qMkPD66iaSgmMoSYeUCGS8UFSm3GwHV0IbuV3Knar/SyK5qqCct9+AxoMIzaM+KSO7KK5pOeOkC/3GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + '@typescript-eslint/utils': ^8.0.0 eslint: ^8.57.0 || ^9.0.0 + eslint-import-resolver-node: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + eslint-import-resolver-node: + optional: true - eslint-plugin-n@17.18.0: - resolution: {integrity: sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==} + eslint-plugin-n@17.19.0: + resolution: {integrity: sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@4.13.0: - resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==} + eslint-plugin-perfectionist@4.14.0: + resolution: {integrity: sha512-BkhiOqzdum8vQSFgj1/q5+6UUWPMn4GELdxuX7uIsGegmAeH/+LnWsiVxgMrxalD0p68sYfMeKaHF1NfrpI/mg==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: eslint: '>=8.45.0' @@ -773,20 +782,20 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + eslint@9.28.0: + resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -795,8 +804,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.6.0: @@ -831,8 +840,8 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.5: - resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -917,8 +926,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.4: - resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} import-fresh@3.3.1: @@ -1206,8 +1215,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - stable-hash@0.0.5: - resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + stable-hash-x@0.1.1: + resolution: {integrity: sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==} + engines: {node: '>=12.0.0'} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -1259,6 +1269,11 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-declaration-location@1.0.7: + resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} + peerDependencies: + typescript: '>=4.0.0' + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -1280,8 +1295,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.33.0: - resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==} + typescript-eslint@8.34.0: + resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1292,14 +1307,14 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unrs-resolver@1.7.7: - resolution: {integrity: sha512-KAJIrBeQXgI6futKlN0aZOG1aViGX1X37EFUYqcBWTPVatjeqoydHITsNuxUe6CRo/UTdwMvteSf4A7R4cAlxA==} + unrs-resolver@1.8.1: + resolution: {integrity: sha512-M5++xH5Tu/m3NNAc0+dBHidXfF6bTC08mfhQ3AB5UTonEzQSH9ASC/a7EbZN3WU5m0OWMTvf12GHVJZ3uUmPtA==} uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1461,9 +1476,9 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))': dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -1486,7 +1501,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.4.1 - espree: 10.3.0 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 @@ -1496,7 +1511,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.27.0': {} + '@eslint/js@9.28.0': {} '@eslint/object-schema@2.1.6': {} @@ -1543,22 +1558,24 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@55.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@logux/eslint-config@55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint/eslintrc': 3.3.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-import-x: 4.13.3(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-n: 17.18.0(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-perfectionist: 4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) + eslint-plugin-import-x: 4.15.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-n: 17.19.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-perfectionist: 4.14.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.27.0(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.28.0(jiti@2.4.2)) globals: 16.2.0 - typescript-eslint: 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + typescript-eslint: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: + - '@typescript-eslint/utils' + - eslint-import-resolver-node - supports-color - typescript - '@napi-rs/wasm-runtime@0.2.10': + '@napi-rs/wasm-runtime@0.2.11': dependencies: '@emnapi/core': 1.4.3 '@emnapi/runtime': 1.4.3 @@ -1609,84 +1626,84 @@ snapshots: tslib: 2.8.1 optional: true - '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} '@types/istanbul-lib-coverage@2.0.6': {} '@types/json-schema@7.0.15': {} - '@types/node@22.15.24': + '@types/node@24.0.0': dependencies: - undici-types: 6.21.0 + undici-types: 7.8.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.0 - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 7.0.4 + ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 debug: 4.4.1 + typescript: 5.8.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/scope-manager@8.33.0': + '@typescript-eslint/scope-manager@8.34.0': dependencies: - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 - '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.33.0': {} + '@typescript-eslint/types@8.34.0': {} - '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -1697,84 +1714,84 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.33.0': + '@typescript-eslint/visitor-keys@8.34.0': dependencies: - '@typescript-eslint/types': 8.33.0 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.34.0 + eslint-visitor-keys: 4.2.1 - '@unrs/resolver-binding-darwin-arm64@1.7.7': + '@unrs/resolver-binding-darwin-arm64@1.8.1': optional: true - '@unrs/resolver-binding-darwin-x64@1.7.7': + '@unrs/resolver-binding-darwin-x64@1.8.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.7.7': + '@unrs/resolver-binding-freebsd-x64@1.8.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.7': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.8.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.7': + '@unrs/resolver-binding-linux-arm-musleabihf@1.8.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.7.7': + '@unrs/resolver-binding-linux-arm64-gnu@1.8.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.7.7': + '@unrs/resolver-binding-linux-arm64-musl@1.8.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.7': + '@unrs/resolver-binding-linux-ppc64-gnu@1.8.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.7': + '@unrs/resolver-binding-linux-riscv64-gnu@1.8.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.7.7': + '@unrs/resolver-binding-linux-riscv64-musl@1.8.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.7.7': + '@unrs/resolver-binding-linux-s390x-gnu@1.8.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.7.7': + '@unrs/resolver-binding-linux-x64-gnu@1.8.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.7.7': + '@unrs/resolver-binding-linux-x64-musl@1.8.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.7.7': + '@unrs/resolver-binding-wasm32-wasi@1.8.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.10 + '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.7.7': + '@unrs/resolver-binding-win32-arm64-msvc@1.8.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.7.7': + '@unrs/resolver-binding-win32-ia32-msvc@1.8.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.7.7': + '@unrs/resolver-binding-win32-x64-msvc@1.8.1': optional: true - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 acorn-walk@8.3.4: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 - acorn@8.14.1: {} + acorn@8.15.0: {} ajv@6.12.6: dependencies: @@ -1799,12 +1816,12 @@ snapshots: balanced-match@1.0.2: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -1887,6 +1904,7 @@ snapshots: debug@3.2.7: dependencies: ms: 2.1.3 + optional: true debug@4.4.1: dependencies: @@ -1943,17 +1961,17 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.27.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) semver: 7.7.2 - eslint-import-context@0.1.6(unrs-resolver@1.7.7): + eslint-import-context@0.1.8(unrs-resolver@1.8.1): dependencies: get-tsconfig: 4.10.1 - stable-hash: 0.0.5 + stable-hash-x: 0.1.1 optionalDependencies: - unrs-resolver: 1.7.7 + unrs-resolver: 1.8.1 eslint-import-resolver-node@0.3.9: dependencies: @@ -1962,49 +1980,55 @@ snapshots: resolve: 1.22.10 transitivePeerDependencies: - supports-color + optional: true - eslint-plugin-es-x@7.8.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.28.0(jiti@2.4.2)) - eslint-plugin-import-x@4.13.3(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-import-x@4.15.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 comment-parser: 1.4.1 debug: 4.4.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-import-context: 0.1.6(unrs-resolver@1.7.7) - eslint-import-resolver-node: 0.3.9 + eslint: 9.28.0(jiti@2.4.2) + eslint-import-context: 0.1.8(unrs-resolver@1.8.1) is-glob: 4.0.3 minimatch: 10.0.1 semver: 7.7.2 - stable-hash: 0.0.5 - tslib: 2.8.1 - unrs-resolver: 1.7.7 + stable-hash-x: 0.1.1 + unrs-resolver: 1.8.1 + optionalDependencies: + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - - typescript - eslint-plugin-n@17.18.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-n@17.19.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) enhanced-resolve: 5.18.1 - eslint: 9.27.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.27.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.28.0(jiti@2.4.2)) get-tsconfig: 4.10.1 globals: 15.15.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.2 + ts-declaration-location: 1.0.7(typescript@5.8.3) + transitivePeerDependencies: + - supports-color + - typescript - eslint-plugin-perfectionist@4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-perfectionist@4.14.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -2014,43 +2038,43 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.28.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - eslint: 9.27.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + eslint: 9.28.0(jiti@2.4.2) - eslint-scope@8.3.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} - eslint@9.27.0(jiti@2.4.2): + eslint@9.28.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.2 '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.27.0 + '@eslint/js': 9.28.0 '@eslint/plugin-kit': 0.3.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -2070,11 +2094,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esquery@1.6.0: dependencies: @@ -2106,7 +2130,7 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.5(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -2135,7 +2159,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - function-bind@1.1.2: {} + function-bind@1.1.2: + optional: true get-caller-file@2.0.5: {} @@ -2175,12 +2200,13 @@ snapshots: hasown@2.0.2: dependencies: function-bind: 1.1.2 + optional: true html-escaper@2.0.2: {} ignore@5.3.2: {} - ignore@7.0.4: {} + ignore@7.0.5: {} import-fresh@3.3.1: dependencies: @@ -2192,6 +2218,7 @@ snapshots: is-core-module@2.16.1: dependencies: hasown: 2.0.2 + optional: true is-extglob@2.1.1: {} @@ -2272,15 +2299,15 @@ snapshots: minimatch@10.0.1: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minipass@7.1.2: {} @@ -2333,7 +2360,8 @@ snapshots: path-key@3.1.1: {} - path-parse@1.0.7: {} + path-parse@1.0.7: + optional: true path-scurry@1.11.1: dependencies: @@ -2371,6 +2399,7 @@ snapshots: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + optional: true reusify@1.1.0: {} @@ -2408,7 +2437,7 @@ snapshots: source-map@0.6.1: {} - stable-hash@0.0.5: {} + stable-hash-x@0.1.1: {} string-width@4.2.3: dependencies: @@ -2436,7 +2465,8 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} + supports-preserve-symlinks-flag@1.0.0: + optional: true tapable@2.2.2: {} @@ -2448,7 +2478,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.5(picomatch@4.0.2) + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 to-regex-range@5.0.1: @@ -2459,15 +2489,20 @@ snapshots: dependencies: typescript: 5.8.3 - ts-node@10.9.2(@types/node@22.15.24)(typescript@5.8.3): + ts-declaration-location@1.0.7(typescript@5.8.3): + dependencies: + picomatch: 4.0.2 + typescript: 5.8.3 + + ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.24 - acorn: 8.14.1 + '@types/node': 24.0.0 + acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -2477,51 +2512,52 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tslib@2.8.1: {} + tslib@2.8.1: + optional: true type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color typescript@5.8.3: {} - undici-types@6.21.0: {} + undici-types@7.8.0: {} unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unrs-resolver@1.7.7: + unrs-resolver@1.8.1: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.7.7 - '@unrs/resolver-binding-darwin-x64': 1.7.7 - '@unrs/resolver-binding-freebsd-x64': 1.7.7 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.7 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.7 - '@unrs/resolver-binding-linux-arm64-gnu': 1.7.7 - '@unrs/resolver-binding-linux-arm64-musl': 1.7.7 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.7 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.7 - '@unrs/resolver-binding-linux-riscv64-musl': 1.7.7 - '@unrs/resolver-binding-linux-s390x-gnu': 1.7.7 - '@unrs/resolver-binding-linux-x64-gnu': 1.7.7 - '@unrs/resolver-binding-linux-x64-musl': 1.7.7 - '@unrs/resolver-binding-wasm32-wasi': 1.7.7 - '@unrs/resolver-binding-win32-arm64-msvc': 1.7.7 - '@unrs/resolver-binding-win32-ia32-msvc': 1.7.7 - '@unrs/resolver-binding-win32-x64-msvc': 1.7.7 + '@unrs/resolver-binding-darwin-arm64': 1.8.1 + '@unrs/resolver-binding-darwin-x64': 1.8.1 + '@unrs/resolver-binding-freebsd-x64': 1.8.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.8.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.8.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.8.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.8.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.8.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-x64-musl': 1.8.1 + '@unrs/resolver-binding-wasm32-wasi': 1.8.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.8.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.8.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.8.1 uri-js@4.4.1: dependencies: From c18159719e4a6d65ad7085edf1dc42e07814f683 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 11 Jun 2025 19:10:55 +0200 Subject: [PATCH 2895/3047] Release 8.5.5 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3500c2e5a..61b1a5770 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.5 +* Fixed `package.json`→`exports` compatibility with some tools (by @JounQin). + ## 8.5.4 * Fixed Parcel compatibility issue (by @git-sumitchaudhary). diff --git a/lib/processor.js b/lib/processor.js index 68eb1f2c4..df83ba04a 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.4' + this.version = '8.5.5' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 346459c61..66155a45d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.4", + "version": "8.5.5", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From ecd20eb7f9587d63e3f3348b768aec0e9fb000d3 Mon Sep 17 00:00:00 2001 From: "Carlos (Goodwine)" <2022649+Goodwine@users.noreply.github.com> Date: Mon, 16 Jun 2025 06:55:49 -0700 Subject: [PATCH 2896/3047] Fix ContainerWithChildren to allow discriminating the node type by comparing its type property (#2049) * Fix ContainerWithChildren to allow discriminating the node type by comparing its type property * add more description to the test * Revert version changes * move tests to test/types.ts --- lib/container.d.ts | 11 +++++++---- test/types.ts | 31 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/lib/container.d.ts b/lib/container.d.ts index 9569f343b..c2b310b6b 100644 --- a/lib/container.d.ts +++ b/lib/container.d.ts @@ -2,14 +2,17 @@ import AtRule from './at-rule.js' import Comment from './comment.js' import Declaration from './declaration.js' import Node, { ChildNode, ChildProps, NodeProps } from './node.js' +import { Root } from './postcss.js' import Rule from './rule.js' declare namespace Container { - export class ContainerWithChildren< - Child extends Node = ChildNode - > extends Container_ { + export type ContainerWithChildren = { nodes: Child[] - } + } & ( + | AtRule + | Root + | Rule + ) export interface ValueOptions { /** diff --git a/test/types.ts b/test/types.ts index 316be4ee0..4f7b861d8 100644 --- a/test/types.ts +++ b/test/types.ts @@ -1,4 +1,5 @@ import postcss, { Document, PluginCreator } from '../lib/postcss.js' +import { RootRaws } from '../lib/root.js' const plugin: PluginCreator = prop => { return { @@ -30,4 +31,34 @@ function parseMarkdown(): Document { let doc = postcss().process('a{}', { parser: parseMarkdown }).root console.log(doc.toString()) +function parentCanNarrowType(): never | void { + let atRule = postcss.parse('@a{b{}}').first + if (atRule?.type !== 'atrule') return + let rule = atRule.first + if (rule?.type !== 'rule') return + let parent = rule.parent + switch (parent?.type) { + case undefined: + console.log('ok') + break + case 'atrule': + console.log(parent.params) + break + case 'root': + { + let raws: RootRaws = parent.raws + console.log(raws) + } + break + case 'rule': + console.log(rule.selector) + break + default: { + let exhaustiveCheck: never = parent + return exhaustiveCheck + } + } +} +parentCanNarrowType() + export default plugin From 65ffc55117bf4289b1f977986ed76fad402641b1 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 16 Jun 2025 13:56:25 +0000 Subject: [PATCH 2897/3047] Update dependencies --- package.json | 6 +- pnpm-lock.yaml | 376 +++++++++++++++++++++++++++---------------------- 2 files changed, 211 insertions(+), 171 deletions(-) diff --git a/package.json b/package.json index 66155a45d..d0e20b54e 100644 --- a/package.json +++ b/package.json @@ -92,12 +92,12 @@ "devDependencies": { "@logux/eslint-config": "^55.2.1", "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^24.0.0", + "@types/node": "^24.0.3", "c8": "^10.1.3", "check-dts": "^0.9.0", - "clean-publish": "^5.2.1", + "clean-publish": "^5.2.2", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.28.0", + "eslint": "^9.29.0", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3320cdfde..541fab0f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,13 @@ importers: devDependencies: '@logux/eslint-config': specifier: ^55.2.1 - version: 55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + version: 55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^24.0.0 - version: 24.0.0 + specifier: ^24.0.3 + version: 24.0.3 c8: specifier: ^10.1.3 version: 10.1.3 @@ -34,14 +34,14 @@ importers: specifier: ^0.9.0 version: 0.9.0(typescript@5.8.3) clean-publish: - specifier: ^5.2.1 - version: 5.2.1 + specifier: ^5.2.2 + version: 5.2.2 concat-with-sourcemaps: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.28.0 - version: 9.28.0(jiti@2.4.2) + specifier: ^9.29.0 + version: 9.29.0(jiti@2.4.2) nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -62,7 +62,7 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.0.0)(typescript@5.8.3) + version: 10.9.2(@types/node@24.0.3)(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -249,32 +249,36 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} + '@eslint/config-array@0.20.1': + resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.2': - resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} + '@eslint/config-helpers@0.2.3': + resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.14.0': resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.15.0': + resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.28.0': - resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} + '@eslint/js@9.29.0': + resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.1': - resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + '@eslint/plugin-kit@0.3.2': + resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -297,6 +301,14 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -394,8 +406,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@24.0.0': - resolution: {integrity: sha512-yZQa2zm87aRVcqDyH5+4Hv9KYgSdgwX1rFnGvpbzMaC7YAljmhBET93TPiTd3ObwTL+gSpIzPKg5BqVxdCvxKg==} + '@types/node@24.0.3': + resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -459,88 +471,98 @@ packages: resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unrs/resolver-binding-darwin-arm64@1.8.1': - resolution: {integrity: sha512-OKuBTQdOb4Kjbe+y4KgbRhn+nu47hNyNU2K3qjD+SA/bnQouvZnRzEiR85xZAIyZ6z1C+O1Zg1dK4hGH1RPdYA==} + '@unrs/resolver-binding-android-arm-eabi@1.9.0': + resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.9.0': + resolution: {integrity: sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.9.0': + resolution: {integrity: sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.8.1': - resolution: {integrity: sha512-inaphBsOqqzauNvx6kSHrgqDLShicPg3+fInBcEdD7Ut8sUUbm2z19LL+S9ccGpHnYoNiJ+Qrf7/B8hRsCUvBw==} + '@unrs/resolver-binding-darwin-x64@1.9.0': + resolution: {integrity: sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.8.1': - resolution: {integrity: sha512-LkGw7jDoLKEZO6yYwTKUlrboD6Qmy9Jkq7ZDPlJReq/FnCnNh0k1Z1hjtevpqPCMLz9hGW0ITMb04jdDZ796Cg==} + '@unrs/resolver-binding-freebsd-x64@1.9.0': + resolution: {integrity: sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.8.1': - resolution: {integrity: sha512-6vhu22scv64dynXTVmeClenn3OPI8cwdhtydLFDkoW4UJzNwcgJ5mVtzbtikDGM9PmIQa+ekpH6tdvKt0ToK3A==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': + resolution: {integrity: sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.8.1': - resolution: {integrity: sha512-SrQ286JVFWlnZSm1/TJwulTgJVOdb1x8BWW2ecOK0Sx+acdRpoMf4WSxH+/+R4LyE/YYyekcEtUrPhSEgJ748g==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': + resolution: {integrity: sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.8.1': - resolution: {integrity: sha512-I2s4L27V+2kAee43x/qAkFjTZJgmDvSd9vtnyINOdBEdz5+QqiG6ccd5pgOw06MsUwygkrhB4jOe4ZN4SA6IwA==} + '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': + resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.8.1': - resolution: {integrity: sha512-Drq80e/EQbdSVyJpheF65qVmfYy8OaDdQqoWV+09tZHz/P1SdSulvVtgtYrk216D++9hbx3c1bwVXwR5PZ2TzA==} + '@unrs/resolver-binding-linux-arm64-musl@1.9.0': + resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.8.1': - resolution: {integrity: sha512-EninHQHw8Zkq8K5qB6KWNDqjCtUzTDsCRQ6LzAtQWIxic/VQxR5Kl36V/GCXNvQaR7W0AB5gvJLyQtJwkf+AJA==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': + resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.8.1': - resolution: {integrity: sha512-s7Xu5PS4vWhsb5ZFAi+UBguTn0g8qDhN+BbB1t9APX23AdAI7TS4DRrJV5dBVdQ6a8MiergGr1Cjb0Q1V/sW8w==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': + resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.8.1': - resolution: {integrity: sha512-Ca+bVzOJtgQ3OrMkRSeDLYWJIjRmEylDHSZuSKqqPmZI2vgX6yZgzrKY28I6hjjG9idlW4DcJzLv/TjFXev+4Q==} + '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': + resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.8.1': - resolution: {integrity: sha512-ut1vBBFs6AC5EcerH8HorcmS/9wAy6iI1tfpzT7jy+SKnMgmPth/psc3W5V04njble7cyLPjFHwYJTlxmozQ/g==} + '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': + resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.8.1': - resolution: {integrity: sha512-w5agLxesvrYKrCOlAsUkwRDogjnyRBi4/vEaujZRkXbeRCupJ9dFD0qUhLXZyIed+GSzJJIsJocUZIVzcTHYXQ==} + '@unrs/resolver-binding-linux-x64-gnu@1.9.0': + resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.8.1': - resolution: {integrity: sha512-vk5htmWYCLRpfjn2wmCUne6pLvlcYUFDAAut4g02/2iWeGeZO/3GmSLmiZ9fcn9oH0FUzgetg0/zSo8oZ7liIg==} + '@unrs/resolver-binding-linux-x64-musl@1.9.0': + resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.8.1': - resolution: {integrity: sha512-RcsLTcrqDT5XW/TnhhIeM7lVLgUv/gvPEC4WaH+OhkLCkRfH6EEuhprwrcp1WhdlrtL/U5FkHh4NtFLnMXoeXA==} + '@unrs/resolver-binding-wasm32-wasi@1.9.0': + resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.8.1': - resolution: {integrity: sha512-XbSRLZY/gEi5weYv/aCkiUiSWvrNKkvec3m6/bDypDI+ZACwMllPH7smeOW/fdnIGhf9YtPATNliJHAS2GyMUA==} + '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': + resolution: {integrity: sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.8.1': - resolution: {integrity: sha512-SbCJMKOmqOsIBCklT5c+t0DjVbOkseE7ZN0OtMxRnraLKdj1AAv7d3cjJMYkPd9ZGKosHoMXo66gBs02YM8KeA==} + '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': + resolution: {integrity: sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.8.1': - resolution: {integrity: sha512-DdHqo7XbeUa/ZOcxq+q5iuO4sSxhwX9HR1JPL0JMOKEzgkIO4OKF2TPjqmo6UCCGZUXIMwrAycFXj/40sICagw==} + '@unrs/resolver-binding-win32-x64-msvc@1.9.0': + resolution: {integrity: sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==} cpu: [x64] os: [win32] @@ -629,8 +651,8 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - clean-publish@5.2.1: - resolution: {integrity: sha512-NbVdbx/1NRxaD7nB7v6cPUGB2oVSV1QPwqswvI3W6Ii2A1gcPw6EnDV+xNcUTz6jc8e0bFr6Q08Mc0kSIc6DqQ==} + clean-publish@5.2.2: + resolution: {integrity: sha512-sqM9uAXG+K7QzEn0Ur00otEHfbQTsyle4enj/388ZZQhG6daXMJ15dfD/ALsFCQCJvMZPxYwDx/QrdcdzWVPyg==} engines: {node: '>= 18.0.0'} hasBin: true @@ -747,8 +769,8 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.15.1: - resolution: {integrity: sha512-JfVpNg1qMkPD66iaSgmMoSYeUCGS8UFSm3GwHV0IbuV3Knar/SyK5qqCct9+AxoMIzaM+KSO7KK5pOeOkC/3GQ==} + eslint-plugin-import-x@4.15.2: + resolution: {integrity: sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/utils': ^8.0.0 @@ -760,8 +782,8 @@ packages: eslint-import-resolver-node: optional: true - eslint-plugin-n@17.19.0: - resolution: {integrity: sha512-qxn1NaDHtizbhVAPpbMT8wWFaLtPnwhfN/e+chdu2i6Vgzmo/tGM62tcJ1Hf7J5Ie4dhse3DOPMmDxduzfifzw==} + eslint-plugin-n@17.20.0: + resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -794,8 +816,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.28.0: - resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} + eslint@9.29.0: + resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1033,8 +1055,8 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} minimatch@3.1.2: @@ -1313,8 +1335,8 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unrs-resolver@1.8.1: - resolution: {integrity: sha512-M5++xH5Tu/m3NNAc0+dBHidXfF6bTC08mfhQ3AB5UTonEzQSH9ASC/a7EbZN3WU5m0OWMTvf12GHVJZ3uUmPtA==} + unrs-resolver@1.9.0: + resolution: {integrity: sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==} uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1476,14 +1498,14 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.4.2))': dependencies: - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.0': + '@eslint/config-array@0.20.1': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.1 @@ -1491,12 +1513,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.2': {} + '@eslint/config-helpers@0.2.3': {} '@eslint/core@0.14.0': dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.15.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 @@ -1511,13 +1537,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.28.0': {} + '@eslint/js@9.29.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.1': + '@eslint/plugin-kit@0.3.2': dependencies: - '@eslint/core': 0.14.0 + '@eslint/core': 0.15.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -1533,6 +1559,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -1558,17 +1590,17 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@logux/eslint-config@55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@logux/eslint-config@55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint/eslintrc': 3.3.1 - eslint: 9.28.0(jiti@2.4.2) - eslint-plugin-import-x: 4.15.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)) - eslint-plugin-n: 17.19.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-perfectionist: 4.14.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-import-x: 4.15.2(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)) + eslint-plugin-n: 17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-perfectionist: 4.14.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.29.0(jiti@2.4.2)) globals: 16.2.0 - typescript-eslint: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + typescript-eslint: 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node @@ -1632,21 +1664,21 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@24.0.0': + '@types/node@24.0.3': dependencies: undici-types: 7.8.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -1655,14 +1687,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.34.0 '@typescript-eslint/types': 8.34.0 '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.1 - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -1685,12 +1717,12 @@ snapshots: dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1 - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -1714,13 +1746,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.34.0 '@typescript-eslint/types': 8.34.0 '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -1730,57 +1762,63 @@ snapshots: '@typescript-eslint/types': 8.34.0 eslint-visitor-keys: 4.2.1 - '@unrs/resolver-binding-darwin-arm64@1.8.1': + '@unrs/resolver-binding-android-arm-eabi@1.9.0': + optional: true + + '@unrs/resolver-binding-android-arm64@1.9.0': optional: true - '@unrs/resolver-binding-darwin-x64@1.8.1': + '@unrs/resolver-binding-darwin-arm64@1.9.0': optional: true - '@unrs/resolver-binding-freebsd-x64@1.8.1': + '@unrs/resolver-binding-darwin-x64@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.8.1': + '@unrs/resolver-binding-freebsd-x64@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.8.1': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.8.1': + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.8.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.8.1': + '@unrs/resolver-binding-linux-arm64-musl@1.9.0': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.8.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.8.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.8.1': + '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.8.1': + '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.8.1': + '@unrs/resolver-binding-linux-x64-gnu@1.9.0': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.8.1': + '@unrs/resolver-binding-linux-x64-musl@1.9.0': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.9.0': dependencies: '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.8.1': + '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.8.1': + '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.8.1': + '@unrs/resolver-binding-win32-x64-msvc@1.9.0': optional: true acorn-jsx@5.3.2(acorn@8.15.0): @@ -1864,7 +1902,7 @@ snapshots: dependencies: readdirp: 4.1.2 - clean-publish@5.2.1: + clean-publish@5.2.2: dependencies: cross-spawn: 7.0.6 fast-glob: 3.3.3 @@ -1961,17 +1999,17 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.28.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.29.0(jiti@2.4.2)): dependencies: - eslint: 9.28.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) semver: 7.7.2 - eslint-import-context@0.1.8(unrs-resolver@1.8.1): + eslint-import-context@0.1.8(unrs-resolver@1.9.0): dependencies: get-tsconfig: 4.10.1 stable-hash-x: 0.1.1 optionalDependencies: - unrs-resolver: 1.8.1 + unrs-resolver: 1.9.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -1982,38 +2020,38 @@ snapshots: - supports-color optional: true - eslint-plugin-es-x@7.8.0(eslint@9.28.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.29.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.28.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.28.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.29.0(jiti@2.4.2)) - eslint-plugin-import-x@4.15.1(@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)): + eslint-plugin-import-x@4.15.2(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)): dependencies: '@typescript-eslint/types': 8.34.0 comment-parser: 1.4.1 debug: 4.4.1 - eslint: 9.28.0(jiti@2.4.2) - eslint-import-context: 0.1.8(unrs-resolver@1.8.1) + eslint: 9.29.0(jiti@2.4.2) + eslint-import-context: 0.1.8(unrs-resolver@1.9.0) is-glob: 4.0.3 - minimatch: 10.0.1 + minimatch: 10.0.3 semver: 7.7.2 stable-hash-x: 0.1.1 - unrs-resolver: 1.8.1 + unrs-resolver: 1.9.0 optionalDependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.19.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-n@17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) enhanced-resolve: 5.18.1 - eslint: 9.28.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.28.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.29.0(jiti@2.4.2)) get-tsconfig: 4.10.1 globals: 15.15.0 ignore: 5.3.2 @@ -2024,11 +2062,11 @@ snapshots: - supports-color - typescript - eslint-plugin-perfectionist@4.14.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-perfectionist@4.14.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -2038,10 +2076,10 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.28.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.29.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) - eslint: 9.28.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) eslint-scope@8.4.0: dependencies: @@ -2052,16 +2090,16 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.28.0(jiti@2.4.2): + eslint@9.29.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.2 + '@eslint/config-array': 0.20.1 + '@eslint/config-helpers': 0.2.3 '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.28.0 - '@eslint/plugin-kit': 0.3.1 + '@eslint/js': 9.29.0 + '@eslint/plugin-kit': 0.3.2 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -2297,9 +2335,9 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - minimatch@10.0.1: + minimatch@10.0.3: dependencies: - brace-expansion: 2.0.2 + '@isaacs/brace-expansion': 5.0.0 minimatch@3.1.2: dependencies: @@ -2494,14 +2532,14 @@ snapshots: picomatch: 4.0.2 typescript: 5.8.3 - ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3): + ts-node@10.9.2(@types/node@24.0.3)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.0.0 + '@types/node': 24.0.3 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2519,12 +2557,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.28.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -2537,27 +2575,29 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unrs-resolver@1.8.1: + unrs-resolver@1.9.0: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.8.1 - '@unrs/resolver-binding-darwin-x64': 1.8.1 - '@unrs/resolver-binding-freebsd-x64': 1.8.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.8.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.8.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.8.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.8.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.8.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.8.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.8.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.8.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.8.1 - '@unrs/resolver-binding-linux-x64-musl': 1.8.1 - '@unrs/resolver-binding-wasm32-wasi': 1.8.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.8.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.8.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.8.1 + '@unrs/resolver-binding-android-arm-eabi': 1.9.0 + '@unrs/resolver-binding-android-arm64': 1.9.0 + '@unrs/resolver-binding-darwin-arm64': 1.9.0 + '@unrs/resolver-binding-darwin-x64': 1.9.0 + '@unrs/resolver-binding-freebsd-x64': 1.9.0 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.0 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.0 + '@unrs/resolver-binding-linux-arm64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-arm64-musl': 1.9.0 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-riscv64-musl': 1.9.0 + '@unrs/resolver-binding-linux-s390x-gnu': 1.9.0 + '@unrs/resolver-binding-linux-x64-gnu': 1.9.0 + '@unrs/resolver-binding-linux-x64-musl': 1.9.0 + '@unrs/resolver-binding-wasm32-wasi': 1.9.0 + '@unrs/resolver-binding-win32-arm64-msvc': 1.9.0 + '@unrs/resolver-binding-win32-ia32-msvc': 1.9.0 + '@unrs/resolver-binding-win32-x64-msvc': 1.9.0 uri-js@4.4.1: dependencies: From 91d6eb5c3d1ca8acb4e8e3926005acf2b066c211 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 16 Jun 2025 15:57:37 +0200 Subject: [PATCH 2898/3047] Release 8.5.6 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61b1a5770..d4a0bc6f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.6 +* Fixed `ContainerWithChildren` type discriminating (by @Goodwine). + ## 8.5.5 * Fixed `package.json`→`exports` compatibility with some tools (by @JounQin). diff --git a/lib/processor.js b/lib/processor.js index df83ba04a..84936874d 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.5' + this.version = '8.5.6' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index d0e20b54e..6e5d45160 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.5", + "version": "8.5.6", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 3f51dafbbf0e00655f9de13debb77dbdae872bf6 Mon Sep 17 00:00:00 2001 From: Maximilian Franzke <787658+mfranzke@users.noreply.github.com> Date: Sun, 20 Jul 2025 23:28:03 +0200 Subject: [PATCH 2899/3047] docs: added my if() function PostCSS plugin (#2054) --- docs/plugins.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 6c0fedfef..37a886596 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -112,6 +112,8 @@ Or enable plugins directly in CSS using [`postcss-use`]: * [`postcss-font-family-system-ui`] transforms W3C CSS `font-family: system-ui` to a practical font list. * [`postcss-font-display`] add `font-display` css rule. +* [`postcss-if-function`] transforms `if()` function for `media()` and + `supports()` to `@media` and `@supports` queries. * [`postcss-host`] makes the Shadow DOM’s `:host` selector work properly with pseudo-classes. * [`postcss-initial`] supports `initial` keyword and `all: initial` @@ -923,6 +925,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-subgrid`]: https://github.com/seaneking/postcss-subgrid [`postcss-join-transitions`]: https://github.com/JGJP/postcss-join-transitions [`postcss-font-display`]: https://github.com/dkrnl/postcss-font-display +[`postcss-if-function`]: https://github.com/mfranzke/css-if-polyfill/tree/main/packages/postcss-if-function [`postcss-glitch`]: https://github.com/crftd/postcss-glitch [`postcss-class-name-shortener`]: https://github.com/mbrandau/postcss-class-name-shortener [`postcss-plugin-namespace`]: https://github.com/ymrdf/postcss-plugin-namespace From 2da1c7d4da02d0ec9fc85a10c7800f75a2c2d46b Mon Sep 17 00:00:00 2001 From: KNOWLEDGECODE Date: Wed, 20 Aug 2025 19:02:28 +0900 Subject: [PATCH 2900/3047] docs: add postcss-inline-extract plugin to plugins list (#2057) Add postcss-inline-extract plugin that extracts inline styles from HTML and converts them to CSS rules. Added to Language Extensions section in alphabetical order. --- docs/plugins.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/plugins.md b/docs/plugins.md index 37a886596..e51695443 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -208,6 +208,7 @@ See also [`oldie`] plugins pack. * [`postcss-functions`] enables exposure of JavaScript functions. * [`postcss-if-media`] inline or nest media queries within CSS rules & properties. +* [`postcss-inline-extract`] extract inline styles from HTML and convert them to CSS rules. * [`postcss-inline-media`] inline multiple media queries into CSS property values. * [`postcss-local-constants`] adds support for localized constants. @@ -801,6 +802,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-fallback`]: https://github.com/MadLittleMods/postcss-fallback [`postcss-fontpath`]: https://github.com/seaneking/postcss-fontpath [`postcss-if-media`]: https://github.com/arccoza/postcss-if-media +[`postcss-inline-extract`]: https://github.com/knowledgecode/postcss-inline-extract [`postcss-imperial`]: https://github.com/cbas/postcss-imperial [`postcss-position`]: https://github.com/seaneking/postcss-position [`postcss-reporter`]: https://github.com/postcss/postcss-reporter From 9b8e5834e2f2f2a66706dbec62e4b10d773e505e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 26 Aug 2025 16:41:39 +0000 Subject: [PATCH 2901/3047] Add Warp banner --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index afc754afc..d1fa5488a 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,16 @@ and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some o PostCSS needs your support. We are accepting donations [at Open Collective](https://opencollective.com/postcss/). +
+ + Warp sponsorship + + +[Warp is the agentic development environment, built for coding with multiple AI agents](https://go.warp.dev/postcss) +
+
+
+ Sponsored by Tailwind CSS       From 981c04e34601afb77212d9fc0119d6b766f01f75 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 15 Sep 2025 14:58:17 +0000 Subject: [PATCH 2902/3047] Update sponsor description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d1fa5488a..909911086 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ PostCSS needs your support. We are accepting donations Warp sponsorship -[Warp is the agentic development environment, built for coding with multiple AI agents](https://go.warp.dev/postcss) +[Warp, built for coding with multiple agents.](https://go.warp.dev/postcss)

From fcab61c11bb33959c8c9a6e1aeac423307eb8cde Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 15 Sep 2025 14:59:13 +0000 Subject: [PATCH 2903/3047] Fix typography --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 909911086..e89c565b5 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ PostCSS needs your support. We are accepting donations Warp sponsorship -[Warp, built for coding with multiple agents.](https://go.warp.dev/postcss) +[Warp, built for coding with multiple agents](https://go.warp.dev/postcss)

From d0b5ac9cb0393f4975612656dc972dba369eb4b5 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Oct 2025 14:03:53 +0000 Subject: [PATCH 2904/3047] Add new plugin --- docs/plugins.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plugins.md b/docs/plugins.md index e51695443..7a0a231d7 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -254,10 +254,10 @@ for targeting all button elements. between them. * [`@csstools/postcss-design-tokens`] lets you import and use design tokens from CSS. +* [`postcss-smooth-shadow`] generates more realistic smooth shadow. [Rust-style pattern matching]: https://doc.rust-lang.org/book/match.html - ## Colors * [`postcss-ase-colors`] replaces color names with values read @@ -708,6 +708,7 @@ See also plugins in modular minifier [`cssnano`]. [`postcss-css-variables`]: https://github.com/MadLittleMods/postcss-css-variables [`postcss-discard-empty`]: https://github.com/ben-eb/postcss-discard-empty [`postcss-extract-value`]: https://github.com/lutien/postcss-extract-value +[`postcss-smooth-shadow`]: https://github.com/postcss/postcss-smooth-shadow/ [`postcss-filter-stream`]: https://www.npmjs.com/package/postcss-filter-stream [`postcss-gradientfixer`]: https://github.com/hallvors/postcss-gradientfixer [`postcss-image-inliner`]: https://github.com/bezoerb/postcss-image-inliner From 82d80c0d45b45cbf94a0badef28516c3b11f1039 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Oct 2025 14:04:57 +0000 Subject: [PATCH 2905/3047] Pin CI actions --- .github/workflows/release.yml | 4 +- .github/workflows/test.yml | 24 ++-- package.json | 2 + pnpm-lock.yaml | 227 ++++++++++++++++++++++++++++++++++ 4 files changed, 243 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ee75de712..ab42bc140 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the repository - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Extract the changelog id: changelog run: | @@ -36,7 +36,7 @@ jobs: echo "EOF" >> $GITHUB_OUTPUT - name: Create the release if: steps.changelog.outputs.changelog_content != '' - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1 with: name: ${{ github.ref_name }} body: '${{ steps.changelog.outputs.changelog_content }}' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b8b0f9ad7..109877b87 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the repository - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 10 - name: Install Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: 23 cache: pnpm @@ -37,13 +37,13 @@ jobs: name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 10 - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: ${{ matrix.node-version }} cache: pnpm @@ -63,15 +63,15 @@ jobs: name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 3 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: ${{ matrix.node-version }} - name: Install dependencies @@ -85,13 +85,13 @@ jobs: name: Windows Quick steps: - name: Checkout the repository - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 10 - name: Install Node.js LTS - uses: actions/setup-node@v4 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: 22 cache: pnpm diff --git a/package.json b/package.json index 6e5d45160..ccfd25278 100644 --- a/package.json +++ b/package.json @@ -93,11 +93,13 @@ "@logux/eslint-config": "^55.2.1", "@size-limit/preset-small-lib": "^11.2.0", "@types/node": "^24.0.3", + "actions-up": "^1.4.1", "c8": "^10.1.3", "check-dts": "^0.9.0", "clean-publish": "^5.2.2", "concat-with-sourcemaps": "^1.1.0", "eslint": "^9.29.0", + "multiocular": "^0.8.1", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 541fab0f0..bb41e1c56 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,6 +27,9 @@ importers: '@types/node': specifier: ^24.0.3 version: 24.0.3 + actions-up: + specifier: ^1.4.1 + version: 1.4.1 c8: specifier: ^10.1.3 version: 10.1.3 @@ -42,6 +45,9 @@ importers: eslint: specifier: ^9.29.0 version: 9.29.0(jiti@2.4.2) + multiocular: + specifier: ^0.8.1 + version: 0.8.1 nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -330,6 +336,16 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@logux/actions@0.5.0': + resolution: {integrity: sha512-65sgfkuFUzxHqDWSBn2CfNwHrijkoMbFS/LBMeRNtcdMxGRJ4X4mwwwDDdQ/Tci+TNQnfJTAiKCKBIsdiS3VCg==} + engines: {node: ^20.0.0 || >=22.0.0} + peerDependencies: + '@logux/core': ^0.10.0 + + '@logux/core@0.10.0': + resolution: {integrity: sha512-VbgVkEloAe2ym5w0cjyRI16Eeyk2R0BgJa9pMYT1FcJEhFnzrB23E0ExIEhrok0iD48bFh7goledwmDLmgWaiw==} + engines: {node: ^20.0.0 || >=22.0.0} + '@logux/eslint-config@55.2.1': resolution: {integrity: sha512-lwSB1tkMeiHLZIduvt5273gA1akONIm+aMIwy7nnJngvcv3KuDWCi0EXVkeSuDMZamY6LAViF7v5J/Z1xWwBqg==} engines: {node: '>=18.0.0'} @@ -346,6 +362,10 @@ packages: svelte-eslint-parser: optional: true + '@logux/server@0.14.0': + resolution: {integrity: sha512-a7KRD30U252cfIekBGktEIRuwFRT7vOPZXkEsD05DwApsPi70iRnFaHEgMde8tZu+jJUuTDN/xMgabtjzHzXaQ==} + engines: {node: ^20.0.0 || >=22.0.0} + '@napi-rs/wasm-runtime@0.2.11': resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} @@ -409,6 +429,9 @@ packages: '@types/node@24.0.3': resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -510,41 +533,49 @@ packages: resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} cpu: [arm64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-arm64-musl@1.9.0': resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} cpu: [arm64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} cpu: [riscv64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} cpu: [riscv64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} cpu: [s390x] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-gnu@1.9.0': resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} cpu: [x64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-musl@1.9.0': resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} cpu: [x64] os: [linux] + libc: [musl] '@unrs/resolver-binding-wasm32-wasi@1.9.0': resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} @@ -566,6 +597,9 @@ packages: cpu: [x64] os: [win32] + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -580,9 +614,18 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + actions-up@1.4.1: + resolution: {integrity: sha512-hjIVnEh+2JGM/MlDaAfKrb5gfmPr65TWE2s1XM9Spp6QjBtL0bMePCfxqcspV+aZCMepgO6sS1WmgxA/xNCF2Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -632,6 +675,10 @@ packages: monocart-coverage-reports: optional: true + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -680,6 +727,10 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -711,6 +762,10 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + diff2html@3.4.52: + resolution: {integrity: sha512-qhMg8/I3sZ4zm/6R/Kh0xd6qG6Vm86w6M+C9W+DuH1V8ACz+1cgEC8/k0ucjv6AGqZWzHm/8G1gh7IlrUqCMhg==} + engines: {node: '>=12'} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -719,6 +774,13 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + + dompurify@3.3.0: + resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -732,6 +794,10 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + esbuild@0.25.5: resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} engines: {node: '>=18'} @@ -941,6 +1007,18 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + highlight.js@11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} + + highlight.js@11.9.0: + resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} + engines: {node: '>=12.0.0'} + + hogan.js@3.0.2: + resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==} + hasBin: true + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -1047,6 +1125,11 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + marked@16.4.1: + resolution: {integrity: sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==} + engines: {node: '>= 20'} + hasBin: true + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1070,6 +1153,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + mkdirp@0.3.0: + resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -1077,9 +1164,18 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + multiocular@0.8.1: + resolution: {integrity: sha512-gMSP/kBS/rEZwoHpREN9eOLQeePt/t4mkotP5GeWuzH7FkIDTf49Xr60+VvChF8tS0eD3rilq+JaVxtj6pdKfw==} + engines: {node: ^22.16.0 || >=24.0.0} + hasBin: true + nanodelay@1.0.8: resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==} + nanoevents@9.1.0: + resolution: {integrity: sha512-Jd0fILWG44a9luj8v5kED4WI+zfkkgwKyRQKItTtlPfEsh7Lznfi1kr8/iZ+XAIss4Qq5GqRB0qtWbaz9ceO/A==} + engines: {node: ^18.0.0 || >=20.0.0} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1097,6 +1193,10 @@ packages: resolution: {integrity: sha512-wvmmALNstRRhLhy7RV11NCRY2k1zxstImiju4VyyKNNRIKDVjyBtmEd/Q4G82/3dN4VSTe+0PRR3DUAASSbEEQ==} engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || ^16.0.0 || ^18.0.0 || >=20.0.0} + nanostores@1.0.1: + resolution: {integrity: sha512-kNZ9xnoJYKg/AfxjrVL4SS0fKX++4awQReGqWnwTRHxeHGZ1FJFVgTqr/eMrNQdp0Tz7M7tG/TDaX8QfHDwVCw==} + engines: {node: ^20.0.0 || >=22.0.0} + napi-postinstall@0.2.4: resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1109,6 +1209,10 @@ packages: resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} engines: {node: '>=18'} + nopt@1.0.10: + resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -1341,6 +1445,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-pattern@1.0.3: + resolution: {integrity: sha512-uQcEj/2puA4aq1R3A2+VNVBgaWYR24FdWjl7VNW83rnWftlhyzOZ/tBjezRiC2UkIzuxC8Top3IekN3vUf1WxA==} + engines: {node: '>=0.12.0'} + uvu@0.5.6: resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} engines: {node: '>=8'} @@ -1379,10 +1487,27 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -1590,6 +1715,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@logux/actions@0.5.0(@logux/core@0.10.0)': + dependencies: + '@logux/core': 0.10.0 + + '@logux/core@0.10.0': + dependencies: + nanoevents: 9.1.0 + '@logux/eslint-config@55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint/eslintrc': 3.3.1 @@ -1607,6 +1740,21 @@ snapshots: - supports-color - typescript + '@logux/server@0.14.0': + dependencies: + '@logux/actions': 0.5.0(@logux/core@0.10.0) + '@logux/core': 0.10.0 + cookie: 1.0.2 + fastq: 1.19.1 + nanoevents: 9.1.0 + nanoid: 5.1.5 + tinyglobby: 0.2.14 + url-pattern: 1.0.3 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@napi-rs/wasm-runtime@0.2.11': dependencies: '@emnapi/core': 1.4.3 @@ -1668,6 +1816,9 @@ snapshots: dependencies: undici-types: 7.8.0 + '@types/trusted-types@2.0.7': + optional: true + '@types/unist@3.0.3': {} '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': @@ -1821,6 +1972,8 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.9.0': optional: true + abbrev@1.1.1: {} + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -1831,6 +1984,15 @@ snapshots: acorn@8.15.0: {} + actions-up@1.4.1: + dependencies: + cac: 6.7.14 + enquirer: 2.4.1 + nanospinner: 1.2.2 + picocolors: 1.1.1 + semver: 7.7.2 + yaml: 2.8.1 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -1838,6 +2000,8 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-colors@4.1.3: {} + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -1883,6 +2047,8 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 + cac@6.7.14: {} + callsites@3.1.0: {} chalk@4.1.2: @@ -1931,6 +2097,8 @@ snapshots: convert-source-map@2.0.0: {} + cookie@1.0.2: {} + create-require@1.1.1: {} cross-spawn@7.0.6: @@ -1952,10 +2120,23 @@ snapshots: dequal@2.0.3: {} + diff2html@3.4.52: + dependencies: + diff: 7.0.0 + hogan.js: 3.0.2 + optionalDependencies: + highlight.js: 11.9.0 + diff@4.0.2: {} diff@5.2.0: {} + diff@7.0.0: {} + + dompurify@3.3.0: + optionalDependencies: + '@types/trusted-types': 2.0.7 + eastasianwidth@0.2.0: {} emoji-regex@8.0.0: {} @@ -1967,6 +2148,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.2 + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + esbuild@0.25.5: optionalDependencies: '@esbuild/aix-ppc64': 0.25.5 @@ -2240,6 +2426,16 @@ snapshots: function-bind: 1.1.2 optional: true + highlight.js@11.11.1: {} + + highlight.js@11.9.0: + optional: true + + hogan.js@3.0.2: + dependencies: + mkdirp: 0.3.0 + nopt: 1.0.10 + html-escaper@2.0.2: {} ignore@5.3.2: {} @@ -2328,6 +2524,8 @@ snapshots: make-error@1.3.6: {} + marked@16.4.1: {} + merge2@1.4.1: {} micromatch@4.0.8: @@ -2349,12 +2547,29 @@ snapshots: minipass@7.1.2: {} + mkdirp@0.3.0: {} + mri@1.2.0: {} ms@2.1.3: {} + multiocular@0.8.1: + dependencies: + '@logux/server': 0.14.0 + diff2html: 3.4.52 + dompurify: 3.3.0 + highlight.js: 11.11.1 + marked: 16.4.1 + nanostores: 1.0.1 + yaml: 2.8.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + nanodelay@1.0.8: {} + nanoevents@9.1.0: {} + nanoid@3.3.11: {} nanoid@5.1.5: {} @@ -2365,12 +2580,18 @@ snapshots: nanospy@1.0.0: {} + nanostores@1.0.1: {} + napi-postinstall@0.2.4: {} natural-compare@1.4.0: {} natural-orderby@5.0.0: {} + nopt@1.0.10: + dependencies: + abbrev: 1.1.1 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -2603,6 +2824,8 @@ snapshots: dependencies: punycode: 2.3.1 + url-pattern@1.0.3: {} + uvu@0.5.6: dependencies: dequal: 2.0.3 @@ -2651,8 +2874,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + ws@8.18.3: {} + y18n@5.0.8: {} + yaml@2.8.1: {} + yargs-parser@21.1.1: {} yargs@17.7.2: From 105128bd5bf9c56cc45b6430e4a6f2ff5175dd90 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Oct 2025 14:05:19 +0000 Subject: [PATCH 2906/3047] Add Node.js 24 and 25 to CI --- .github/workflows/test.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 109877b87..942b7514d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: - node-version: 23 + node-version: 25 cache: pnpm - name: Install dependencies run: pnpm install --ignore-scripts @@ -31,6 +31,7 @@ jobs: strategy: matrix: node-version: + - 24 - 22 - 20 - 18 @@ -93,7 +94,7 @@ jobs: - name: Install Node.js LTS uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: - node-version: 22 + node-version: 24 cache: pnpm - name: Install dependencies run: pnpm install --ignore-scripts From 23beff9a7c1da1639b0c159df869829ff7ae1ab4 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sat, 18 Oct 2025 14:12:14 +0000 Subject: [PATCH 2907/3047] Update dependencies --- eslint.config.mjs | 5 +- lib/at-rule.d.ts | 2 +- lib/comment.d.ts | 2 +- lib/container.d.ts | 2 +- lib/css-syntax-error.d.ts | 2 +- lib/declaration.d.ts | 2 +- lib/document.d.ts | 2 +- lib/input.d.ts | 2 +- lib/lazy-result.d.ts | 2 +- lib/no-work-result.d.ts | 2 +- lib/no-work-result.js | 5 +- lib/node.d.ts | 2 +- lib/previous-map.d.ts | 2 +- lib/processor.d.ts | 2 +- lib/result.d.ts | 2 +- lib/root.d.ts | 2 +- lib/rule.d.ts | 2 +- lib/stringifier.d.ts | 2 +- lib/warning.d.ts | 2 +- package.json | 10 +- pnpm-lock.yaml | 1038 +++++++++++++++++---------------- test/css-syntax-error.test.ts | 1 - test/map.test.ts | 0 23 files changed, 549 insertions(+), 544 deletions(-) mode change 100755 => 100644 test/map.test.ts diff --git a/eslint.config.mjs b/eslint.config.mjs index 2cb7d555b..e1cc6eb9e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -9,6 +9,7 @@ export default [ '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/no-this-alias': 'off', + '@typescript-eslint/prefer-optional-chain': 'off', 'consistent-return': 'off', 'global-require': 'off', 'n/no-unsupported-features/es-syntax': [ @@ -29,7 +30,9 @@ export default [ files: ['**/*.d.ts'], rules: { '@typescript-eslint/no-redeclare': 'off', - 'n/no-unsupported-features/es-syntax': 'off' + 'n/no-unsupported-features/es-syntax': 'off', + 'no-shadow': 'off', + 'no-use-before-define': 'off' } }, { diff --git a/lib/at-rule.d.ts b/lib/at-rule.d.ts index 89fb505f4..071f043c3 100644 --- a/lib/at-rule.d.ts +++ b/lib/at-rule.d.ts @@ -49,7 +49,7 @@ declare namespace AtRule { raws?: AtRuleRaws } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { AtRule_ as default } } diff --git a/lib/comment.d.ts b/lib/comment.d.ts index 6f1f66f81..433c190fe 100644 --- a/lib/comment.d.ts +++ b/lib/comment.d.ts @@ -26,7 +26,7 @@ declare namespace Comment { text: string } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Comment_ as default } } diff --git a/lib/container.d.ts b/lib/container.d.ts index c2b310b6b..e08bf987c 100644 --- a/lib/container.d.ts +++ b/lib/container.d.ts @@ -43,7 +43,7 @@ declare namespace Container { | string | undefined - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Container_ as default } } diff --git a/lib/css-syntax-error.d.ts b/lib/css-syntax-error.d.ts index e540d8496..3e0cc360f 100644 --- a/lib/css-syntax-error.d.ts +++ b/lib/css-syntax-error.d.ts @@ -16,7 +16,7 @@ declare namespace CssSyntaxError { line: number } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { CssSyntaxError_ as default } } diff --git a/lib/declaration.d.ts b/lib/declaration.d.ts index d489b4270..1426a3341 100644 --- a/lib/declaration.d.ts +++ b/lib/declaration.d.ts @@ -39,7 +39,7 @@ declare namespace Declaration { value: string } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Declaration_ as default } } diff --git a/lib/document.d.ts b/lib/document.d.ts index f9e806349..9094c052d 100644 --- a/lib/document.d.ts +++ b/lib/document.d.ts @@ -16,7 +16,7 @@ declare namespace Document { raws?: Record } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Document_ as default } } diff --git a/lib/input.d.ts b/lib/input.d.ts index 3207da3e1..b788f55d1 100644 --- a/lib/input.d.ts +++ b/lib/input.d.ts @@ -49,7 +49,7 @@ declare namespace Input { url: string } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Input_ as default } } diff --git a/lib/lazy-result.d.ts b/lib/lazy-result.d.ts index 2eb72796e..393ab030f 100644 --- a/lib/lazy-result.d.ts +++ b/lib/lazy-result.d.ts @@ -6,7 +6,7 @@ import Root from './root.js' import Warning from './warning.js' declare namespace LazyResult { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { LazyResult_ as default } } diff --git a/lib/no-work-result.d.ts b/lib/no-work-result.d.ts index 094f30ab4..747d705b6 100644 --- a/lib/no-work-result.d.ts +++ b/lib/no-work-result.d.ts @@ -6,7 +6,7 @@ import Root from './root.js' import Warning from './warning.js' declare namespace NoWorkResult { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { NoWorkResult_ as default } } diff --git a/lib/no-work-result.js b/lib/no-work-result.js index dd46182d4..092fdc36f 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -65,10 +65,9 @@ class NoWorkResult { this._css = css this._opts = opts this._map = undefined - let root let str = stringify - this.result = new Result(this._processor, root, this._opts) + this.result = new Result(this._processor, undefined, this._opts) this.result.css = css let self = this @@ -78,7 +77,7 @@ class NoWorkResult { } }) - let map = new MapGenerator(str, root, this._opts, css) + let map = new MapGenerator(str, undefined, this._opts, css) if (map.isMap()) { let [generatedCSS, generatedMap] = map.generate() if (generatedCSS) { diff --git a/lib/node.d.ts b/lib/node.d.ts index a09fe4dda..a48120e72 100644 --- a/lib/node.d.ts +++ b/lib/node.d.ts @@ -126,7 +126,7 @@ declare namespace Node { word?: string } - // eslint-disable-next-line @typescript-eslint/no-shadow + class Node extends Node_ {} export { Node as default } } diff --git a/lib/previous-map.d.ts b/lib/previous-map.d.ts index 23edeb5c5..f868f3907 100644 --- a/lib/previous-map.d.ts +++ b/lib/previous-map.d.ts @@ -3,7 +3,7 @@ import { SourceMapConsumer } from 'source-map-js' import { ProcessOptions } from './postcss.js' declare namespace PreviousMap { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { PreviousMap_ as default } } diff --git a/lib/processor.d.ts b/lib/processor.d.ts index aa2942c64..35857925a 100644 --- a/lib/processor.d.ts +++ b/lib/processor.d.ts @@ -12,7 +12,7 @@ import Result from './result.js' import Root from './root.js' declare namespace Processor { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Processor_ as default } } diff --git a/lib/result.d.ts b/lib/result.d.ts index 3f52efb3d..7b0c8325f 100644 --- a/lib/result.d.ts +++ b/lib/result.d.ts @@ -39,7 +39,7 @@ declare namespace Result { plugin?: string } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Result_ as default } } diff --git a/lib/root.d.ts b/lib/root.d.ts index 5c911396c..7f3a3e16d 100644 --- a/lib/root.d.ts +++ b/lib/root.d.ts @@ -40,7 +40,7 @@ declare namespace Root { raws?: RootRaws } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Root_ as default } } diff --git a/lib/rule.d.ts b/lib/rule.d.ts index 9a951e7b1..5be283bc9 100644 --- a/lib/rule.d.ts +++ b/lib/rule.d.ts @@ -56,7 +56,7 @@ declare namespace Rule { } ) & ContainerProps - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Rule_ as default } } diff --git a/lib/stringifier.d.ts b/lib/stringifier.d.ts index b5a6f86fe..a8aab343d 100644 --- a/lib/stringifier.d.ts +++ b/lib/stringifier.d.ts @@ -11,7 +11,7 @@ import { } from './postcss.js' declare namespace Stringifier { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Stringifier_ as default } } diff --git a/lib/warning.d.ts b/lib/warning.d.ts index b25bba816..c541ca22a 100644 --- a/lib/warning.d.ts +++ b/lib/warning.d.ts @@ -40,7 +40,7 @@ declare namespace Warning { word?: string } - // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Warning_ as default } } diff --git a/package.json b/package.json index ccfd25278..5da06ace1 100644 --- a/package.json +++ b/package.json @@ -90,24 +90,24 @@ "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^55.2.1", + "@logux/eslint-config": "^56.1.0", "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^24.0.3", + "@types/node": "^24.8.1", "actions-up": "^1.4.1", "c8": "^10.1.3", "check-dts": "^0.9.0", "clean-publish": "^5.2.2", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.29.0", + "eslint": "^9.37.0", "multiocular": "^0.8.1", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", - "simple-git-hooks": "^2.13.0", + "simple-git-hooks": "^2.13.1", "size-limit": "^11.2.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.2", - "typescript": "^5.8.3", + "typescript": "^5.9.3", "uvu": "^0.5.6" }, "c8": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb41e1c56..28f997402 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,14 +19,14 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^55.2.1 - version: 55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^56.1.0 + version: 56.1.0(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@size-limit/preset-small-lib': specifier: ^11.2.0 version: 11.2.0(size-limit@11.2.0) '@types/node': - specifier: ^24.0.3 - version: 24.0.3 + specifier: ^24.8.1 + version: 24.8.1 actions-up: specifier: ^1.4.1 version: 1.4.1 @@ -35,7 +35,7 @@ importers: version: 10.1.3 check-dts: specifier: ^0.9.0 - version: 0.9.0(typescript@5.8.3) + version: 0.9.0(typescript@5.9.3) clean-publish: specifier: ^5.2.2 version: 5.2.2 @@ -43,8 +43,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.29.0 - version: 9.29.0(jiti@2.4.2) + specifier: ^9.37.0 + version: 9.37.0(jiti@2.6.1) multiocular: specifier: ^0.8.1 version: 0.8.1 @@ -58,8 +58,8 @@ importers: specifier: ^8.9.0 version: 8.9.0 simple-git-hooks: - specifier: ^2.13.0 - version: 2.13.0 + specifier: ^2.13.1 + version: 2.13.1 size-limit: specifier: ^11.2.0 version: 11.2.0 @@ -68,10 +68,10 @@ importers: version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.0.3)(typescript@5.8.3) + version: 10.9.2(@types/node@24.8.1)(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.3 + version: 5.9.3 uvu: specifier: ^0.5.6 version: 0.5.6 @@ -86,167 +86,173 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.5.0': + resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.25.5': - resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} + '@esbuild/aix-ppc64@0.25.11': + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.5': - resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} + '@esbuild/android-arm64@0.25.11': + resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.5': - resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} + '@esbuild/android-arm@0.25.11': + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.5': - resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} + '@esbuild/android-x64@0.25.11': + resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.5': - resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} + '@esbuild/darwin-arm64@0.25.11': + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.5': - resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} + '@esbuild/darwin-x64@0.25.11': + resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.5': - resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} + '@esbuild/freebsd-arm64@0.25.11': + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.5': - resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} + '@esbuild/freebsd-x64@0.25.11': + resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.5': - resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} + '@esbuild/linux-arm64@0.25.11': + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.5': - resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} + '@esbuild/linux-arm@0.25.11': + resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.5': - resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} + '@esbuild/linux-ia32@0.25.11': + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.5': - resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} + '@esbuild/linux-loong64@0.25.11': + resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.5': - resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} + '@esbuild/linux-mips64el@0.25.11': + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.5': - resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} + '@esbuild/linux-ppc64@0.25.11': + resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.5': - resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} + '@esbuild/linux-riscv64@0.25.11': + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.5': - resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} + '@esbuild/linux-s390x@0.25.11': + resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.5': - resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + '@esbuild/linux-x64@0.25.11': + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.5': - resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + '@esbuild/netbsd-arm64@0.25.11': + resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.5': - resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + '@esbuild/netbsd-x64@0.25.11': + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.5': - resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} + '@esbuild/openbsd-arm64@0.25.11': + resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.5': - resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} + '@esbuild/openbsd-x64@0.25.11': + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.5': - resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} + '@esbuild/openharmony-arm64@0.25.11': + resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.11': + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.5': - resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} + '@esbuild/win32-arm64@0.25.11': + resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.5': - resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} + '@esbuild/win32-ia32@0.25.11': + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.5': - resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + '@esbuild/win32-x64@0.25.11': + resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -255,54 +261,46 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.1': - resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.2.3': - resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + '@eslint/config-helpers@0.4.0': + resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.0': - resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} + '@eslint/core@0.16.0': + resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.29.0': - resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} + '@eslint/js@9.37.0': + resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.2': - resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} + '@eslint/plugin-kit@0.4.0': + resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} @@ -327,11 +325,11 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -346,8 +344,8 @@ packages: resolution: {integrity: sha512-VbgVkEloAe2ym5w0cjyRI16Eeyk2R0BgJa9pMYT1FcJEhFnzrB23E0ExIEhrok0iD48bFh7goledwmDLmgWaiw==} engines: {node: ^20.0.0 || >=22.0.0} - '@logux/eslint-config@55.2.1': - resolution: {integrity: sha512-lwSB1tkMeiHLZIduvt5273gA1akONIm+aMIwy7nnJngvcv3KuDWCi0EXVkeSuDMZamY6LAViF7v5J/Z1xWwBqg==} + '@logux/eslint-config@56.1.0': + resolution: {integrity: sha512-o0fsiWHpj0T+ZgnHg2T/wBjLTztYkhQnk6cckZ8zmGA9hz+wX2Y+s34u2VB/AaxOxFOrOF+bQIUGacOzPCledA==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -366,8 +364,8 @@ packages: resolution: {integrity: sha512-a7KRD30U252cfIekBGktEIRuwFRT7vOPZXkEsD05DwApsPi70iRnFaHEgMde8tZu+jJUuTDN/xMgabtjzHzXaQ==} engines: {node: ^20.0.0 || >=22.0.0} - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -414,8 +412,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -426,8 +424,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@24.0.3': - resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} + '@types/node@24.8.1': + resolution: {integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -435,165 +433,165 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.34.0': - resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} + '@typescript-eslint/eslint-plugin@8.46.1': + resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.34.0 + '@typescript-eslint/parser': ^8.46.1 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.34.0': - resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} + '@typescript-eslint/parser@8.46.1': + resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.34.0': - resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} + '@typescript-eslint/project-service@8.46.1': + resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.34.0': - resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} + '@typescript-eslint/scope-manager@8.46.1': + resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.34.0': - resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} + '@typescript-eslint/tsconfig-utils@8.46.1': + resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.34.0': - resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} + '@typescript-eslint/type-utils@8.46.1': + resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.34.0': - resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} + '@typescript-eslint/types@8.46.1': + resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.34.0': - resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} + '@typescript-eslint/typescript-estree@8.46.1': + resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.34.0': - resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} + '@typescript-eslint/utils@8.46.1': + resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.34.0': - resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} + '@typescript-eslint/visitor-keys@8.46.1': + resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unrs/resolver-binding-android-arm-eabi@1.9.0': - resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.9.0': - resolution: {integrity: sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.9.0': - resolution: {integrity: sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.9.0': - resolution: {integrity: sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.9.0': - resolution: {integrity: sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': - resolution: {integrity: sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': - resolution: {integrity: sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': - resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': - resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': - resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': - resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': - resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': - resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': - resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.9.0': - resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] libc: [musl] - '@unrs/resolver-binding-wasm32-wasi@1.9.0': - resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': - resolution: {integrity: sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': - resolution: {integrity: sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': - resolution: {integrity: sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} cpu: [x64] os: [win32] @@ -630,16 +628,16 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} arg@4.1.3: @@ -746,8 +744,8 @@ packages: supports-color: optional: true - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -790,16 +788,16 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - esbuild@0.25.5: - resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} + esbuild@0.25.11: + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} engines: {node: '>=18'} hasBin: true @@ -817,8 +815,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-import-context@0.1.8: - resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: unrs-resolver: ^1.0.0 @@ -835,8 +833,8 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.15.2: - resolution: {integrity: sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==} + eslint-plugin-import-x@4.16.1: + resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/utils': ^8.0.0 @@ -848,14 +846,14 @@ packages: eslint-import-resolver-node: optional: true - eslint-plugin-n@17.20.0: - resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==} + eslint-plugin-n@17.23.1: + resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@4.14.0: - resolution: {integrity: sha512-BkhiOqzdum8vQSFgj1/q5+6UUWPMn4GELdxuX7uIsGegmAeH/+LnWsiVxgMrxalD0p68sYfMeKaHF1NfrpI/mg==} + eslint-plugin-perfectionist@4.15.1: + resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: eslint: '>=8.45.0' @@ -882,8 +880,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.29.0: - resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} + eslint@9.37.0: + resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -928,8 +926,9 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -966,8 +965,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.12.0: + resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -989,10 +988,13 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.2.0: - resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1069,15 +1071,15 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true js-yaml@4.1.0: @@ -1181,8 +1183,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.5: - resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + nanoid@5.1.6: + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} engines: {node: ^18 || >=20} hasBin: true @@ -1197,8 +1199,8 @@ packages: resolution: {integrity: sha512-kNZ9xnoJYKg/AfxjrVL4SS0fKX++4awQReGqWnwTRHxeHGZ1FJFVgTqr/eMrNQdp0Tz7M7tG/TDaX8QfHDwVCw==} engines: {node: ^20.0.0 || >=22.0.0} - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -1254,8 +1256,8 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} postcss-parser-tests@8.9.0: @@ -1307,8 +1309,8 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -1324,8 +1326,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-git-hooks@2.13.0: - resolution: {integrity: sha512-N+goiLxlkHJlyaYEglFypzVNMaNplPAk5syu0+OPp/Bk6dwVoXF6FfOw2vO0Dp+JHsBaI+w6cm8TnFl2Hw6tDA==} + simple-git-hooks@2.13.1: + resolution: {integrity: sha512-WszCLXwT4h2k1ufIXAgsbiTOazqqevFCIncOuUBZJ91DdvWcC5+OFkluWRQPrcuSYd8fjq+o2y1QfWqYMoAToQ==} hasBin: true size-limit@11.2.0: @@ -1341,8 +1343,8 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - stable-hash-x@0.1.1: - resolution: {integrity: sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==} + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} engines: {node: '>=12.0.0'} string-width@4.2.3: @@ -1357,8 +1359,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-json-comments@3.1.1: @@ -1373,16 +1375,16 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} test-exclude@7.0.1: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: @@ -1421,26 +1423,26 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.34.0: - resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} + typescript-eslint@8.46.1: + resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici-types@7.14.0: + resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unrs-resolver@1.9.0: - resolution: {integrity: sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1464,8 +1466,8 @@ packages: vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -1532,126 +1534,127 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.4.3': + '@emnapi/core@1.5.0': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.5': + '@esbuild/aix-ppc64@0.25.11': optional: true - '@esbuild/android-arm64@0.25.5': + '@esbuild/android-arm64@0.25.11': optional: true - '@esbuild/android-arm@0.25.5': + '@esbuild/android-arm@0.25.11': optional: true - '@esbuild/android-x64@0.25.5': + '@esbuild/android-x64@0.25.11': optional: true - '@esbuild/darwin-arm64@0.25.5': + '@esbuild/darwin-arm64@0.25.11': optional: true - '@esbuild/darwin-x64@0.25.5': + '@esbuild/darwin-x64@0.25.11': optional: true - '@esbuild/freebsd-arm64@0.25.5': + '@esbuild/freebsd-arm64@0.25.11': optional: true - '@esbuild/freebsd-x64@0.25.5': + '@esbuild/freebsd-x64@0.25.11': optional: true - '@esbuild/linux-arm64@0.25.5': + '@esbuild/linux-arm64@0.25.11': optional: true - '@esbuild/linux-arm@0.25.5': + '@esbuild/linux-arm@0.25.11': optional: true - '@esbuild/linux-ia32@0.25.5': + '@esbuild/linux-ia32@0.25.11': optional: true - '@esbuild/linux-loong64@0.25.5': + '@esbuild/linux-loong64@0.25.11': optional: true - '@esbuild/linux-mips64el@0.25.5': + '@esbuild/linux-mips64el@0.25.11': optional: true - '@esbuild/linux-ppc64@0.25.5': + '@esbuild/linux-ppc64@0.25.11': optional: true - '@esbuild/linux-riscv64@0.25.5': + '@esbuild/linux-riscv64@0.25.11': optional: true - '@esbuild/linux-s390x@0.25.5': + '@esbuild/linux-s390x@0.25.11': optional: true - '@esbuild/linux-x64@0.25.5': + '@esbuild/linux-x64@0.25.11': optional: true - '@esbuild/netbsd-arm64@0.25.5': + '@esbuild/netbsd-arm64@0.25.11': optional: true - '@esbuild/netbsd-x64@0.25.5': + '@esbuild/netbsd-x64@0.25.11': optional: true - '@esbuild/openbsd-arm64@0.25.5': + '@esbuild/openbsd-arm64@0.25.11': optional: true - '@esbuild/openbsd-x64@0.25.5': + '@esbuild/openbsd-x64@0.25.11': optional: true - '@esbuild/sunos-x64@0.25.5': + '@esbuild/openharmony-arm64@0.25.11': optional: true - '@esbuild/win32-arm64@0.25.5': + '@esbuild/sunos-x64@0.25.11': optional: true - '@esbuild/win32-ia32@0.25.5': + '@esbuild/win32-arm64@0.25.11': optional: true - '@esbuild/win32-x64@0.25.5': + '@esbuild/win32-ia32@0.25.11': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.4.2))': + '@esbuild/win32-x64@0.25.11': + optional: true + + '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))': dependencies: - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.37.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.1': + '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.3': {} - - '@eslint/core@0.14.0': + '@eslint/config-helpers@0.4.0': dependencies: - '@types/json-schema': 7.0.15 + '@eslint/core': 0.16.0 - '@eslint/core@0.15.0': + '@eslint/core@0.16.0': dependencies: '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -1662,26 +1665,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.29.0': {} + '@eslint/js@9.37.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.2': + '@eslint/plugin-kit@0.4.0': dependencies: - '@eslint/core': 0.15.0 + '@eslint/core': 0.16.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} '@isaacs/balanced-match@4.0.1': {} @@ -1694,7 +1695,7 @@ snapshots: dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 @@ -1703,17 +1704,17 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@logux/actions@0.5.0(@logux/core@0.10.0)': dependencies: @@ -1723,17 +1724,17 @@ snapshots: dependencies: nanoevents: 9.1.0 - '@logux/eslint-config@55.2.1(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@logux/eslint-config@56.1.0(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint/eslintrc': 3.3.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-plugin-import-x: 4.15.2(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)) - eslint-plugin-n: 17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-perfectionist: 4.14.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.37.0(jiti@2.6.1) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1)) + eslint-plugin-n: 17.23.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-perfectionist: 4.15.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.29.0(jiti@2.4.2)) - globals: 16.2.0 - typescript-eslint: 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-promise: 7.2.1(eslint@9.37.0(jiti@2.6.1)) + globals: 16.4.0 + typescript-eslint: 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node @@ -1747,19 +1748,19 @@ snapshots: cookie: 1.0.2 fastq: 1.19.1 nanoevents: 9.1.0 - nanoid: 5.1.5 - tinyglobby: 0.2.14 + nanoid: 5.1.6 + tinyglobby: 0.2.15 url-pattern: 1.0.3 ws: 8.18.3 transitivePeerDependencies: - bufferutil - utf-8-validate - '@napi-rs/wasm-runtime@0.2.11': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 + '@tybys/wasm-util': 0.10.1 optional: true '@nodelib/fs.scandir@2.1.5': @@ -1779,8 +1780,8 @@ snapshots: '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: - esbuild: 0.25.5 - nanoid: 5.1.5 + esbuild: 0.25.11 + nanoid: 5.1.6 size-limit: 11.2.0 '@size-limit/file@11.2.0(size-limit@11.2.0)': @@ -1801,7 +1802,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tybys/wasm-util@0.9.0': + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true @@ -1812,164 +1813,165 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@24.0.3': + '@types/node@24.8.1': dependencies: - undici-types: 7.8.0 + undici-types: 7.14.0 '@types/trusted-types@2.0.7': optional: true '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.29.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 + eslint: 9.37.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) - '@typescript-eslint/types': 8.34.0 - debug: 4.4.1 - typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + debug: 4.4.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.34.0': + '@typescript-eslint/scope-manager@8.46.1': dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 - '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - '@typescript-eslint/type-utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.34.0': {} + '@typescript-eslint/types@8.46.1': {} - '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.1 + '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) - typescript: 5.8.3 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.34.0': + '@typescript-eslint/visitor-keys@8.46.1': dependencies: - '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/types': 8.46.1 eslint-visitor-keys: 4.2.1 - '@unrs/resolver-binding-android-arm-eabi@1.9.0': + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true - '@unrs/resolver-binding-android-arm64@1.9.0': + '@unrs/resolver-binding-android-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-arm64@1.9.0': + '@unrs/resolver-binding-darwin-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-x64@1.9.0': + '@unrs/resolver-binding-darwin-x64@1.11.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.9.0': + '@unrs/resolver-binding-freebsd-x64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.9.0': + '@unrs/resolver-binding-linux-x64-musl@1.11.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.9.0': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 + '@napi-rs/wasm-runtime': 0.2.12 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true abbrev@1.1.1: {} @@ -1990,7 +1992,7 @@ snapshots: enquirer: 2.4.1 nanospinner: 1.2.2 picocolors: 1.1.1 - semver: 7.7.2 + semver: 7.7.3 yaml: 2.8.1 ajv@6.12.6: @@ -2004,13 +2006,13 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} arg@4.1.3: {} @@ -2041,7 +2043,7 @@ snapshots: foreground-child: 3.3.1 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 test-exclude: 7.0.1 v8-to-istanbul: 9.3.0 yargs: 17.7.2 @@ -2056,12 +2058,12 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - check-dts@0.9.0(typescript@5.8.3): + check-dts@0.9.0(typescript@5.9.3): dependencies: fast-glob: 3.3.3 nanospinner: 1.2.2 picocolors: 1.1.1 - typescript: 5.8.3 + typescript: 5.9.3 vfile-location: 5.0.3 chokidar@4.0.3: @@ -2112,7 +2114,7 @@ snapshots: ms: 2.1.3 optional: true - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -2143,59 +2145,60 @@ snapshots: emoji-regex@9.2.2: {} - enhanced-resolve@5.18.1: + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 + tapable: 2.3.0 enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - esbuild@0.25.5: + esbuild@0.25.11: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.5 - '@esbuild/android-arm': 0.25.5 - '@esbuild/android-arm64': 0.25.5 - '@esbuild/android-x64': 0.25.5 - '@esbuild/darwin-arm64': 0.25.5 - '@esbuild/darwin-x64': 0.25.5 - '@esbuild/freebsd-arm64': 0.25.5 - '@esbuild/freebsd-x64': 0.25.5 - '@esbuild/linux-arm': 0.25.5 - '@esbuild/linux-arm64': 0.25.5 - '@esbuild/linux-ia32': 0.25.5 - '@esbuild/linux-loong64': 0.25.5 - '@esbuild/linux-mips64el': 0.25.5 - '@esbuild/linux-ppc64': 0.25.5 - '@esbuild/linux-riscv64': 0.25.5 - '@esbuild/linux-s390x': 0.25.5 - '@esbuild/linux-x64': 0.25.5 - '@esbuild/netbsd-arm64': 0.25.5 - '@esbuild/netbsd-x64': 0.25.5 - '@esbuild/openbsd-arm64': 0.25.5 - '@esbuild/openbsd-x64': 0.25.5 - '@esbuild/sunos-x64': 0.25.5 - '@esbuild/win32-arm64': 0.25.5 - '@esbuild/win32-ia32': 0.25.5 - '@esbuild/win32-x64': 0.25.5 + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.29.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.37.0(jiti@2.6.1)): dependencies: - eslint: 9.29.0(jiti@2.4.2) - semver: 7.7.2 + eslint: 9.37.0(jiti@2.6.1) + semver: 7.7.3 - eslint-import-context@0.1.8(unrs-resolver@1.9.0): + eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.10.1 - stable-hash-x: 0.1.1 + get-tsconfig: 4.12.0 + stable-hash-x: 0.2.0 optionalDependencies: - unrs-resolver: 1.9.0 + unrs-resolver: 1.11.1 eslint-import-resolver-node@0.3.9: dependencies: @@ -2206,53 +2209,51 @@ snapshots: - supports-color optional: true - eslint-plugin-es-x@7.8.0(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.37.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.29.0(jiti@2.4.2)) + eslint: 9.37.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@9.37.0(jiti@2.6.1)) - eslint-plugin-import-x@4.15.2(@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/types': 8.46.1 comment-parser: 1.4.1 - debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-import-context: 0.1.8(unrs-resolver@1.9.0) + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.0.3 - semver: 7.7.2 - stable-hash-x: 0.1.1 - unrs-resolver: 1.9.0 + semver: 7.7.3 + stable-hash-x: 0.2.0 + unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-n@17.23.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - enhanced-resolve: 5.18.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.29.0(jiti@2.4.2)) - get-tsconfig: 4.10.1 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + enhanced-resolve: 5.18.3 + eslint: 9.37.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@9.37.0(jiti@2.6.1)) + get-tsconfig: 4.12.0 globals: 15.15.0 + globrex: 0.1.2 ignore: 5.3.2 - minimatch: 9.0.5 - semver: 7.7.2 - ts-declaration-location: 1.0.7(typescript@5.8.3) + semver: 7.7.3 + ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - - supports-color - typescript - eslint-plugin-perfectionist@4.14.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-perfectionist@4.15.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color @@ -2262,10 +2263,10 @@ snapshots: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-promise@7.2.1(eslint@9.37.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - eslint: 9.29.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + eslint: 9.37.0(jiti@2.6.1) eslint-scope@8.4.0: dependencies: @@ -2276,17 +2277,17 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.29.0(jiti@2.4.2): + eslint@9.37.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.1 - '@eslint/config-helpers': 0.2.3 - '@eslint/core': 0.14.0 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.4.0 + '@eslint/core': 0.16.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.29.0 - '@eslint/plugin-kit': 0.3.2 - '@humanfs/node': 0.16.6 + '@eslint/js': 9.37.0 + '@eslint/plugin-kit': 0.4.0 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -2294,7 +2295,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -2314,7 +2315,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -2354,9 +2355,9 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.6(picomatch@4.0.2): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 file-entry-cache@8.0.0: dependencies: @@ -2388,7 +2389,7 @@ snapshots: get-caller-file@2.0.5: {} - get-tsconfig@4.10.1: + get-tsconfig@4.12.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -2413,7 +2414,9 @@ snapshots: globals@15.15.0: {} - globals@16.2.0: {} + globals@16.4.0: {} + + globrex@0.1.2: {} graceful-fs@4.2.11: {} @@ -2474,7 +2477,7 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -2485,7 +2488,7 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jiti@2.4.2: {} + jiti@2.6.1: {} js-yaml@4.1.0: dependencies: @@ -2520,7 +2523,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 make-error@1.3.6: {} @@ -2572,7 +2575,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.5: {} + nanoid@5.1.6: {} nanospinner@1.2.2: dependencies: @@ -2582,7 +2585,7 @@ snapshots: nanostores@1.0.1: {} - napi-postinstall@0.2.4: {} + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -2631,7 +2634,7 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} + picomatch@4.0.3: {} postcss-parser-tests@8.9.0: dependencies: @@ -2670,7 +2673,7 @@ snapshots: dependencies: mri: 1.2.0 - semver@7.7.2: {} + semver@7.7.3: {} shebang-command@2.0.0: dependencies: @@ -2680,23 +2683,23 @@ snapshots: signal-exit@4.1.0: {} - simple-git-hooks@2.13.0: {} + simple-git-hooks@2.13.1: {} size-limit@11.2.0: dependencies: bytes-iec: 3.1.1 chokidar: 4.0.3 - jiti: 2.4.2 + jiti: 2.6.1 lilconfig: 3.1.3 nanospinner: 1.2.2 picocolors: 1.1.1 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 source-map-js@1.2.1: {} source-map@0.6.1: {} - stable-hash-x@0.1.1: {} + stable-hash-x@0.2.0: {} string-width@4.2.3: dependencies: @@ -2708,15 +2711,15 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.2 strip-json-comments@3.1.1: {} @@ -2727,7 +2730,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: optional: true - tapable@2.2.2: {} + tapable@2.3.0: {} test-exclude@7.0.1: dependencies: @@ -2735,39 +2738,39 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - ts-declaration-location@1.0.7(typescript@5.8.3): + ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: - picomatch: 4.0.2 - typescript: 5.8.3 + picomatch: 4.0.3 + typescript: 5.9.3 - ts-node@10.9.2(@types/node@24.0.3)(typescript@5.8.3): + ts-node@10.9.2(@types/node@24.8.1)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.0.3 + '@types/node': 24.8.1 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -2778,47 +2781,48 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - typescript@5.8.3: {} + typescript@5.9.3: {} - undici-types@7.8.0: {} + undici-types@7.14.0: {} unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unrs-resolver@1.9.0: + unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.2.4 + napi-postinstall: 0.3.4 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.0 - '@unrs/resolver-binding-android-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-x64': 1.9.0 - '@unrs/resolver-binding-freebsd-x64': 1.9.0 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.0 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.0 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-musl': 1.9.0 - '@unrs/resolver-binding-wasm32-wasi': 1.9.0 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.0 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.0 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.0 + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 uri-js@4.4.1: dependencies: @@ -2837,7 +2841,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -2846,7 +2850,7 @@ snapshots: '@types/unist': 3.0.3 vfile: 6.0.3 - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -2854,7 +2858,7 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 which@2.0.2: dependencies: @@ -2870,9 +2874,9 @@ snapshots: wrap-ansi@8.1.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 ws@8.18.3: {} diff --git a/test/css-syntax-error.test.ts b/test/css-syntax-error.test.ts index 0467896c1..47040beb2 100755 --- a/test/css-syntax-error.test.ts +++ b/test/css-syntax-error.test.ts @@ -246,7 +246,6 @@ test('highlight cut minified css with colors', () => { pico.yellow(';') + 'background' + pico.yellow(';') + - '' + 'text-decoration' + pico.yellow(':') + 'none' + diff --git a/test/map.test.ts b/test/map.test.ts old mode 100755 new mode 100644 From 1329142fc7d4b965bf9819ffa27ac2248f07ab20 Mon Sep 17 00:00:00 2001 From: Hyper-Z11 <114817308+hyperz111@users.noreply.github.com> Date: Thu, 1 Jan 2026 01:25:47 +0700 Subject: [PATCH 2908/3047] chore: speed up space-only string check in lib/parser.js (#2064) * chore: fast blank string check * chore: use smaller code --- lib/parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/parser.js b/lib/parser.js index 64fb5d89b..b29ff5b2d 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -176,7 +176,7 @@ class Parser { node.source.end.offset++ let text = token[1].slice(2, -2) - if (/^\s*$/.test(text)) { + if (!text.trim()) { node.text = '' node.raws.left = text node.raws.right = '' From 41e739a940963c87519c8cc532ed41287129431b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 18 Feb 2026 15:05:22 +0000 Subject: [PATCH 2909/3047] Remove banner --- README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/README.md b/README.md index e89c565b5..afc754afc 100644 --- a/README.md +++ b/README.md @@ -30,16 +30,6 @@ and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some o PostCSS needs your support. We are accepting donations [at Open Collective](https://opencollective.com/postcss/). -
- - Warp sponsorship - - -[Warp, built for coding with multiple agents](https://go.warp.dev/postcss) -
-
-
- Sponsored by Tailwind CSS       From 497daef7972d5c7634e30a28c3c1368587df446d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:06:42 +0000 Subject: [PATCH 2910/3047] Speed up source map annotation cleaning by moving from RegExp --- lib/map-generator.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/map-generator.js b/lib/map-generator.js index 89069d3e4..df880ac99 100644 --- a/lib/map-generator.js +++ b/lib/map-generator.js @@ -75,7 +75,15 @@ class MapGenerator { } } } else if (this.css) { - this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, '') + let startIndex + while ((startIndex = this.css.lastIndexOf('/*#')) !== -1) { + let endIndex = this.css.indexOf('*/', startIndex + 3) + if (endIndex === -1) break + while (startIndex > 0 && this.css[startIndex - 1] === '\n') { + startIndex-- + } + this.css = this.css.slice(0, startIndex) + this.css.slice(endIndex + 2) + } } } From 52db53ea4339b117e4d41ddd1b65bd914a89b44e Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:08:39 +0000 Subject: [PATCH 2911/3047] Update dependencies --- .github/workflows/release.yml | 4 +- .github/workflows/test.yml | 16 +- package.json | 18 +- pnpm-lock.yaml | 1249 +++++++++++++++------------------ 4 files changed, 580 insertions(+), 707 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ab42bc140..7df44d585 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Extract the changelog id: changelog run: | @@ -36,7 +36,7 @@ jobs: echo "EOF" >> $GITHUB_OUTPUT - name: Create the release if: steps.changelog.outputs.changelog_content != '' - uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1 + uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 with: name: ${{ github.ref_name }} body: '${{ steps.changelog.outputs.changelog_content }}' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 942b7514d..8264212db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 10 - name: Install Node.js - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 + uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version: 25 cache: pnpm @@ -38,13 +38,13 @@ jobs: name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 10 - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 + uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version: ${{ matrix.node-version }} cache: pnpm @@ -64,7 +64,7 @@ jobs: name: Node.js ${{ matrix.node-version }} Quick steps: - name: Checkout the repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: @@ -72,7 +72,7 @@ jobs: env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 + uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version: ${{ matrix.node-version }} - name: Install dependencies @@ -86,13 +86,13 @@ jobs: name: Windows Quick steps: - name: Checkout the repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 with: version: 10 - name: Install Node.js LTS - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 + uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version: 24 cache: pnpm diff --git a/package.json b/package.json index 5da06ace1..9bd180f83 100644 --- a/package.json +++ b/package.json @@ -90,21 +90,21 @@ "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^56.1.0", - "@size-limit/preset-small-lib": "^11.2.0", - "@types/node": "^24.8.1", - "actions-up": "^1.4.1", - "c8": "^10.1.3", + "@logux/eslint-config": "^57.0.2", + "@size-limit/preset-small-lib": "^12.0.0", + "@types/node": "^25.3.3", + "actions-up": "^1.12.0", + "c8": "^11.0.0", "check-dts": "^0.9.0", - "clean-publish": "^5.2.2", + "clean-publish": "^6.0.3", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^9.37.0", - "multiocular": "^0.8.1", + "eslint": "^10.0.2", + "multiocular": "^0.8.2", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", "simple-git-hooks": "^2.13.1", - "size-limit": "^11.2.0", + "size-limit": "^12.0.0", "strip-ansi": "^6.0.1", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28f997402..fefa4f17f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,35 +19,35 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^56.1.0 - version: 56.1.0(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^57.0.2 + version: 57.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) '@size-limit/preset-small-lib': - specifier: ^11.2.0 - version: 11.2.0(size-limit@11.2.0) + specifier: ^12.0.0 + version: 12.0.0(size-limit@12.0.0(jiti@2.6.1)) '@types/node': - specifier: ^24.8.1 - version: 24.8.1 + specifier: ^25.3.3 + version: 25.3.3 actions-up: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^1.12.0 + version: 1.12.0 c8: - specifier: ^10.1.3 - version: 10.1.3 + specifier: ^11.0.0 + version: 11.0.0 check-dts: specifier: ^0.9.0 version: 0.9.0(typescript@5.9.3) clean-publish: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^6.0.3 + version: 6.0.3 concat-with-sourcemaps: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^9.37.0 - version: 9.37.0(jiti@2.6.1) + specifier: ^10.0.2 + version: 10.0.2(jiti@2.6.1) multiocular: - specifier: ^0.8.1 - version: 0.8.1 + specifier: ^0.8.2 + version: 0.8.2 nanodelay: specifier: ^1.0.8 version: 1.0.8 @@ -61,14 +61,14 @@ importers: specifier: ^2.13.1 version: 2.13.1 size-limit: - specifier: ^11.2.0 - version: 11.2.0 + specifier: ^12.0.0 + version: 12.0.0(jiti@2.6.1) strip-ansi: specifier: ^6.0.1 version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.8.1)(typescript@5.9.3) + version: 10.9.2(@types/node@25.3.3)(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -86,208 +86,204 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.5.0': - resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.5.0': - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.25.11': - resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.11': - resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.11': - resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.11': - resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.11': - resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.11': - resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.11': - resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.11': - resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.11': - resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.11': - resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.11': - resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.11': - resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.11': - resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.11': - resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.11': - resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.11': - resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.11': - resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.11': - resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.11': - resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.11': - resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.11': - resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.11': - resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.11': - resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.11': - resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.11': - resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.11': - resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.23.2': + resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.4.0': - resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.5.2': + resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@1.1.0': + resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + '@eslint/eslintrc@3.3.4': + resolution: {integrity: sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.37.0': - resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@3.0.2': + resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.4.0': - resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.6.0': + resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -305,18 +301,6 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} @@ -344,11 +328,11 @@ packages: resolution: {integrity: sha512-VbgVkEloAe2ym5w0cjyRI16Eeyk2R0BgJa9pMYT1FcJEhFnzrB23E0ExIEhrok0iD48bFh7goledwmDLmgWaiw==} engines: {node: ^20.0.0 || >=22.0.0} - '@logux/eslint-config@56.1.0': - resolution: {integrity: sha512-o0fsiWHpj0T+ZgnHg2T/wBjLTztYkhQnk6cckZ8zmGA9hz+wX2Y+s34u2VB/AaxOxFOrOF+bQIUGacOzPCledA==} + '@logux/eslint-config@57.0.2': + resolution: {integrity: sha512-oUCMUUckJOCQMs4QwwQiptyk+g/sXAUBh7ab6Ewvq89o2zZtAJuL2lz1YOj3z5Q8yhBf2q9jyNnX0RatwL3FXw==} engines: {node: '>=18.0.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint-plugin-svelte: ^3.0.0 svelte: ^4.2.12 || ^5.0.0 svelte-eslint-parser: ^1.0.0 @@ -379,29 +363,29 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + '@profoundlogic/hogan@3.0.4': + resolution: {integrity: sha512-pmNVGuooS30Mm7YbZd5T7E5zYVO6D5Ct91sn4T39mUvMUc3sCGridcnhAufL1/Bz2QzAtzEn0agNrdk3+5yWzw==} + hasBin: true - '@size-limit/esbuild@11.2.0': - resolution: {integrity: sha512-vSg9H0WxGQPRzDnBzeDyD9XT0Zdq0L+AI3+77/JhxznbSCMJMMr8ndaWVQRhOsixl97N0oD4pRFw2+R1Lcvi6A==} - engines: {node: ^18.0.0 || >=20.0.0} + '@size-limit/esbuild@12.0.0': + resolution: {integrity: sha512-r9i+HrtunIu7wAPtqD3t4DqfYin3kxPoMAv8cidkzlCS69IYCe3EG2UbQa10AdvQyaHTEK+MPkr9ifUd3W29og==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - size-limit: 11.2.0 + size-limit: 12.0.0 - '@size-limit/file@11.2.0': - resolution: {integrity: sha512-OZHE3putEkQ/fgzz3Tp/0hSmfVo3wyTpOJSRNm6AmcwX4Nm9YtTfbQQ/hZRwbBFR23S7x2Sd9EbqYzngKwbRoA==} - engines: {node: ^18.0.0 || >=20.0.0} + '@size-limit/file@12.0.0': + resolution: {integrity: sha512-OzKYpDzWJ2jo6cAIzVsaPuvzZTmMLDoVCViEvsctmImxpXzwJZcuBEpPohFKKdgVdZuNTU8WstmvywPq55Njdw==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - size-limit: 11.2.0 + size-limit: 12.0.0 - '@size-limit/preset-small-lib@11.2.0': - resolution: {integrity: sha512-RFbbIVfv8/QDgTPyXzjo5NKO6CYyK5Uq5xtNLHLbw5RgSKrgo8WpiB/fNivZuNd/5Wk0s91PtaJ9ThNcnFuI3g==} + '@size-limit/preset-small-lib@12.0.0': + resolution: {integrity: sha512-HHHVQjZmj+8vg7qsHs1dd3Hmn8ygUsE5O2CfxnbCbHOGyUw7VodZGERh/+5ogVrF2DYza/DIo2PnCJZZETdTRA==} peerDependencies: - size-limit: 11.2.0 + size-limit: 12.0.0 - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -415,6 +399,9 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -424,8 +411,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@24.8.1': - resolution: {integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==} + '@types/node@25.3.3': + resolution: {integrity: sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -433,63 +420,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.46.1': - resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.1 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/parser': ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.46.1': - resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.1': - resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.46.1': - resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.46.1': - resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.46.1': - resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.46.1': - resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.46.1': - resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.46.1': - resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.46.1': - resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -603,22 +590,22 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true - actions-up@1.4.1: - resolution: {integrity: sha512-hjIVnEh+2JGM/MlDaAfKrb5gfmPr65TWE2s1XM9Spp6QjBtL0bMePCfxqcspV+aZCMepgO6sS1WmgxA/xNCF2Q==} + actions-up@1.12.0: + resolution: {integrity: sha512-EFAv3XX3gfjfWhy5e6Kw1PpC0DrTSuK4e77xoS27hqcrjf92C+yCs05tIsBPGFZv8+EichF8HMTtimuMj2sv+A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -628,18 +615,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -649,11 +628,16 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -663,9 +647,9 @@ packages: resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} engines: {node: '>= 0.8'} - c8@10.1.3: - resolution: {integrity: sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==} - engines: {node: '>=18'} + c8@11.0.0: + resolution: {integrity: sha512-e/uRViGHSVIJv7zsaDKM7VRn2390TgHXqUSvYwPHBQaU6L7E9L0n9JbdkwdYPvshDT0KymBmmlwSpms3yBaMNg==} + engines: {node: 20 || >=22} hasBin: true peerDependencies: monocart-coverage-reports: ^2 @@ -681,10 +665,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - check-dts@0.9.0: resolution: {integrity: sha512-xAs/RKFiB1dHEFPK3+ACk0f2WdngQywmghiPsKJF2JmrsOHCQAfcqkD7C52V3FjwPtU5s8sdTJwX4pLP/66+Bw==} engines: {node: '>=18.0.0'} @@ -692,13 +672,9 @@ packages: peerDependencies: typescript: '>=4.0.0' - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - clean-publish@5.2.2: - resolution: {integrity: sha512-sqM9uAXG+K7QzEn0Ur00otEHfbQTsyle4enj/388ZZQhG6daXMJ15dfD/ALsFCQCJvMZPxYwDx/QrdcdzWVPyg==} - engines: {node: '>= 18.0.0'} + clean-publish@6.0.3: + resolution: {integrity: sha512-brittZyUitwhD8t9a2hgy7sRONXyjw6a3jezd70cLdOfhipbsZV+9zLqN/mRgPxD9LwhZPMZEZU12kE0G9liMA==} + engines: {node: '>= 20.0.0'} hasBin: true cliui@8.0.1: @@ -712,8 +688,8 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + comment-parser@1.4.5: + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} engines: {node: '>= 12.0.0'} concat-map@0.0.1: @@ -725,8 +701,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} create-require@1.1.1: @@ -760,44 +736,38 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - diff2html@3.4.52: - resolution: {integrity: sha512-qhMg8/I3sZ4zm/6R/Kh0xd6qG6Vm86w6M+C9W+DuH1V8ACz+1cgEC8/k0ucjv6AGqZWzHm/8G1gh7IlrUqCMhg==} + diff2html@3.4.56: + resolution: {integrity: sha512-u9gfn+BlbHcyO7vItCIC4z49LJDUt31tODzOfAuJ5R1E7IdlRL6KjugcB9zOpejD+XiR+dDZbsnHSQ3g6A/u8A==} engines: {node: '>=12'} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + diff@5.2.2: + resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + diff@8.0.3: + resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} engines: {node: '>=0.3.1'} - dompurify@3.3.0: - resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dompurify@3.3.1: + resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + enhanced-resolve@5.20.0: + resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} engines: {node: '>=10.13.0'} enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - esbuild@0.25.11: - resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} hasBin: true @@ -846,20 +816,20 @@ packages: eslint-import-resolver-node: optional: true - eslint-plugin-n@17.23.1: - resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} + eslint-plugin-n@17.24.0: + resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@4.15.1: - resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==} - engines: {node: ^18.0.0 || >=20.0.0} + eslint-plugin-perfectionist@5.6.0: + resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} + engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: - eslint: '>=8.45.0' + eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-prefer-let@4.0.0: - resolution: {integrity: sha512-X4ep5PMO1320HKaNC9DM5+p6XvOhwv+RcqGjhv3aiw9iAtHhiFtdIUB5l0Zya0iM22ys2BGKzrNI9Xpw/ZHooQ==} + eslint-plugin-prefer-let@4.1.0: + resolution: {integrity: sha512-HTaW2TLQiYeiSBU0TMgU7Uog2ao28BSLLxVWAJadr3j9Bvh5Sz8gh5soW4d+7tV3eZL0sv9QRpTX2zDBRsqdIQ==} engines: {node: '>=0.10.0'} eslint-plugin-promise@7.2.1: @@ -868,9 +838,9 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.1: + resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} @@ -880,9 +850,13 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.37.0: - resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.0.2: + resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: jiti: '*' @@ -894,8 +868,12 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + espree@11.1.1: + resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -923,8 +901,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} @@ -965,8 +943,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-tsconfig@4.12.0: - resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -976,9 +954,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} @@ -988,8 +966,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.4.0: - resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} + globals@17.4.0: + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} engines: {node: '>=18'} globrex@0.1.2: @@ -998,9 +976,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1013,14 +988,6 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} - highlight.js@11.9.0: - resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} - engines: {node: '>=12.0.0'} - - hogan.js@3.0.2: - resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==} - hasBin: true - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -1075,15 +1042,12 @@ packages: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true json-buffer@3.0.1: @@ -1114,11 +1078,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.6: + resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} + engines: {node: 20 || >=22} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -1127,8 +1089,8 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - marked@16.4.1: - resolution: {integrity: sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==} + marked@17.0.3: + resolution: {integrity: sha512-jt1v2ObpyOKR8p4XaUJVk3YWRJ5n+i4+rjQopxvV32rSndTJXvIzuUdWWIy/1pFQMkQmvTXawzDNqOH/CUmx6A==} engines: {node: '>= 20'} hasBin: true @@ -1140,25 +1102,17 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - mkdirp@0.3.0: - resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} - deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -1166,8 +1120,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multiocular@0.8.1: - resolution: {integrity: sha512-gMSP/kBS/rEZwoHpREN9eOLQeePt/t4mkotP5GeWuzH7FkIDTf49Xr60+VvChF8tS0eD3rilq+JaVxtj6pdKfw==} + multiocular@0.8.2: + resolution: {integrity: sha512-OZICP9j79FGWZ8/ugQ57Do7ljnWUtcLv13/ic4tP0OKw7XauWjYsA9Cv5q7Qc9lG6kWy8A4hMHw8J0ln1v359g==} engines: {node: ^22.16.0 || >=24.0.0} hasBin: true @@ -1195,8 +1149,8 @@ packages: resolution: {integrity: sha512-wvmmALNstRRhLhy7RV11NCRY2k1zxstImiju4VyyKNNRIKDVjyBtmEd/Q4G82/3dN4VSTe+0PRR3DUAASSbEEQ==} engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || ^16.0.0 || ^18.0.0 || >=20.0.0} - nanostores@1.0.1: - resolution: {integrity: sha512-kNZ9xnoJYKg/AfxjrVL4SS0fKX++4awQReGqWnwTRHxeHGZ1FJFVgTqr/eMrNQdp0Tz7M7tG/TDaX8QfHDwVCw==} + nanostores@1.1.1: + resolution: {integrity: sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg==} engines: {node: ^20.0.0 || >=22.0.0} napi-postinstall@0.3.4: @@ -1227,9 +1181,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -1245,9 +1196,9 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1274,10 +1225,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -1293,8 +1240,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} hasBin: true @@ -1309,8 +1256,8 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} hasBin: true @@ -1330,10 +1277,15 @@ packages: resolution: {integrity: sha512-WszCLXwT4h2k1ufIXAgsbiTOazqqevFCIncOuUBZJ91DdvWcC5+OFkluWRQPrcuSYd8fjq+o2y1QfWqYMoAToQ==} hasBin: true - size-limit@11.2.0: - resolution: {integrity: sha512-2kpQq2DD/pRpx3Tal/qRW1SYwcIeQ0iq8li5CJHQgOC+FtPn2BVmuDtzUCgNnpCrbgtfEHqh+iWzxK+Tq6C+RQ==} - engines: {node: ^18.0.0 || >=20.0.0} + size-limit@12.0.0: + resolution: {integrity: sha512-JBG8dioIs0m2kHOhs9jD6E/tZKD08vmbf2bfqj/rJyNWqJxk/ZcakixjhYtsqdbi+AKVbfPkt3g2RRZiKaizYA==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true + peerDependencies: + jiti: ^2.0.0 + peerDependenciesMeta: + jiti: + optional: true source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} @@ -1351,18 +1303,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} - engines: {node: '>=12'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -1379,8 +1323,12 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + test-exclude@8.0.0: + resolution: {integrity: sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==} + engines: {node: 20 || >=22} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} tinyglobby@0.2.15: @@ -1391,8 +1339,8 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -1423,11 +1371,11 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.46.1: - resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==} + typescript-eslint@8.56.1: + resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' typescript@5.9.3: @@ -1435,8 +1383,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@7.14.0: - resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -1485,12 +1433,8 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1505,8 +1449,8 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} hasBin: true @@ -1534,13 +1478,13 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.5.0': + '@emnapi/core@1.8.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.5.0': + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 optional: true @@ -1550,128 +1494,126 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.11': + '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/android-arm64@0.25.11': + '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm@0.25.11': + '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-x64@0.25.11': + '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.25.11': + '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-x64@0.25.11': + '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.25.11': + '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.25.11': + '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/linux-arm64@0.25.11': + '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm@0.25.11': + '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-ia32@0.25.11': + '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-loong64@0.25.11': + '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-mips64el@0.25.11': + '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-ppc64@0.25.11': + '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.25.11': + '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-s390x@0.25.11': + '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-x64@0.25.11': + '@esbuild/linux-x64@0.27.3': optional: true - '@esbuild/netbsd-arm64@0.25.11': + '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.25.11': + '@esbuild/netbsd-x64@0.27.3': optional: true - '@esbuild/openbsd-arm64@0.25.11': + '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.25.11': + '@esbuild/openbsd-x64@0.27.3': optional: true - '@esbuild/openharmony-arm64@0.25.11': + '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/sunos-x64@0.25.11': + '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/win32-arm64@0.25.11': + '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-ia32@0.25.11': + '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-x64@0.25.11': + '@esbuild/win32-x64@0.27.3': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.23.2': dependencies: - '@eslint/object-schema': 2.1.6 + '@eslint/object-schema': 3.0.2 debug: 4.4.3 - minimatch: 3.1.2 + minimatch: 10.2.4 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.0': + '@eslint/config-helpers@0.5.2': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 1.1.0 - '@eslint/core@0.16.0': + '@eslint/core@1.1.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@3.3.4': dependencies: - ajv: 6.12.6 + ajv: 6.14.0 debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 + js-yaml: 4.1.1 + minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.37.0': {} - - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@3.0.2': {} - '@eslint/plugin-kit@0.4.0': + '@eslint/plugin-kit@0.6.0': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 1.1.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -1685,21 +1627,6 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@istanbuljs/schema@0.1.3': {} '@jridgewell/resolve-uri@3.1.2': {} @@ -1724,17 +1651,17 @@ snapshots: dependencies: nanoevents: 9.1.0 - '@logux/eslint-config@56.1.0(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint/eslintrc': 3.3.1 - eslint: 9.37.0(jiti@2.6.1) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1)) - eslint-plugin-n: 17.23.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-perfectionist: 4.15.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-prefer-let: 4.0.0 - eslint-plugin-promise: 7.2.1(eslint@9.37.0(jiti@2.6.1)) - globals: 16.4.0 - typescript-eslint: 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@logux/eslint-config@57.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint/eslintrc': 3.3.4 + eslint: 10.0.2(jiti@2.6.1) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-n: 17.24.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-perfectionist: 5.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-prefer-let: 4.1.0 + eslint-plugin-promise: 7.2.1(eslint@10.0.2(jiti@2.6.1)) + globals: 17.4.0 + typescript-eslint: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node @@ -1745,21 +1672,21 @@ snapshots: dependencies: '@logux/actions': 0.5.0(@logux/core@0.10.0) '@logux/core': 0.10.0 - cookie: 1.0.2 - fastq: 1.19.1 + cookie: 1.1.1 + fastq: 1.20.1 nanoevents: 9.1.0 nanoid: 5.1.6 tinyglobby: 0.2.15 url-pattern: 1.0.3 - ws: 8.18.3 + ws: 8.19.0 transitivePeerDependencies: - bufferutil - utf-8-validate '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 '@tybys/wasm-util': 0.10.1 optional: true @@ -1773,28 +1700,29 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 - '@pkgjs/parseargs@0.11.0': - optional: true + '@profoundlogic/hogan@3.0.4': + dependencies: + nopt: 1.0.10 - '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': + '@size-limit/esbuild@12.0.0(size-limit@12.0.0(jiti@2.6.1))': dependencies: - esbuild: 0.25.11 + esbuild: 0.27.3 nanoid: 5.1.6 - size-limit: 11.2.0 + size-limit: 12.0.0(jiti@2.6.1) - '@size-limit/file@11.2.0(size-limit@11.2.0)': + '@size-limit/file@12.0.0(size-limit@12.0.0(jiti@2.6.1))': dependencies: - size-limit: 11.2.0 + size-limit: 12.0.0(jiti@2.6.1) - '@size-limit/preset-small-lib@11.2.0(size-limit@11.2.0)': + '@size-limit/preset-small-lib@12.0.0(size-limit@12.0.0(jiti@2.6.1))': dependencies: - '@size-limit/esbuild': 11.2.0(size-limit@11.2.0) - '@size-limit/file': 11.2.0(size-limit@11.2.0) - size-limit: 11.2.0 + '@size-limit/esbuild': 12.0.0(size-limit@12.0.0(jiti@2.6.1)) + '@size-limit/file': 12.0.0(size-limit@12.0.0(jiti@2.6.1)) + size-limit: 12.0.0(jiti@2.6.1) - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.12': {} '@tsconfig/node12@1.0.11': {} @@ -1807,113 +1735,113 @@ snapshots: tslib: 2.8.1 optional: true + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.8': {} '@types/istanbul-lib-coverage@2.0.6': {} '@types/json-schema@7.0.15': {} - '@types/node@24.8.1': + '@types/node@25.3.3': dependencies: - undici-types: 7.14.0 + undici-types: 7.18.2 '@types/trusted-types@2.0.7': optional: true '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.1 - eslint: 9.37.0(jiti@2.6.1) - graphemer: 1.4.0 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 + eslint: 10.0.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.46.1': + '@typescript-eslint/scope-manager@8.56.1': dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/visitor-keys': 8.56.1 - '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) - ts-api-utils: 2.1.0(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.46.1': {} + '@typescript-eslint/types@8.56.1': {} - '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 + '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 2.1.0(typescript@5.9.3) + minimatch: 10.2.4 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.46.1': + '@typescript-eslint/visitor-keys@8.56.1': dependencies: - '@typescript-eslint/types': 8.46.1 - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.56.1 + eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -1976,26 +1904,26 @@ snapshots: abbrev@1.1.1: {} - acorn-jsx@5.3.2(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn-walk@8.3.4: + acorn-walk@8.3.5: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn@8.15.0: {} + acorn@8.16.0: {} - actions-up@1.4.1: + actions-up@1.12.0: dependencies: cac: 6.7.14 enquirer: 2.4.1 nanospinner: 1.2.2 picocolors: 1.1.1 - semver: 7.7.3 - yaml: 2.8.1 + semver: 7.7.4 + yaml: 2.8.2 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -2006,28 +1934,26 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.2.2: {} - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.3: {} - arg@4.1.3: {} argparse@2.0.1: {} balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@5.0.4: dependencies: - balanced-match: 1.0.2 + balanced-match: 4.0.4 braces@3.0.3: dependencies: @@ -2035,7 +1961,7 @@ snapshots: bytes-iec@3.1.1: {} - c8@10.1.3: + c8@11.0.0: dependencies: '@bcoe/v8-coverage': 1.0.2 '@istanbuljs/schema': 0.1.3 @@ -2044,7 +1970,7 @@ snapshots: istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 - test-exclude: 7.0.1 + test-exclude: 8.0.0 v8-to-istanbul: 9.3.0 yargs: 17.7.2 yargs-parser: 21.1.1 @@ -2053,11 +1979,6 @@ snapshots: callsites@3.1.0: {} - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - check-dts@0.9.0(typescript@5.9.3): dependencies: fast-glob: 3.3.3 @@ -2066,16 +1987,12 @@ snapshots: typescript: 5.9.3 vfile-location: 5.0.3 - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - clean-publish@5.2.2: + clean-publish@6.0.3: dependencies: - cross-spawn: 7.0.6 - fast-glob: 3.3.3 lilconfig: 3.1.3 - micromatch: 4.0.8 + picomatch: 4.0.3 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 cliui@8.0.1: dependencies: @@ -2089,7 +2006,7 @@ snapshots: color-name@1.1.4: {} - comment-parser@1.4.1: {} + comment-parser@1.4.5: {} concat-map@0.0.1: {} @@ -2099,7 +2016,7 @@ snapshots: convert-source-map@2.0.0: {} - cookie@1.0.2: {} + cookie@1.1.1: {} create-require@1.1.1: {} @@ -2122,30 +2039,26 @@ snapshots: dequal@2.0.3: {} - diff2html@3.4.52: + diff2html@3.4.56: dependencies: - diff: 7.0.0 - hogan.js: 3.0.2 + '@profoundlogic/hogan': 3.0.4 + diff: 8.0.3 optionalDependencies: - highlight.js: 11.9.0 + highlight.js: 11.11.1 - diff@4.0.2: {} + diff@4.0.4: {} - diff@5.2.0: {} + diff@5.2.2: {} - diff@7.0.0: {} + diff@8.0.3: {} - dompurify@3.3.0: + dompurify@3.3.1: optionalDependencies: '@types/trusted-types': 2.0.7 - eastasianwidth@0.2.0: {} - emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - - enhanced-resolve@5.18.3: + enhanced-resolve@5.20.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 @@ -2155,47 +2068,47 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - esbuild@0.25.11: + esbuild@0.27.3: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.11 - '@esbuild/android-arm': 0.25.11 - '@esbuild/android-arm64': 0.25.11 - '@esbuild/android-x64': 0.25.11 - '@esbuild/darwin-arm64': 0.25.11 - '@esbuild/darwin-x64': 0.25.11 - '@esbuild/freebsd-arm64': 0.25.11 - '@esbuild/freebsd-x64': 0.25.11 - '@esbuild/linux-arm': 0.25.11 - '@esbuild/linux-arm64': 0.25.11 - '@esbuild/linux-ia32': 0.25.11 - '@esbuild/linux-loong64': 0.25.11 - '@esbuild/linux-mips64el': 0.25.11 - '@esbuild/linux-ppc64': 0.25.11 - '@esbuild/linux-riscv64': 0.25.11 - '@esbuild/linux-s390x': 0.25.11 - '@esbuild/linux-x64': 0.25.11 - '@esbuild/netbsd-arm64': 0.25.11 - '@esbuild/netbsd-x64': 0.25.11 - '@esbuild/openbsd-arm64': 0.25.11 - '@esbuild/openbsd-x64': 0.25.11 - '@esbuild/openharmony-arm64': 0.25.11 - '@esbuild/sunos-x64': 0.25.11 - '@esbuild/win32-arm64': 0.25.11 - '@esbuild/win32-ia32': 0.25.11 - '@esbuild/win32-x64': 0.25.11 + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.37.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) - semver: 7.7.3 + eslint: 10.0.2(jiti@2.6.1) + semver: 7.7.4 eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.12.0 + get-tsconfig: 4.13.6 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.11.1 @@ -2204,72 +2117,73 @@ snapshots: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color optional: true - eslint-plugin-es-x@7.8.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.1 - eslint: 9.37.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + eslint: 10.0.2(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.46.1 - comment-parser: 1.4.1 + '@typescript-eslint/types': 8.56.1 + comment-parser: 1.4.5 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.0.3 - semver: 7.7.3 + minimatch: 10.2.4 + semver: 7.7.4 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.23.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - enhanced-resolve: 5.18.3 - eslint: 9.37.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@9.37.0(jiti@2.6.1)) - get-tsconfig: 4.12.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + enhanced-resolve: 5.20.0 + eslint: 10.0.2(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.0.2(jiti@2.6.1)) + get-tsconfig: 4.13.6 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 - semver: 7.7.3 + semver: 7.7.4 ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - typescript - eslint-plugin-perfectionist@4.15.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@5.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-prefer-let@4.0.0: + eslint-plugin-prefer-let@4.1.0: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-promise@7.2.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + eslint: 10.0.2(jiti@2.6.1) - eslint-scope@8.4.0: + eslint-scope@9.1.1: dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 esrecurse: 4.3.0 estraverse: 5.3.0 @@ -2277,30 +2191,28 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.37.0(jiti@2.6.1): + eslint-visitor-keys@5.0.1: {} + + eslint@10.0.2(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.4.0 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.37.0 - '@eslint/plugin-kit': 0.4.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.2 + '@eslint/config-helpers': 0.5.2 + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 + ajv: 6.14.0 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 + eslint-scope: 9.1.1 + eslint-visitor-keys: 5.0.1 + espree: 11.1.1 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -2310,8 +2222,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 10.2.4 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -2321,11 +2232,17 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 - esquery@1.6.0: + espree@11.1.1: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -2351,7 +2268,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -2389,7 +2306,7 @@ snapshots: get-caller-file@2.0.5: {} - get-tsconfig@4.12.0: + get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -2401,27 +2318,22 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.5: + glob@13.0.6: dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 globals@14.0.0: {} globals@15.15.0: {} - globals@16.4.0: {} + globals@17.4.0: {} globrex@0.1.2: {} graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - has-flag@4.0.0: {} hasown@2.0.2: @@ -2431,14 +2343,6 @@ snapshots: highlight.js@11.11.1: {} - highlight.js@11.9.0: - optional: true - - hogan.js@3.0.2: - dependencies: - mkdirp: 0.3.0 - nopt: 1.0.10 - html-escaper@2.0.2: {} ignore@5.3.2: {} @@ -2482,15 +2386,10 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@2.6.1: {} + jiti@2.6.1: + optional: true - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -2517,17 +2416,15 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.merge@4.6.2: {} - - lru-cache@10.4.3: {} + lru-cache@11.2.6: {} make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 make-error@1.3.6: {} - marked@16.4.1: {} + marked@17.0.3: {} merge2@1.4.1: {} @@ -2536,35 +2433,29 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - minimatch@10.0.3: + minimatch@10.2.4: dependencies: - '@isaacs/brace-expansion': 5.0.0 + brace-expansion: 5.0.4 - minimatch@3.1.2: + minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - minipass@7.1.2: {} - - mkdirp@0.3.0: {} + minipass@7.1.3: {} mri@1.2.0: {} ms@2.1.3: {} - multiocular@0.8.1: + multiocular@0.8.2: dependencies: '@logux/server': 0.14.0 - diff2html: 3.4.52 - dompurify: 3.3.0 + diff2html: 3.4.56 + dompurify: 3.3.1 highlight.js: 11.11.1 - marked: 16.4.1 - nanostores: 1.0.1 - yaml: 2.8.1 + marked: 17.0.3 + nanostores: 1.1.1 + yaml: 2.8.2 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -2583,7 +2474,7 @@ snapshots: nanospy@1.0.0: {} - nanostores@1.0.1: {} + nanostores@1.1.1: {} napi-postinstall@0.3.4: {} @@ -2612,8 +2503,6 @@ snapshots: dependencies: p-limit: 3.1.0 - package-json-from-dist@1.0.1: {} - parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -2625,10 +2514,10 @@ snapshots: path-parse@1.0.7: optional: true - path-scurry@1.11.1: + path-scurry@2.0.2: dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 + lru-cache: 11.2.6 + minipass: 7.1.3 picocolors@1.1.1: {} @@ -2646,8 +2535,6 @@ snapshots: queue-microtask@1.2.3: {} - readdirp@4.1.2: {} - require-directory@2.1.1: {} requireindex@1.2.0: {} @@ -2656,7 +2543,7 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.10: + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 @@ -2673,7 +2560,7 @@ snapshots: dependencies: mri: 1.2.0 - semver@7.7.3: {} + semver@7.7.4: {} shebang-command@2.0.0: dependencies: @@ -2685,15 +2572,15 @@ snapshots: simple-git-hooks@2.13.1: {} - size-limit@11.2.0: + size-limit@12.0.0(jiti@2.6.1): dependencies: bytes-iec: 3.1.1 - chokidar: 4.0.3 - jiti: 2.6.1 lilconfig: 3.1.3 nanospinner: 1.2.2 picocolors: 1.1.1 tinyglobby: 0.2.15 + optionalDependencies: + jiti: 2.6.1 source-map-js@1.2.1: {} @@ -2707,20 +2594,10 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.2 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.2: - dependencies: - ansi-regex: 6.2.2 - strip-json-comments@3.1.1: {} supports-color@7.2.0: @@ -2732,11 +2609,13 @@ snapshots: tapable@2.3.0: {} - test-exclude@7.0.1: + test-exclude@8.0.0: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 - minimatch: 9.0.5 + glob: 13.0.6 + minimatch: 10.2.4 + + tinyexec@1.0.2: {} tinyglobby@0.2.15: dependencies: @@ -2747,7 +2626,7 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@2.1.0(typescript@5.9.3): + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -2756,19 +2635,19 @@ snapshots: picomatch: 4.0.3 typescript: 5.9.3 - ts-node@10.9.2(@types/node@24.8.1)(typescript@5.9.3): + ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.8.1 - acorn: 8.15.0 - acorn-walk: 8.3.4 + '@types/node': 25.3.3 + acorn: 8.16.0 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 4.0.4 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 @@ -2781,20 +2660,20 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color typescript@5.9.3: {} - undici-types@7.14.0: {} + undici-types@7.18.2: {} unist-util-stringify-position@4.0.0: dependencies: @@ -2833,7 +2712,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 5.2.0 + diff: 5.2.2 kleur: 4.1.5 sade: 1.8.1 @@ -2872,17 +2751,11 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.1.2 - - ws@8.18.3: {} + ws@8.19.0: {} y18n@5.0.8: {} - yaml@2.8.1: {} + yaml@2.8.2: {} yargs-parser@21.1.1: {} From 3fbc95172a26cd40db1a1d18a970a2edd4244c44 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:09:39 +0000 Subject: [PATCH 2912/3047] Fix uvu Node.js 25 support --- .npmignore | 1 + package.json | 5 +++++ patches/yargs@17.7.2.patch | 25 +++++++++++++++++++++++++ pnpm-lock.yaml | 9 +++++++-- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 patches/yargs@17.7.2.patch diff --git a/.npmignore b/.npmignore index d9ff01c3c..96b41ad96 100644 --- a/.npmignore +++ b/.npmignore @@ -4,3 +4,4 @@ test/ docs/ tsconfig.json eslint.config.mjs +patches diff --git a/package.json b/package.json index 9bd180f83..ac36f4f78 100644 --- a/package.json +++ b/package.json @@ -145,5 +145,10 @@ ], "clean-publish": { "cleanDocs": true + }, + "pnpm": { + "patchedDependencies": { + "yargs@17.7.2": "patches/yargs@17.7.2.patch" + } } } diff --git a/patches/yargs@17.7.2.patch b/patches/yargs@17.7.2.patch new file mode 100644 index 000000000..a26866587 --- /dev/null +++ b/patches/yargs@17.7.2.patch @@ -0,0 +1,25 @@ +diff --git a/browser.d.ts b/browser.d.ts +deleted file mode 100644 +index 21f3fc69190b574ab8456514d3da1972afa53973..0000000000000000000000000000000000000000 +diff --git a/package.json b/package.json +index 389cc6b064b5f888e7f9d718f5440feabdce57ad..c1ae265542ad386fa2214914b0186ade81dd6ee2 100644 +--- a/package.json ++++ b/package.json +@@ -20,13 +20,10 @@ + "import": "./browser.mjs", + "types": "./browser.d.ts" + }, +- "./yargs": [ +- { +- "import": "./yargs.mjs", +- "require": "./yargs" +- }, +- "./yargs" +- ] ++ "./yargs": { ++ "require": "./index.cjs", ++ "import": "./yargs.mjs" ++ } + }, + "type": "module", + "module": "./index.mjs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fefa4f17f..03557ae11 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + yargs@17.7.2: + hash: 34652056801bf0e586b0f2ab1a4f464b352d4d3ce0f5b2d51040d171c31843c3 + path: patches/yargs@17.7.2.patch + importers: .: @@ -1972,7 +1977,7 @@ snapshots: istanbul-reports: 3.2.0 test-exclude: 8.0.0 v8-to-istanbul: 9.3.0 - yargs: 17.7.2 + yargs: 17.7.2(patch_hash=34652056801bf0e586b0f2ab1a4f464b352d4d3ce0f5b2d51040d171c31843c3) yargs-parser: 21.1.1 cac@6.7.14: {} @@ -2759,7 +2764,7 @@ snapshots: yargs-parser@21.1.1: {} - yargs@17.7.2: + yargs@17.7.2(patch_hash=34652056801bf0e586b0f2ab1a4f464b352d4d3ce0f5b2d51040d171c31843c3): dependencies: cliui: 8.0.1 escalade: 3.2.0 From 6ee9f14d3a19d06583ab887412553f7e7189709d Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:14:13 +0000 Subject: [PATCH 2913/3047] Release 8.5.7 version --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4a0bc6f6..650f9e571 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.7 +* Improved source map annotation cleaning performance (by CodeAnt AI). + ## 8.5.6 * Fixed `ContainerWithChildren` type discriminating (by @Goodwine). diff --git a/package.json b/package.json index ac36f4f78..c394f3362 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.6", + "version": "8.5.7", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 0ae0a492e9259783bca8e1de5a06d474880ce552 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:16:08 +0000 Subject: [PATCH 2914/3047] Update Processor#version --- lib/processor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/processor.js b/lib/processor.js index 84936874d..d2fff7b63 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.6' + this.version = '8.5.7' this.plugins = this.normalize(plugins) } From b2c6d9786e742eecb5a2b48ca5b9dc9daa30b24c Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:19:00 +0000 Subject: [PATCH 2915/3047] Run git hook register --- package.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c394f3362..72ffc1aa5 100644 --- a/package.json +++ b/package.json @@ -149,6 +149,13 @@ "pnpm": { "patchedDependencies": { "yargs@17.7.2": "patches/yargs@17.7.2.patch" - } + }, + "ignoredBuiltDependencies": [ + "esbuild", + "unrs-resolver" + ], + "onlyBuiltDependencies": [ + "simple-git-hooks" + ] } } From 65de53745f7b8006a335199995f2dfc6d1b77d92 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 2 Mar 2026 22:19:26 +0000 Subject: [PATCH 2916/3047] Release 8.5.8 version --- CHANGELOG.md | 3 +++ lib/processor.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 650f9e571..4716dbab3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log This project adheres to [Semantic Versioning](https://semver.org/). +## 8.5.8 +* Fixed `Processor#version`. + ## 8.5.7 * Improved source map annotation cleaning performance (by CodeAnt AI). diff --git a/lib/processor.js b/lib/processor.js index d2fff7b63..8b328c678 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -7,7 +7,7 @@ let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.5.7' + this.version = '8.5.8' this.plugins = this.normalize(plugins) } diff --git a/package.json b/package.json index 72ffc1aa5..a83efc3b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.5.7", + "version": "8.5.8", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" From 5c1ea9651c519fdef1c05942d0d05a8cbc6de807 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2026 00:06:12 +0000 Subject: [PATCH 2917/3047] Update email --- LICENSE | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index da057b456..c2314d53d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright 2013 Andrey Sitnik +Copyright 2013 Andrey Sitnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/package.json b/package.json index a83efc3b0..59cabb15e 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "url": "https://github.com/sponsors/ai" } ], - "author": "Andrey Sitnik ", + "author": "Andrey Sitnik ", "license": "MIT", "homepage": "https://postcss.org/", "repository": "postcss/postcss", From 43eab40297513ed65bad4510a828abfbb13deb6a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 1 Apr 2026 00:07:58 +0000 Subject: [PATCH 2918/3047] Add CoC from Slow Reader --- docs/CODE_OF_CONDUCT.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 docs/CODE_OF_CONDUCT.md diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..cd0334fb2 --- /dev/null +++ b/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,30 @@ +# Code of Conduct + +## Our Standards + +- **When we disagree, try to understand why.** Our goal should not be to “win” every disagreement or argument. A more productive goal is to be open to ideas that make our own ideas better. +- **Be careful in the words that you choose.** Harassment and other exclusionary behavior aren’t acceptable: + - Violent threats or language directed against another person. + - Discriminatory jokes and language. + - Posting (or threatening to post) other people’s personally identifying information (“doxing”). + - Personal insults, especially those using racist or sexist terms. + - Unwelcome sexual attention. + - Repeated harassment of others. In general, if someone asks you to stop, then stop. +- **Appreciate and accommodate our differences.** Be respectful of people with different cultural practices, personal habits to clothing, attitudes, and beliefs. Respect the way how people ask you to communicate with them. +- **Judge ideas, not people.** Every idea counts for its merit, not who brings it up. +- **Do not blame for mistakes.** If we have a problem, we should discuss how to prevent it in the future. + +## Where Does It of Conduct Take Effect? + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. + +- All communications in GitHub. +- Conversations in our Discord. +- Git commits and code comments. +- Project’s social accounts. + +## How Can You Report Violations? + +Unacceptable behavior may be reported to the community leaders responsible for enforcement at [andrey@sitnik.es](mailto:andrey@sitnik.es). + +All community leaders are obligated to respect the privacy and security of the reporter of any incident. From 979ff0ee9d035c9cbe6721ad32a457c092a8a79a Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Apr 2026 16:04:25 +0000 Subject: [PATCH 2919/3047] Update dependencies --- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 16 +- eslint.config.mjs | 6 + lib/fromJSON.d.ts | 2 +- lib/list.d.ts | 2 +- lib/no-work-result.js | 2 +- lib/parse.d.ts | 2 +- lib/stringify.d.ts | 2 +- package.json | 14 +- pnpm-lock.yaml | 852 +++++++++++++++++----------------- test/visitor.test.ts | 12 +- tsconfig.json | 3 +- 12 files changed, 458 insertions(+), 457 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7df44d585..aa7b7ef68 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: echo "EOF" >> $GITHUB_OUTPUT - name: Create the release if: steps.changelog.outputs.changelog_content != '' - uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 + uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1 with: name: ${{ github.ref_name }} body: '${{ steps.changelog.outputs.changelog_content }}' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8264212db..489acdd31 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,11 +14,11 @@ jobs: - name: Checkout the repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Install Node.js - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 25 cache: pnpm @@ -40,11 +40,11 @@ jobs: - name: Checkout the repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} cache: pnpm @@ -66,13 +66,13 @@ jobs: - name: Checkout the repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 3 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - name: Install Node.js ${{ matrix.node-version }} - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} - name: Install dependencies @@ -88,11 +88,11 @@ jobs: - name: Checkout the repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Install Node.js LTS - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24 cache: pnpm diff --git a/eslint.config.mjs b/eslint.config.mjs index e1cc6eb9e..cd623151d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -26,6 +26,12 @@ export default [ 'perfectionist/sort-switch-case': 'off' } }, + { + files: ['test/types.ts'], + rules: { + 'prefer-let/prefer-let': 'off' + } + }, { files: ['**/*.d.ts'], rules: { diff --git a/lib/fromJSON.d.ts b/lib/fromJSON.d.ts index e1deedbd3..3a0c5b85f 100644 --- a/lib/fromJSON.d.ts +++ b/lib/fromJSON.d.ts @@ -4,6 +4,6 @@ interface FromJSON extends JSONHydrator { default: FromJSON } -declare const fromJSON: FromJSON +declare let fromJSON: FromJSON export = fromJSON diff --git a/lib/list.d.ts b/lib/list.d.ts index e262ad3ff..119624e87 100644 --- a/lib/list.d.ts +++ b/lib/list.d.ts @@ -55,6 +55,6 @@ declare namespace list { } } -declare const list: list.List +declare let list: list.List export = list diff --git a/lib/no-work-result.js b/lib/no-work-result.js index 092fdc36f..7ec1a7425 100644 --- a/lib/no-work-result.js +++ b/lib/no-work-result.js @@ -2,7 +2,7 @@ let MapGenerator = require('./map-generator') let parse = require('./parse') -const Result = require('./result') +let Result = require('./result') let stringify = require('./stringify') let warnOnce = require('./warn-once') diff --git a/lib/parse.d.ts b/lib/parse.d.ts index 4c943a4d6..ffe35b439 100644 --- a/lib/parse.d.ts +++ b/lib/parse.d.ts @@ -4,6 +4,6 @@ interface Parse extends Parser { default: Parse } -declare const parse: Parse +declare let parse: Parse export = parse diff --git a/lib/stringify.d.ts b/lib/stringify.d.ts index 06ad0b4de..82131bf50 100644 --- a/lib/stringify.d.ts +++ b/lib/stringify.d.ts @@ -4,6 +4,6 @@ interface Stringify extends Stringifier { default: Stringify } -declare const stringify: Stringify +declare let stringify: Stringify export = stringify diff --git a/package.json b/package.json index 59cabb15e..72744825d 100644 --- a/package.json +++ b/package.json @@ -90,21 +90,21 @@ "source-map-js": "^1.2.1" }, "devDependencies": { - "@logux/eslint-config": "^57.0.2", - "@size-limit/preset-small-lib": "^12.0.0", - "@types/node": "^25.3.3", - "actions-up": "^1.12.0", + "@logux/eslint-config": "^57.1.0", + "@size-limit/preset-small-lib": "^12.0.1", + "@types/node": "^25.5.2", + "actions-up": "^1.12.1", "c8": "^11.0.0", "check-dts": "^0.9.0", - "clean-publish": "^6.0.3", + "clean-publish": "^6.0.5", "concat-with-sourcemaps": "^1.1.0", - "eslint": "^10.0.2", + "eslint": "^10.2.0", "multiocular": "^0.8.2", "nanodelay": "^1.0.8", "nanospy": "^1.0.0", "postcss-parser-tests": "^8.9.0", "simple-git-hooks": "^2.13.1", - "size-limit": "^12.0.0", + "size-limit": "^12.0.1", "strip-ansi": "^6.0.1", "ts-node": "^10.9.2", "typescript": "^5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03557ae11..f2afdc311 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,17 +24,17 @@ importers: version: 1.2.1 devDependencies: '@logux/eslint-config': - specifier: ^57.0.2 - version: 57.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^57.1.0 + version: 57.1.0(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) '@size-limit/preset-small-lib': - specifier: ^12.0.0 - version: 12.0.0(size-limit@12.0.0(jiti@2.6.1)) + specifier: ^12.0.1 + version: 12.0.1(size-limit@12.0.1(jiti@2.6.1)) '@types/node': - specifier: ^25.3.3 - version: 25.3.3 + specifier: ^25.5.2 + version: 25.5.2 actions-up: - specifier: ^1.12.0 - version: 1.12.0 + specifier: ^1.12.1 + version: 1.12.1 c8: specifier: ^11.0.0 version: 11.0.0 @@ -42,14 +42,14 @@ importers: specifier: ^0.9.0 version: 0.9.0(typescript@5.9.3) clean-publish: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^6.0.5 + version: 6.0.5 concat-with-sourcemaps: specifier: ^1.1.0 version: 1.1.0 eslint: - specifier: ^10.0.2 - version: 10.0.2(jiti@2.6.1) + specifier: ^10.2.0 + version: 10.2.0(jiti@2.6.1) multiocular: specifier: ^0.8.2 version: 0.8.2 @@ -66,14 +66,14 @@ importers: specifier: ^2.13.1 version: 2.13.1 size-limit: - specifier: ^12.0.0 - version: 12.0.0(jiti@2.6.1) + specifier: ^12.0.1 + version: 12.0.1(jiti@2.6.1) strip-ansi: specifier: ^6.0.1 version: 6.0.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@25.3.3)(typescript@5.9.3) + version: 10.9.2(@types/node@25.5.2)(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -91,167 +91,167 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -266,28 +266,28 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.2': - resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + '@eslint/config-array@0.23.4': + resolution: {integrity: sha512-lf19F24LSMfF8weXvW5QEtnLqW70u7kgit5e9PSx0MsHAFclGd1T9ynvWEMDT1w5J4Qt54tomGeAhdoAku1Xow==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.2': - resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + '@eslint/config-helpers@0.5.4': + resolution: {integrity: sha512-jJhqiY3wPMlWWO3370M86CPJ7pt8GmEwSLglMfQhjXal07RCvhmU0as4IuUEW5SJeunfItiEetHmSxCCe9lDBg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.0': - resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + '@eslint/core@1.2.0': + resolution: {integrity: sha512-8FTGbNzTvmSlc4cZBaShkC6YvFMG0riksYWRFKXztqVdXaQbcZLXlFbSpC05s70sGEsXAw0qwhx69JiW7hQS7A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.4': - resolution: {integrity: sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==} + '@eslint/eslintrc@3.3.5': + resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@3.0.2': - resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + '@eslint/object-schema@3.0.4': + resolution: {integrity: sha512-55lO/7+Yp0ISKRP0PsPtNTeNGapXaO085aELZmWCVc5SH3jfrqpuU6YgOdIxMS99ZHkQN1cXKE+cdIqwww9ptw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.6.0': - resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + '@eslint/plugin-kit@0.7.0': + resolution: {integrity: sha512-ejvBr8MQCbVsWNZnCwDXjUKq40MDmHalq7cJ6e9s/qzTUFIIo/afzt1Vui9T97FM/V/pN4YsFVoed5NIa96RDg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@humanfs/core@0.19.1': @@ -333,8 +333,8 @@ packages: resolution: {integrity: sha512-VbgVkEloAe2ym5w0cjyRI16Eeyk2R0BgJa9pMYT1FcJEhFnzrB23E0ExIEhrok0iD48bFh7goledwmDLmgWaiw==} engines: {node: ^20.0.0 || >=22.0.0} - '@logux/eslint-config@57.0.2': - resolution: {integrity: sha512-oUCMUUckJOCQMs4QwwQiptyk+g/sXAUBh7ab6Ewvq89o2zZtAJuL2lz1YOj3z5Q8yhBf2q9jyNnX0RatwL3FXw==} + '@logux/eslint-config@57.1.0': + resolution: {integrity: sha512-oOlYsAu5iQBzNL75QqGWVnpgle/Nz5/Gp5P6BtHRy5vBg7UXyGVqEzaG3lMHF6dgYGVb+wkLqIC0DWIH8wp/LA==} engines: {node: '>=18.0.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -368,26 +368,29 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@package-json/types@0.0.12': + resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@profoundlogic/hogan@3.0.4': resolution: {integrity: sha512-pmNVGuooS30Mm7YbZd5T7E5zYVO6D5Ct91sn4T39mUvMUc3sCGridcnhAufL1/Bz2QzAtzEn0agNrdk3+5yWzw==} hasBin: true - '@size-limit/esbuild@12.0.0': - resolution: {integrity: sha512-r9i+HrtunIu7wAPtqD3t4DqfYin3kxPoMAv8cidkzlCS69IYCe3EG2UbQa10AdvQyaHTEK+MPkr9ifUd3W29og==} + '@size-limit/esbuild@12.0.1': + resolution: {integrity: sha512-Z6km06//90REJ30+WmMWvngG9dZnY52z3bhGxkoOwyXaAwPuQgx6ZdD1edNDABXIZMatbeMejigBPNEl4OaFsQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - size-limit: 12.0.0 + size-limit: 12.0.1 - '@size-limit/file@12.0.0': - resolution: {integrity: sha512-OzKYpDzWJ2jo6cAIzVsaPuvzZTmMLDoVCViEvsctmImxpXzwJZcuBEpPohFKKdgVdZuNTU8WstmvywPq55Njdw==} + '@size-limit/file@12.0.1': + resolution: {integrity: sha512-Kvbnz46iV7WeHaANf1HmWjXBVMU2KkCU+0xJ78FzIjZwlVKKEqy+QCZprdBMfIWrzrvYeqP4cfuzKG8z6xVivg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - size-limit: 12.0.0 + size-limit: 12.0.1 - '@size-limit/preset-small-lib@12.0.0': - resolution: {integrity: sha512-HHHVQjZmj+8vg7qsHs1dd3Hmn8ygUsE5O2CfxnbCbHOGyUw7VodZGERh/+5ogVrF2DYza/DIo2PnCJZZETdTRA==} + '@size-limit/preset-small-lib@12.0.1': + resolution: {integrity: sha512-WqA87RAzGgYOWk0K7WPbgWKlT98eDf5I0DHFD+CNwOck+Cfcchp+rh3QQNTdW5WKDjSZLqGd+rK2ZSca7DPJCg==} peerDependencies: - size-limit: 12.0.0 + size-limit: 12.0.1 '@tsconfig/node10@1.0.12': resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} @@ -416,8 +419,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@25.3.3': - resolution: {integrity: sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==} + '@types/node@25.5.2': + resolution: {integrity: sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -425,63 +428,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + '@typescript-eslint/eslint-plugin@8.58.0': + resolution: {integrity: sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.56.1 + '@typescript-eslint/parser': ^8.58.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + '@typescript-eslint/parser@8.58.0': + resolution: {integrity: sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + '@typescript-eslint/project-service@8.58.0': + resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + '@typescript-eslint/scope-manager@8.58.0': + resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + '@typescript-eslint/tsconfig-utils@8.58.0': + resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + '@typescript-eslint/type-utils@8.58.0': + resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + '@typescript-eslint/types@8.58.0': + resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + '@typescript-eslint/typescript-estree@8.58.0': + resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} + '@typescript-eslint/utils@8.58.0': + resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + '@typescript-eslint/visitor-keys@8.58.0': + resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -604,8 +607,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - actions-up@1.12.0: - resolution: {integrity: sha512-EFAv3XX3gfjfWhy5e6Kw1PpC0DrTSuK4e77xoS27hqcrjf92C+yCs05tIsBPGFZv8+EichF8HMTtimuMj2sv+A==} + actions-up@1.12.1: + resolution: {integrity: sha512-9fWddGOfKFMV4g0ncBk3J5754l3KcZWUoPIF12o8D3XmRRj3Jt2Mbxxh0RateVZZBT1hfyalALUpg5QJUhqEcg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -637,11 +640,11 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.13: + resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -662,9 +665,9 @@ packages: monocart-coverage-reports: optional: true - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -677,8 +680,8 @@ packages: peerDependencies: typescript: '>=4.0.0' - clean-publish@6.0.3: - resolution: {integrity: sha512-brittZyUitwhD8t9a2hgy7sRONXyjw6a3jezd70cLdOfhipbsZV+9zLqN/mRgPxD9LwhZPMZEZU12kE0G9liMA==} + clean-publish@6.0.5: + resolution: {integrity: sha512-Iqm/EDPQFLY0I8kktg61Nt8V/5fiXYNkNR5UsHcLKmj4vp7a0a7EGZmNEbN2Hg77frQlHNljT/MruK5Wr/Rtog==} engines: {node: '>= 20.0.0'} hasBin: true @@ -693,8 +696,8 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - comment-parser@1.4.5: - resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + comment-parser@1.4.6: + resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} engines: {node: '>= 12.0.0'} concat-map@0.0.1: @@ -753,26 +756,26 @@ packages: resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} - dompurify@3.3.1: - resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} + dompurify@3.3.3: + resolution: {integrity: sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - enhanced-resolve@5.20.0: - resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} engines: {node: '>=10.13.0'} enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -808,12 +811,12 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.16.1: - resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} + eslint-plugin-import-x@4.16.2: + resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/utils': ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/utils': ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint-import-resolver-node: '*' peerDependenciesMeta: '@typescript-eslint/utils': @@ -827,24 +830,18 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@5.6.0: - resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} + eslint-plugin-perfectionist@5.8.0: + resolution: {integrity: sha512-k8uIptWIxkUclonCFGyDzgYs9NI+Qh0a7cUXS3L7IYZDEsjXuimFBVbxXPQQngWqMiaxJRwbtYB4smMGMqF+cw==} engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-prefer-let@4.1.0: - resolution: {integrity: sha512-HTaW2TLQiYeiSBU0TMgU7Uog2ao28BSLLxVWAJadr3j9Bvh5Sz8gh5soW4d+7tV3eZL0sv9QRpTX2zDBRsqdIQ==} + eslint-plugin-prefer-let@4.2.2: + resolution: {integrity: sha512-FkCmQwZtc4nf6EKDKEYW/lWtApDXxsJA/VXWQQemLhIWWho676CJdgt53AMubOrSOTzzep0dBMP9zVFCCCdxsw==} engines: {node: '>=0.10.0'} - eslint-plugin-promise@7.2.1: - resolution: {integrity: sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-scope@9.1.1: - resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: @@ -859,8 +856,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.0.2: - resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} + eslint@10.2.0: + resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -873,8 +870,8 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@11.1.1: - resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} esquery@1.7.0: @@ -934,8 +931,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} @@ -948,8 +945,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + get-tsconfig@4.13.7: + resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -1083,8 +1080,8 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lru-cache@11.2.6: - resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} + lru-cache@11.3.0: + resolution: {integrity: sha512-sr8xPKE25m6vJVcrdn6NxtC0fVfuPowbscLypegRgOm0yXSqr5JNHCAY3hnusdJ7HRBW04j6Ip4khvHU778DuQ==} engines: {node: 20 || >=22} make-dir@4.0.0: @@ -1094,8 +1091,8 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - marked@17.0.3: - resolution: {integrity: sha512-jt1v2ObpyOKR8p4XaUJVk3YWRJ5n+i4+rjQopxvV32rSndTJXvIzuUdWWIy/1pFQMkQmvTXawzDNqOH/CUmx6A==} + marked@17.0.6: + resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==} engines: {node: '>= 20'} hasBin: true @@ -1107,8 +1104,8 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -1142,8 +1139,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.6: - resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + nanoid@5.1.7: + resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -1154,8 +1151,8 @@ packages: resolution: {integrity: sha512-wvmmALNstRRhLhy7RV11NCRY2k1zxstImiju4VyyKNNRIKDVjyBtmEd/Q4G82/3dN4VSTe+0PRR3DUAASSbEEQ==} engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || ^16.0.0 || ^18.0.0 || >=20.0.0} - nanostores@1.1.1: - resolution: {integrity: sha512-EYJqS25r2iBeTtGQCHidXl1VfZ1jXM7Q04zXJOrMlxVVmD0ptxJaNux92n1mJ7c5lN3zTq12MhH/8x59nP+qmg==} + nanostores@1.2.0: + resolution: {integrity: sha512-F0wCzbsH80G7XXo0Jd9/AVQC7ouWY6idUCTnMwW5t/Rv9W8qmO6endavDwg7TNp5GbugwSukFMVZqzPSrSMndg==} engines: {node: ^20.0.0 || >=22.0.0} napi-postinstall@0.3.4: @@ -1208,12 +1205,12 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} postcss-parser-tests@8.9.0: @@ -1282,8 +1279,8 @@ packages: resolution: {integrity: sha512-WszCLXwT4h2k1ufIXAgsbiTOazqqevFCIncOuUBZJ91DdvWcC5+OFkluWRQPrcuSYd8fjq+o2y1QfWqYMoAToQ==} hasBin: true - size-limit@12.0.0: - resolution: {integrity: sha512-JBG8dioIs0m2kHOhs9jD6E/tZKD08vmbf2bfqj/rJyNWqJxk/ZcakixjhYtsqdbi+AKVbfPkt3g2RRZiKaizYA==} + size-limit@12.0.1: + resolution: {integrity: sha512-vuFj+6lDOoBJQu6OLhcMQv7jnbXjuoEn4WsQHlSLOV/8EFfOka/tfjtLQ/rZig5Gagi3R0GnU/0kd4EY/y2etg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -1324,16 +1321,16 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} test-exclude@8.0.0: resolution: {integrity: sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==} engines: {node: 20 || >=22} - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + tinyexec@1.0.4: + resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} tinyglobby@0.2.15: @@ -1344,8 +1341,8 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -1376,12 +1373,12 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + typescript-eslint@8.58.0: + resolution: {integrity: sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} @@ -1438,8 +1435,8 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1454,8 +1451,8 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} hasBin: true @@ -1483,124 +1480,124 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.8.1': + '@emnapi/core@1.9.2': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.8.1': + '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': dependencies: - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.2': + '@eslint/config-array@0.23.4': dependencies: - '@eslint/object-schema': 3.0.2 + '@eslint/object-schema': 3.0.4 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.2': + '@eslint/config-helpers@0.5.4': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.2.0 - '@eslint/core@1.1.0': + '@eslint/core@1.2.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.4': + '@eslint/eslintrc@3.3.5': dependencies: ajv: 6.14.0 debug: 4.4.3 @@ -1614,11 +1611,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/object-schema@3.0.2': {} + '@eslint/object-schema@3.0.4': {} - '@eslint/plugin-kit@0.6.0': + '@eslint/plugin-kit@0.7.0': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.2.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -1656,17 +1653,16 @@ snapshots: dependencies: nanoevents: 9.1.0 - '@logux/eslint-config@57.0.2(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@logux/eslint-config@57.1.0(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint/eslintrc': 3.3.4 - eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-n: 17.24.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-perfectionist: 5.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-prefer-let: 4.1.0 - eslint-plugin-promise: 7.2.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint/eslintrc': 3.3.5 + eslint: 10.2.0(jiti@2.6.1) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-n: 17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-perfectionist: 5.8.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-prefer-let: 4.2.2 globals: 17.4.0 - typescript-eslint: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + typescript-eslint: 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node @@ -1680,18 +1676,18 @@ snapshots: cookie: 1.1.1 fastq: 1.20.1 nanoevents: 9.1.0 - nanoid: 5.1.6 + nanoid: 5.1.7 tinyglobby: 0.2.15 url-pattern: 1.0.3 - ws: 8.19.0 + ws: 8.20.0 transitivePeerDependencies: - bufferutil - utf-8-validate '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 '@tybys/wasm-util': 0.10.1 optional: true @@ -1707,25 +1703,27 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 + '@package-json/types@0.0.12': {} + '@profoundlogic/hogan@3.0.4': dependencies: nopt: 1.0.10 - '@size-limit/esbuild@12.0.0(size-limit@12.0.0(jiti@2.6.1))': + '@size-limit/esbuild@12.0.1(size-limit@12.0.1(jiti@2.6.1))': dependencies: - esbuild: 0.27.3 - nanoid: 5.1.6 - size-limit: 12.0.0(jiti@2.6.1) + esbuild: 0.27.7 + nanoid: 5.1.7 + size-limit: 12.0.1(jiti@2.6.1) - '@size-limit/file@12.0.0(size-limit@12.0.0(jiti@2.6.1))': + '@size-limit/file@12.0.1(size-limit@12.0.1(jiti@2.6.1))': dependencies: - size-limit: 12.0.0(jiti@2.6.1) + size-limit: 12.0.1(jiti@2.6.1) - '@size-limit/preset-small-lib@12.0.0(size-limit@12.0.0(jiti@2.6.1))': + '@size-limit/preset-small-lib@12.0.1(size-limit@12.0.1(jiti@2.6.1))': dependencies: - '@size-limit/esbuild': 12.0.0(size-limit@12.0.0(jiti@2.6.1)) - '@size-limit/file': 12.0.0(size-limit@12.0.0(jiti@2.6.1)) - size-limit: 12.0.0(jiti@2.6.1) + '@size-limit/esbuild': 12.0.1(size-limit@12.0.1(jiti@2.6.1)) + '@size-limit/file': 12.0.1(size-limit@12.0.1(jiti@2.6.1)) + size-limit: 12.0.1(jiti@2.6.1) '@tsconfig/node10@1.0.12': {} @@ -1748,7 +1746,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@25.3.3': + '@types/node@25.5.2': dependencies: undici-types: 7.18.2 @@ -1757,95 +1755,95 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.1 - eslint: 10.0.2(jiti@2.6.1) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/type-utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.0 + eslint: 10.2.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) + '@typescript-eslint/types': 8.58.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.56.1': + '@typescript-eslint/scope-manager@8.58.0': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/visitor-keys': 8.58.0 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + eslint: 10.2.0(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.56.1': {} + '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/project-service': 8.58.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + eslint: 10.2.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.56.1': + '@typescript-eslint/visitor-keys@8.58.0': dependencies: - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.58.0 eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -1919,14 +1917,14 @@ snapshots: acorn@8.16.0: {} - actions-up@1.12.0: + actions-up@1.12.1: dependencies: - cac: 6.7.14 + cac: 7.0.0 enquirer: 2.4.1 nanospinner: 1.2.2 picocolors: 1.1.1 semver: 7.7.4 - yaml: 2.8.2 + yaml: 2.8.3 ajv@6.14.0: dependencies: @@ -1951,12 +1949,12 @@ snapshots: balanced-match@4.0.4: {} - brace-expansion@1.1.12: + brace-expansion@1.1.13: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -1980,7 +1978,7 @@ snapshots: yargs: 17.7.2(patch_hash=34652056801bf0e586b0f2ab1a4f464b352d4d3ce0f5b2d51040d171c31843c3) yargs-parser: 21.1.1 - cac@6.7.14: {} + cac@7.0.0: {} callsites@3.1.0: {} @@ -1992,11 +1990,11 @@ snapshots: typescript: 5.9.3 vfile-location: 5.0.3 - clean-publish@6.0.3: + clean-publish@6.0.5: dependencies: lilconfig: 3.1.3 - picomatch: 4.0.3 - tinyexec: 1.0.2 + picomatch: 4.0.4 + tinyexec: 1.0.4 tinyglobby: 0.2.15 cliui@8.0.1: @@ -2011,7 +2009,7 @@ snapshots: color-name@1.1.4: {} - comment-parser@1.4.5: {} + comment-parser@1.4.6: {} concat-map@0.0.1: {} @@ -2047,7 +2045,7 @@ snapshots: diff2html@3.4.56: dependencies: '@profoundlogic/hogan': 3.0.4 - diff: 8.0.3 + diff: 8.0.4 optionalDependencies: highlight.js: 11.11.1 @@ -2055,65 +2053,65 @@ snapshots: diff@5.2.2: {} - diff@8.0.3: {} + diff@8.0.4: {} - dompurify@3.3.1: + dompurify@3.3.3: optionalDependencies: '@types/trusted-types': 2.0.7 emoji-regex@8.0.0: {} - enhanced-resolve@5.20.0: + enhanced-resolve@5.20.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.2 enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - esbuild@0.27.3: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@10.0.2(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.2.0(jiti@2.6.1)): dependencies: - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) semver: 7.7.4 eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.13.6 + get-tsconfig: 4.13.7 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.11.1 @@ -2127,38 +2125,39 @@ snapshots: - supports-color optional: true - eslint-plugin-es-x@7.8.0(eslint@10.0.2(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.0.2(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.0.2(jiti@2.6.1)) + eslint: 10.2.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.0.2(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.56.1 - comment-parser: 1.4.5 + '@package-json/types': 0.0.12 + '@typescript-eslint/types': 8.58.0 + comment-parser: 1.4.6 debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.24.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) - enhanced-resolve: 5.20.0 - eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.0.2(jiti@2.6.1)) - get-tsconfig: 4.13.6 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + enhanced-resolve: 5.20.1 + eslint: 10.2.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.2.0(jiti@2.6.1)) + get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 @@ -2167,25 +2166,20 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-perfectionist@5.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@5.8.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.2.0(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-prefer-let@4.1.0: + eslint-plugin-prefer-let@4.2.2: dependencies: requireindex: 1.2.0 - eslint-plugin-promise@7.2.1(eslint@10.0.2(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) - eslint: 10.0.2(jiti@2.6.1) - - eslint-scope@9.1.1: + eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 '@types/estree': 1.0.8 @@ -2198,14 +2192,14 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.0.2(jiti@2.6.1): + eslint@10.2.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.2 - '@eslint/config-helpers': 0.5.2 - '@eslint/core': 1.1.0 - '@eslint/plugin-kit': 0.6.0 + '@eslint/config-array': 0.23.4 + '@eslint/config-helpers': 0.5.4 + '@eslint/core': 1.2.0 + '@eslint/plugin-kit': 0.7.0 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -2214,9 +2208,9 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 9.1.1 + eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 - espree: 11.1.1 + espree: 11.2.0 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -2227,7 +2221,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.4 + minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -2241,7 +2235,7 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 - espree@11.1.1: + espree@11.2.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) @@ -2277,9 +2271,9 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 file-entry-cache@8.0.0: dependencies: @@ -2296,10 +2290,10 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.4.2 keyv: 4.5.4 - flatted@3.3.3: {} + flatted@3.4.2: {} foreground-child@3.3.1: dependencies: @@ -2311,7 +2305,7 @@ snapshots: get-caller-file@2.0.5: {} - get-tsconfig@4.13.6: + get-tsconfig@4.13.7: dependencies: resolve-pkg-maps: 1.0.0 @@ -2325,7 +2319,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 minipass: 7.1.3 path-scurry: 2.0.2 @@ -2421,7 +2415,7 @@ snapshots: dependencies: p-locate: 5.0.0 - lru-cache@11.2.6: {} + lru-cache@11.3.0: {} make-dir@4.0.0: dependencies: @@ -2429,22 +2423,22 @@ snapshots: make-error@1.3.6: {} - marked@17.0.3: {} + marked@17.0.6: {} merge2@1.4.1: {} micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.13 minipass@7.1.3: {} @@ -2456,11 +2450,11 @@ snapshots: dependencies: '@logux/server': 0.14.0 diff2html: 3.4.56 - dompurify: 3.3.1 + dompurify: 3.3.3 highlight.js: 11.11.1 - marked: 17.0.3 - nanostores: 1.1.1 - yaml: 2.8.2 + marked: 17.0.6 + nanostores: 1.2.0 + yaml: 2.8.3 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -2471,7 +2465,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.6: {} + nanoid@5.1.7: {} nanospinner@1.2.2: dependencies: @@ -2479,7 +2473,7 @@ snapshots: nanospy@1.0.0: {} - nanostores@1.1.1: {} + nanostores@1.2.0: {} napi-postinstall@0.3.4: {} @@ -2521,14 +2515,14 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.6 + lru-cache: 11.3.0 minipass: 7.1.3 picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} - picomatch@4.0.3: {} + picomatch@4.0.4: {} postcss-parser-tests@8.9.0: dependencies: @@ -2577,7 +2571,7 @@ snapshots: simple-git-hooks@2.13.1: {} - size-limit@12.0.0(jiti@2.6.1): + size-limit@12.0.1(jiti@2.6.1): dependencies: bytes-iec: 3.1.1 lilconfig: 3.1.3 @@ -2612,42 +2606,42 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: optional: true - tapable@2.3.0: {} + tapable@2.3.2: {} test-exclude@8.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 13.0.6 - minimatch: 10.2.4 + minimatch: 10.2.5 - tinyexec@1.0.2: {} + tinyexec@1.0.4: {} tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 typescript: 5.9.3 - ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3): + ts-node@10.9.2(@types/node@25.5.2)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.3.3 + '@types/node': 25.5.2 acorn: 8.16.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -2665,13 +2659,13 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.2.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -2756,11 +2750,11 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - ws@8.19.0: {} + ws@8.20.0: {} y18n@5.0.8: {} - yaml@2.8.2: {} + yaml@2.8.3: {} yargs-parser@21.1.1: {} diff --git a/test/visitor.test.ts b/test/visitor.test.ts index 72557ab25..6bfa82eff 100755 --- a/test/visitor.test.ts +++ b/test/visitor.test.ts @@ -356,9 +356,9 @@ test('wraps node to proxies', () => { equal(props, ['color']) }) -const cssThree = '.a{ color: red; } .b{ will-change: transform; }' +let cssThree = '.a{ color: red; } .b{ will-change: transform; }' -const expectedThree = +let expectedThree = '.a{ ' + 'backface-visibility: hidden; ' + 'will-change: transform; ' + @@ -384,14 +384,14 @@ test('work of three plug-ins; sequence 2', async () => { is(css, expectedThree) }) -const cssThreeDocument = postcss.document({ +let cssThreeDocument = postcss.document({ nodes: [ postcss.parse('.a{ color: red; }'), postcss.parse('.b{ will-change: transform; }') ] }) -const expectedThreeDocument = +let expectedThreeDocument = '.a{ color: green; }' + '.b{ backface-visibility: hidden; will-change: transform; }' @@ -413,8 +413,8 @@ test('work of three plug-ins in a document; sequence 2', async () => { is(css, expectedThreeDocument) }) -const cssThroughProps = '.a{color: yellow;}' -const expectedThroughProps = '.a{color: red;}' +let cssThroughProps = '.a{color: yellow;}' +let expectedThroughProps = '.a{color: red;}' test('change in node values through props; sequence 1', async () => { let { css } = await postcss([ diff --git a/tsconfig.json b/tsconfig.json index 808df78e8..125a212b9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,8 @@ "target": "es2018", "module": "commonjs", "strict": true, - "noEmit": true + "noEmit": true, + "moduleResolution": "node10" }, "exclude": ["**/errors.ts"] } From 82bec0dd8e194f653743f606e6a2b7e27cde9088 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Tue, 7 Apr 2026 16:07:54 +0000 Subject: [PATCH 2920/3047] Move to oxfmt --- .github/CONTRIBUTING.md | 49 +- CHANGELOG.md | 1330 ++++++++++++++++++++------------- README.md | 322 ++++---- docs/README-cn.md | 268 ++++--- docs/README.md | 165 +++-- docs/architecture.md | 145 ++-- docs/guidelines/plugin.md | 73 +- docs/guidelines/runner.md | 55 +- docs/plugins.md | 1482 ++++++++++++++++++------------------- docs/syntax.md | 67 +- docs/writing-a-plugin.md | 98 ++- lib/at-rule.d.ts | 1 - lib/comment.d.ts | 1 - lib/container.d.ts | 7 +- lib/css-syntax-error.d.ts | 1 - lib/declaration.d.ts | 1 - lib/document.d.ts | 1 - lib/input.d.ts | 1 - lib/input.js | 10 +- lib/lazy-result.d.ts | 7 +- lib/no-work-result.d.ts | 1 - lib/node.d.ts | 1 - lib/postcss.d.mts | 3 - lib/postcss.d.ts | 4 +- lib/previous-map.d.ts | 1 - lib/processor.d.ts | 1 - lib/result.d.ts | 1 - lib/root.d.ts | 1 - lib/rule.d.ts | 24 +- lib/stringifier.d.ts | 1 - lib/warning.d.ts | 1 - oxfmt.config.ts | 3 + package.json | 110 +-- pnpm-lock.yaml | 508 +++++++++++++ test/at-rule.test.ts | 4 +- test/node.test.ts | 72 +- 36 files changed, 2753 insertions(+), 2067 deletions(-) create mode 100644 oxfmt.config.ts diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6eec078d6..0aaa2efe2 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -3,7 +3,6 @@ If you want to contribute to PostCSS, there are a few things that you should be familiar with. - ## Adding Your Plugin to the List If you created or found a plugin and want to add it to the PostCSS plugins list @@ -14,55 +13,53 @@ moderated by the PostCSS author. Plugins submitted by the community are located in [`docs/plugins`]. -* **Keep plugins ordered** +- **Keep plugins ordered** - Be sure that a plugin is not already present and find a suitable position - for it in alphabetical order. - However plugins with `postcss-` prefix should come first. + Be sure that a plugin is not already present and find a suitable position + for it in alphabetical order. + However plugins with `postcss-` prefix should come first. -* **Check spelling** +- **Check spelling** - Before submitting a PR make sure the spelling check is passing. - To run the check use `npm test`. - If it fails with an unknown word error, add it as a word - to `.yaspellerrc` dictionary. + Before submitting a PR make sure the spelling check is passing. + To run the check use `npm test`. + If it fails with an unknown word error, add it as a word + to `.yaspellerrc` dictionary. -* **Check PostCSS plugin guidelines** +- **Check PostCSS plugin guidelines** - The suggested plugin should match plugin [guidelines]. + The suggested plugin should match plugin [guidelines]. -- **Provide link to suggested plugin** +* **Provide link to suggested plugin** - Make sure your pull request description contains a link to the plugin - you want to add. + Make sure your pull request description contains a link to the plugin + you want to add. [`docs/plugins`]: https://github.com/postcss/postcss/blob/main/docs/plugins.md -[guidelines]: https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md - +[guidelines]: https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md ## TypeScript Declaration Improvements If you found a bug or want to add certain improvements to types declaration file: -* **Check current TypeScript styling** +- **Check current TypeScript styling** - Be sure that your changes match TypeScript styling rules defined in typings file. - * We use classes for existing JS classes like `Stringifier`. - * Namespaces used for separating functions related to the same subject. - * Interfaces used for defining custom types. + Be sure that your changes match TypeScript styling rules defined in typings file. + - We use classes for existing JS classes like `Stringifier`. + - Namespaces used for separating functions related to the same subject. + - Interfaces used for defining custom types. - Make sure you read through declaration file writing [best practices] - by the TypeScript team. + Make sure you read through declaration file writing [best practices] + by the TypeScript team. [best practices]: https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html - ## Core Development If you want to add new features or fix existing issues - **Become familiar with PostCSS architecture** - For a gentle intro to PostCSS architecture look through our [guide]. + For a gentle intro to PostCSS architecture look through our [guide]. [guide]: https://github.com/postcss/postcss/blob/main/docs/architecture.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 4716dbab3..5a2989182 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1086 +1,1358 @@ # Change Log + This project adheres to [Semantic Versioning](https://semver.org/). ## 8.5.8 -* Fixed `Processor#version`. + +- Fixed `Processor#version`. ## 8.5.7 -* Improved source map annotation cleaning performance (by CodeAnt AI). + +- Improved source map annotation cleaning performance (by CodeAnt AI). ## 8.5.6 -* Fixed `ContainerWithChildren` type discriminating (by @Goodwine). + +- Fixed `ContainerWithChildren` type discriminating (by @Goodwine). ## 8.5.5 -* Fixed `package.json`→`exports` compatibility with some tools (by @JounQin). + +- Fixed `package.json`→`exports` compatibility with some tools (by @JounQin). ## 8.5.4 -* Fixed Parcel compatibility issue (by @git-sumitchaudhary). + +- Fixed Parcel compatibility issue (by @git-sumitchaudhary). ## 8.5.3 -* Added more details to `Unknown word` error (by @hiepxanh). -* Fixed types (by @romainmenke). -* Fixed docs (by @catnipan). + +- Added more details to `Unknown word` error (by @hiepxanh). +- Fixed types (by @romainmenke). +- Fixed docs (by @catnipan). ## 8.5.2 -* Fixed end position of rules with semicolon (by @romainmenke). + +- Fixed end position of rules with semicolon (by @romainmenke). ## 8.5.1 -* Fixed backwards compatibility for complex cases (by @romainmenke). + +- Fixed backwards compatibility for complex cases (by @romainmenke). ## 8.5 “Duke Alloces” -* Added `Input#document` for sources like CSS-in-JS or HTML (by @romainmenke). + +- Added `Input#document` for sources like CSS-in-JS or HTML (by @romainmenke). ## 8.4.49 -* Fixed custom syntax without `source.offset` (by @romainmenke). + +- Fixed custom syntax without `source.offset` (by @romainmenke). ## 8.4.48 -* Fixed position calculation in error/warnings methods (by @romainmenke). + +- Fixed position calculation in error/warnings methods (by @romainmenke). ## 8.4.47 -* Removed debug code. + +- Removed debug code. ## 8.4.46 -* Fixed `Cannot read properties of undefined (reading 'before')`. + +- Fixed `Cannot read properties of undefined (reading 'before')`. ## 8.4.45 -* Removed unnecessary fix which could lead to infinite loop. + +- Removed unnecessary fix which could lead to infinite loop. ## 8.4.44 -* Another way to fix `markClean is not a function` error. + +- Another way to fix `markClean is not a function` error. ## 8.4.43 -* Fixed `markClean is not a function` error. + +- Fixed `markClean is not a function` error. ## 8.4.42 -* Fixed CSS syntax error on long minified files (by @varpstar). + +- Fixed CSS syntax error on long minified files (by @varpstar). ## 8.4.41 -* Fixed types (by @nex3 and @querkmachine). -* Cleaned up RegExps (by @bluwy). + +- Fixed types (by @nex3 and @querkmachine). +- Cleaned up RegExps (by @bluwy). ## 8.4.40 -* Moved to getter/setter in nodes types to help Sass team (by @nex3). + +- Moved to getter/setter in nodes types to help Sass team (by @nex3). ## 8.4.39 -* Fixed `CssSyntaxError` types (by @romainmenke). + +- Fixed `CssSyntaxError` types (by @romainmenke). ## 8.4.38 -* Fixed `endIndex: 0` in errors and warnings (by @romainmenke). + +- Fixed `endIndex: 0` in errors and warnings (by @romainmenke). ## 8.4.37 -* Fixed `original.column are not numbers` error in another case. + +- Fixed `original.column are not numbers` error in another case. ## 8.4.36 -* Fixed `original.column are not numbers` error on broken previous source map. + +- Fixed `original.column are not numbers` error on broken previous source map. ## 8.4.35 -* Avoid `!` in `node.parent.nodes` type. -* Allow to pass `undefined` to node adding method to simplify types. + +- Avoid `!` in `node.parent.nodes` type. +- Allow to pass `undefined` to node adding method to simplify types. ## 8.4.34 -* Fixed `AtRule#nodes` type (by Tim Weißenfels). -* Cleaned up code (by Dmitry Kirillov). + +- Fixed `AtRule#nodes` type (by Tim Weißenfels). +- Cleaned up code (by Dmitry Kirillov). ## 8.4.33 -* Fixed `NoWorkResult` behavior difference with normal mode (by Romain Menke). -* Fixed `NoWorkResult` usage conditions (by @ahmdammarr). + +- Fixed `NoWorkResult` behavior difference with normal mode (by Romain Menke). +- Fixed `NoWorkResult` usage conditions (by @ahmdammarr). ## 8.4.32 -* Fixed `postcss().process()` types (by Andrew Ferreira). + +- Fixed `postcss().process()` types (by Andrew Ferreira). ## 8.4.31 -* Fixed `\r` parsing to fix CVE-2023-44270. + +- Fixed `\r` parsing to fix CVE-2023-44270. ## 8.4.30 -* Improved source map performance (by Romain Menke). + +- Improved source map performance (by Romain Menke). ## 8.4.29 -* Fixed `Node#source.offset` (by Ido Rosenthal). -* Fixed docs (by Christian Oliff). + +- Fixed `Node#source.offset` (by Ido Rosenthal). +- Fixed docs (by Christian Oliff). ## 8.4.28 -* Fixed `Root.source.end` for better source map (by Romain Menke). -* Fixed `Result.root` types when `process()` has no parser. + +- Fixed `Root.source.end` for better source map (by Romain Menke). +- Fixed `Result.root` types when `process()` has no parser. ## 8.4.27 -* Fixed `Container` clone methods types. + +- Fixed `Container` clone methods types. ## 8.4.26 -* Fixed clone methods types. + +- Fixed clone methods types. ## 8.4.25 -* Improve stringify performance (by Romain Menke). -* Fixed docs (by @vikaskaliramna07). + +- Improve stringify performance (by Romain Menke). +- Fixed docs (by @vikaskaliramna07). ## 8.4.24 -* Fixed `Plugin` types. + +- Fixed `Plugin` types. ## 8.4.23 -* Fixed warnings in TypeDoc. + +- Fixed warnings in TypeDoc. ## 8.4.22 -* Fixed TypeScript support with `node16` (by Remco Haszing). + +- Fixed TypeScript support with `node16` (by Remco Haszing). ## 8.4.21 -* Fixed `Input#error` types (by Aleks Hudochenkov). + +- Fixed `Input#error` types (by Aleks Hudochenkov). ## 8.4.20 -* Fixed source map generation for childless at-rules like `@layer`. + +- Fixed source map generation for childless at-rules like `@layer`. ## 8.4.19 -* Fixed whitespace preserving after AST transformations (by Romain Menke). + +- Fixed whitespace preserving after AST transformations (by Romain Menke). ## 8.4.18 -* Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas). + +- Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas). ## 8.4.17 -* Fixed `Node.before()` unexpected behavior (by Romain Menke). -* Added TOC to docs (by Mikhail Dedov). + +- Fixed `Node.before()` unexpected behavior (by Romain Menke). +- Added TOC to docs (by Mikhail Dedov). ## 8.4.16 -* Fixed `Root` AST migration. + +- Fixed `Root` AST migration. ## 8.4.15 -* Fixed AST normalization after using custom parser with old PostCSS AST. + +- Fixed AST normalization after using custom parser with old PostCSS AST. ## 8.4.14 -* Print “old plugin API” warning only if plugin was used (by @zardoy). + +- Print “old plugin API” warning only if plugin was used (by @zardoy). ## 8.4.13 -* Fixed `append()` error after using `.parent` (by Jordan Pittman). + +- Fixed `append()` error after using `.parent` (by Jordan Pittman). ## 8.4.12 -* Fixed `package.funding` to have same value between all PostCSS packages. + +- Fixed `package.funding` to have same value between all PostCSS packages. ## 8.4.11 -* Fixed `Declaration#raws.value` type. + +- Fixed `Declaration#raws.value` type. ## 8.4.10 -* Fixed `package.funding` URL format. + +- Fixed `package.funding` URL format. ## 8.4.9 -* Fixed `package.funding` (by Álvaro Mondéjar). + +- Fixed `package.funding` (by Álvaro Mondéjar). ## 8.4.8 -* Fixed end position in empty Custom Properties. + +- Fixed end position in empty Custom Properties. ## 8.4.7 -* Fixed `Node#warn()` type (by Masafumi Koba). -* Fixed comment removal in values after `,`. + +- Fixed `Node#warn()` type (by Masafumi Koba). +- Fixed comment removal in values after `,`. ## 8.4.6 -* Prevented comment removing when it change meaning of CSS. -* Fixed parsing space in last semicolon-less CSS Custom Properties. -* Fixed comment cleaning in CSS Custom Properties with space. -* Fixed throwing an error on `.root` access for plugin-less case. + +- Prevented comment removing when it change meaning of CSS. +- Fixed parsing space in last semicolon-less CSS Custom Properties. +- Fixed comment cleaning in CSS Custom Properties with space. +- Fixed throwing an error on `.root` access for plugin-less case. ## 8.4.5 -* Fixed `raws` types to make object extendable (by James Garbutt). -* Moved from Yarn 1 to pnpm. + +- Fixed `raws` types to make object extendable (by James Garbutt). +- Moved from Yarn 1 to pnpm. ## 8.4.4 -* Fixed absolute path in source map on zero plugins mode. + +- Fixed absolute path in source map on zero plugins mode. ## 8.4.3 -* Fixed `this.css.replace is not a function` error. + +- Fixed `this.css.replace is not a function` error. ## 8.4.2 -* Fixed previous source map support in zero plugins mode. + +- Fixed previous source map support in zero plugins mode. ## 8.4.1 -* Fixed `Stringifier` types (by James Garbutt). + +- Fixed `Stringifier` types (by James Garbutt). ## 8.4 “President Camio” -* Added ranges for errors and warnings (by Adaline Valentina Simonian). -* Added `Stringifier` types (by James Garbutt). -* Added `Processor` types. -* Removed `PostCSS does nothing` warning by lazy parser (Bogdan Dolin). -* Fixed `Node#walkRules()` types (by Aleks Hudochenkov). -* Fixed types `Root` and `Document` in result values (by James Garbutt). -* Reduced npm install size by 0.5 MB. -* Moved tests from Jest to `uvu` (by Andrey Kim). -* Fixed docs (by Paul Shryock). + +- Added ranges for errors and warnings (by Adaline Valentina Simonian). +- Added `Stringifier` types (by James Garbutt). +- Added `Processor` types. +- Removed `PostCSS does nothing` warning by lazy parser (Bogdan Dolin). +- Fixed `Node#walkRules()` types (by Aleks Hudochenkov). +- Fixed types `Root` and `Document` in result values (by James Garbutt). +- Reduced npm install size by 0.5 MB. +- Moved tests from Jest to `uvu` (by Andrey Kim). +- Fixed docs (by Paul Shryock). ## 8.3.11 -* Remove debugging code. + +- Remove debugging code. ## 8.3.10 -* Fixed `Maximum call stack` issue of some source maps (by Yeting Li). + +- Fixed `Maximum call stack` issue of some source maps (by Yeting Li). ## 8.3.9 -* Replaced `nanocolors` to `picocolors`. -* Reduced package size. + +- Replaced `nanocolors` to `picocolors`. +- Reduced package size. ## 8.3.8 -* Update `nanocolors`. + +- Update `nanocolors`. ## 8.3.7 -* Replaced `colorette` to `nanocolors`. -* Added bug field to `package.json` (by Christian Oliff). -* Improved docs (by Andrew Bruce and Paul Shryock). + +- Replaced `colorette` to `nanocolors`. +- Added bug field to `package.json` (by Christian Oliff). +- Improved docs (by Andrew Bruce and Paul Shryock). ## 8.3.6 -* Fixed column in `missed semicolon` error (by @Gusted). + +- Fixed column in `missed semicolon` error (by @Gusted). ## 8.3.5 -* Fixed broken AST detection. + +- Fixed broken AST detection. ## 8.3.4 -* Fixed broken AST detection. + +- Fixed broken AST detection. ## 8.3.3 -* Fixed broken AST on `postcss` dependency duplication in custom parsers. + +- Fixed broken AST on `postcss` dependency duplication in custom parsers. ## 8.3.2 -* Update changelog. + +- Update changelog. ## 8.3.1 -* Fixed false positives `PostCSS does nothing` warning on `syntax` option. + +- Fixed false positives `PostCSS does nothing` warning on `syntax` option. ## 8.3 “Duke Murmur” -* Added `Node#assign()` shortcut (by Jonathan Neal). -* Added experimental `Document` node to AST (by Aleks Hudochenkov). -* Moved to faster fork of `source-map` (by Valentin Semirulnik). + +- Added `Node#assign()` shortcut (by Jonathan Neal). +- Added experimental `Document` node to AST (by Aleks Hudochenkov). +- Moved to faster fork of `source-map` (by Valentin Semirulnik). ## 8.2.15 -* Fixed `list` type definitions (by @n19htz). + +- Fixed `list` type definitions (by @n19htz). ## 8.2.14 -* Removed `source-map` from client-side bundle (by Barak Igal). + +- Removed `source-map` from client-side bundle (by Barak Igal). ## 8.2.13 -* Fixed ReDoS vulnerabilities in source map parsing (by Yeting Li). + +- Fixed ReDoS vulnerabilities in source map parsing (by Yeting Li). ## 8.2.12 -* Fixed `package.json` exports. + +- Fixed `package.json` exports. ## 8.2.11 -* Fixed `DEP0148` warning in Node.js 16. -* Fixed docs (by @semiromid). + +- Fixed `DEP0148` warning in Node.js 16. +- Fixed docs (by @semiromid). ## 8.2.10 -* Fixed ReDoS vulnerabilities in source map parsing. -* Fixed webpack 5 support (by Barak Igal). -* Fixed docs (by Roeland Moors). + +- Fixed ReDoS vulnerabilities in source map parsing. +- Fixed webpack 5 support (by Barak Igal). +- Fixed docs (by Roeland Moors). ## 8.2.9 -* Exported `NodeErrorOptions` type (by Rouven Weßling). + +- Exported `NodeErrorOptions` type (by Rouven Weßling). ## 8.2.8 -* Fixed browser builds in webpack 4 (by Matt Jones). + +- Fixed browser builds in webpack 4 (by Matt Jones). ## 8.2.7 -* Fixed browser builds in webpack 5 (by Matt Jones). + +- Fixed browser builds in webpack 5 (by Matt Jones). ## 8.2.6 -* Fixed `Maximum call stack size exceeded` in `Node#toJSON`. -* Fixed docs (by inokawa). + +- Fixed `Maximum call stack size exceeded` in `Node#toJSON`. +- Fixed docs (by inokawa). ## 8.2.5 -* Fixed escaped characters handling in `list.split` (by Natalie Weizenbaum). + +- Fixed escaped characters handling in `list.split` (by Natalie Weizenbaum). ## 8.2.4 -* Added plugin name to `postcss.plugin()` warning (by Tom Williams). -* Fixed docs (by Bill Columbia). + +- Added plugin name to `postcss.plugin()` warning (by Tom Williams). +- Fixed docs (by Bill Columbia). ## 8.2.3 -* Fixed `JSON.stringify(Node[])` support (by Niklas Mischkulnig). + +- Fixed `JSON.stringify(Node[])` support (by Niklas Mischkulnig). ## 8.2.2 -* Fixed CSS-in-JS support (by James Garbutt). -* Fixed plugin types (by Ludovico Fischer). -* Fixed `Result#warn()` types. + +- Fixed CSS-in-JS support (by James Garbutt). +- Fixed plugin types (by Ludovico Fischer). +- Fixed `Result#warn()` types. ## 8.2.1 -* Fixed `Node#toJSON()` and `postcss.fromJSON()` (by Niklas Mischkulnig). + +- Fixed `Node#toJSON()` and `postcss.fromJSON()` (by Niklas Mischkulnig). ## 8.2 “Prince Orobas” -* Added `Node#toJSON()` and `postcss.fromJSON()` (by Niklas Mischkulnig). + +- Added `Node#toJSON()` and `postcss.fromJSON()` (by Niklas Mischkulnig). ## 8.1.14 -* Fixed parser performance regression. + +- Fixed parser performance regression. ## 8.1.13 -* Fixed broken AST after moving nodes in visitor API. + +- Fixed broken AST after moving nodes in visitor API. ## 8.1.12 -* Fixed Autoprefixer regression. + +- Fixed Autoprefixer regression. ## 8.1.11 -* Added PostCSS update suggestion on unknown event in plugin. + +- Added PostCSS update suggestion on unknown event in plugin. ## 8.1.10 -* Fixed `LazyResult` type export (by Evan You). -* Fixed `LazyResult` type compatibility with `Promise` (by Anton Kastritskiy). + +- Fixed `LazyResult` type export (by Evan You). +- Fixed `LazyResult` type compatibility with `Promise` (by Anton Kastritskiy). ## 8.1.9 -* Reduced dependencies number (by Bogdan Chadkin). + +- Reduced dependencies number (by Bogdan Chadkin). ## 8.1.8 -* Fixed `LazyResult` type compatibility with `Promise` (by Ludovico Fischer). -* Fixed HTTPS links in documentation. + +- Fixed `LazyResult` type compatibility with `Promise` (by Ludovico Fischer). +- Fixed HTTPS links in documentation. ## 8.1.7 -* Fixed `import` support in TypeScript (by Remco Haszing). + +- Fixed `import` support in TypeScript (by Remco Haszing). ## 8.1.6 -* Reverted `package.exports` Node.js 15 fix. + +- Reverted `package.exports` Node.js 15 fix. ## 8.1.5 -* Fixed Node.js 15 warning (by 沈鸿飞). + +- Fixed Node.js 15 warning (by 沈鸿飞). ## 8.1.4 -* Fixed TypeScript definition (by Arthur Petrie). + +- Fixed TypeScript definition (by Arthur Petrie). ## 8.1.3 -* Added `package.types`. + +- Added `package.types`. ## 8.1.2 -* Fixed API docs (by Arthur Petrie). -* Improved plugin guide (by Yunus Gaziev). -* Prepared code base for Deno support (by Oscar Otero). + +- Fixed API docs (by Arthur Petrie). +- Improved plugin guide (by Yunus Gaziev). +- Prepared code base for Deno support (by Oscar Otero). ## 8.1.1 -* Updated funding link. + +- Updated funding link. ## 8.1 “Duke Gemory” -* Added `Once` and `OnceExit` events. -* Fixed `Root` and `RootExit` events re-visiting. -* Fixed node re-visiting on deep children changes. -* Added docs for visitor API events. + +- Added `Once` and `OnceExit` events. +- Fixed `Root` and `RootExit` events re-visiting. +- Fixed node re-visiting on deep children changes. +- Added docs for visitor API events. ## 8.0.9 -* Replace prototype in PostCSS 7 nodes instead of recreating them. -* Added missed `Transformer` to exported types (by Pierre-Marie Dartus). + +- Replace prototype in PostCSS 7 nodes instead of recreating them. +- Added missed `Transformer` to exported types (by Pierre-Marie Dartus). ## 8.0.8 -* Fix `8.0.7` regression on PostCSS 7 nodes converting (by Adam Wathan). + +- Fix `8.0.7` regression on PostCSS 7 nodes converting (by Adam Wathan). ## 8.0.7 -* Fixed compatibility issue with mixin AST with PostCSS 7 and 8 nodes. -* Added migration guide translation to Chinese to the warning. + +- Fixed compatibility issue with mixin AST with PostCSS 7 and 8 nodes. +- Added migration guide translation to Chinese to the warning. ## 8.0.6 -* Fixed child adding methods in `Container`. + +- Fixed child adding methods in `Container`. ## 8.0.5 -* Update changelog. + +- Update changelog. ## 8.0.4 -* Fixed `Cannot read property 'line' of null` error. -* Fixed source map support for declarations. + +- Fixed `Cannot read property 'line' of null` error. +- Fixed source map support for declarations. ## 8.0.3 -* Fixed client-side bundling support. + +- Fixed client-side bundling support. ## 8.0.2 -* Fixed plugin packs support. + +- Fixed plugin packs support. ## 8.0.1 -* Updated `Processor#version`. + +- Updated `Processor#version`. ## 8.0 “President Ose” -* Removed support for Node.js 6.x, 8.x, 11.x, and 13.x versions. -* Removed `postcss.vendor` helpers. -* Deprecated `postcss.plugin()` API. -* Treats `sourceMap.sources` as URL instead of file path. -* Plugins and runners must have `postcss` in `peerDependencies`. -* Prohibited to extend PostCSS AST classes. -* Moved from JSDoc to TypeDoc. -* Moved unknown source from counter to random IDs. -* Added visitor API for plugins (by Alexey Bondarenko). -* Added ES modules support. -* Added named exports for public classes `const { Rule } = require('postcss)`. -* Added `position.url` to `Node#origin()` result. -* Added `opts.maps.absolute = true` option. -* Added `opts.maps.annotation = (file, root) => url` option support. -* Added `Node#source.offset` (by Ayaz Zaynutdinov). -* Added `Declaration#variable`. -* Added JSON source map support. -* Added index source map support. -* Added `Declaration#value` auto-converting to string. -* Fixed parsing `{}` in at-rule parameters. -* Fixed parsing empty Custom Properties. `--foo: ;` will have ` ` value. -* Fixed building PostCSS with Rollup (by MapGrid). -* Fixed TypeScript types. -* Fixed source map relative paths. -* Fixed calling `replaceWith` with input replaced node (by Joseph Kaptur). -* Improved “Writing a PostCSS Plugin” docs (by Alexey Bondarenko). -* Removed Babel from the project’s release process. -* Removed docs from npm package. -* Replaced `chalk` to `colorette`. + +- Removed support for Node.js 6.x, 8.x, 11.x, and 13.x versions. +- Removed `postcss.vendor` helpers. +- Deprecated `postcss.plugin()` API. +- Treats `sourceMap.sources` as URL instead of file path. +- Plugins and runners must have `postcss` in `peerDependencies`. +- Prohibited to extend PostCSS AST classes. +- Moved from JSDoc to TypeDoc. +- Moved unknown source from counter to random IDs. +- Added visitor API for plugins (by Alexey Bondarenko). +- Added ES modules support. +- Added named exports for public classes `const { Rule } = require('postcss)`. +- Added `position.url` to `Node#origin()` result. +- Added `opts.maps.absolute = true` option. +- Added `opts.maps.annotation = (file, root) => url` option support. +- Added `Node#source.offset` (by Ayaz Zaynutdinov). +- Added `Declaration#variable`. +- Added JSON source map support. +- Added index source map support. +- Added `Declaration#value` auto-converting to string. +- Fixed parsing `{}` in at-rule parameters. +- Fixed parsing empty Custom Properties. `--foo: ;` will have ` ` value. +- Fixed building PostCSS with Rollup (by MapGrid). +- Fixed TypeScript types. +- Fixed source map relative paths. +- Fixed calling `replaceWith` with input replaced node (by Joseph Kaptur). +- Improved “Writing a PostCSS Plugin” docs (by Alexey Bondarenko). +- Removed Babel from the project’s release process. +- Removed docs from npm package. +- Replaced `chalk` to `colorette`. ## 7.0.38 -* Update `Processor#version`. + +- Update `Processor#version`. ## 7.0.37 -* Backport `chalk` to `nanocolors` migration. + +- Backport `chalk` to `nanocolors` migration. ## 7.0.36 -* Backport ReDoS vulnerabilities from PostCSS 8. + +- Backport ReDoS vulnerabilities from PostCSS 8. ## 7.0.35 -* Add migration guide link to PostCSS 8 error text. + +- Add migration guide link to PostCSS 8 error text. ## 7.0.34 -* Fix compatibility with `postcss-scss` 2. + +- Fix compatibility with `postcss-scss` 2. ## 7.0.33 -* Add error message for PostCSS 8 plugins. + +- Add error message for PostCSS 8 plugins. ## 7.0.32 -* Fix error message (by @admosity). + +- Fix error message (by @admosity). ## 7.0.31 -* Use only the latest source map annotation (by Emmanouil Zoumpoulakis). + +- Use only the latest source map annotation (by Emmanouil Zoumpoulakis). ## 7.0.30 -* Fix TypeScript definition (by Natalie Weizenbaum). + +- Fix TypeScript definition (by Natalie Weizenbaum). ## 7.0.29 -* Update `Processor#version`. + +- Update `Processor#version`. ## 7.0.28 -* Fix TypeScript definition (by Natalie Weizenbaum). + +- Fix TypeScript definition (by Natalie Weizenbaum). ## 7.0.27 -* Fix TypeScript definition (by Natalie Weizenbaum). + +- Fix TypeScript definition (by Natalie Weizenbaum). ## 7.0.26 -* Fix TypeScript definition (by Natalie Weizenbaum). + +- Fix TypeScript definition (by Natalie Weizenbaum). ## 7.0.25 -* Fix absolute path support for Windows (by Tom Raviv). + +- Fix absolute path support for Windows (by Tom Raviv). ## 7.0.24 -* Fix TypeScript definition (by Keith Cirkel). + +- Fix TypeScript definition (by Keith Cirkel). ## 7.0.23 -* Update `Processor#version`. + +- Update `Processor#version`. ## 7.0.22 -* Add funding link for `npm fund`. + +- Add funding link for `npm fund`. ## 7.0.21 -* Revert passing `nodes` property to node constructor. + +- Revert passing `nodes` property to node constructor. ## 7.0.20 -* Allow to pass PostCSS’s nodes in `nodes` property to node constructor. + +- Allow to pass PostCSS’s nodes in `nodes` property to node constructor. ## 7.0.19 -* Fix passing `nodes` property to node constructor. + +- Fix passing `nodes` property to node constructor. ## 7.0.18 -* Fix TypeScript type definitions (by Jan Buschtöns). + +- Fix TypeScript type definitions (by Jan Buschtöns). ## 7.0.17 -* Fix TypeScript type definitions (by Bob Matcuk and Jan Buschtöns). + +- Fix TypeScript type definitions (by Bob Matcuk and Jan Buschtöns). ## 7.0.16 -* Revert Custom Properties fix until PostCSS 8.0. + +- Revert Custom Properties fix until PostCSS 8.0. ## 7.0.15 -* Fix Custom Properties support (by Ivan Solovev). + +- Fix Custom Properties support (by Ivan Solovev). ## 7.0.14 -* Fix tokenizer for `postcss-less` (by Matt Lyons). + +- Fix tokenizer for `postcss-less` (by Matt Lyons). ## 7.0.13 -* Fix parsing regression in 7.0.12 for comments between property and value. + +- Fix parsing regression in 7.0.12 for comments between property and value. ## 7.0.12 -* Fix parsing broken CSS with two words in declaration property. + +- Fix parsing broken CSS with two words in declaration property. ## 7.0.11 -* Fix source maps on declaration semicolon (by Niklas Mischkulnig). + +- Fix source maps on declaration semicolon (by Niklas Mischkulnig). ## 7.0.10 -* Fix source maps (by Niklas Mischkulnig). + +- Fix source maps (by Niklas Mischkulnig). ## 7.0.9 -* Increase stringifing performance for non-raws AST. + +- Increase stringifing performance for non-raws AST. ## 7.0.8 -* Fix TypeScript definitions (by Ankur Oberoi). -* Use `support-colors` 6.0. + +- Fix TypeScript definitions (by Ankur Oberoi). +- Use `support-colors` 6.0. ## 7.0.7 -* Extend `Error` in `CssSyntaxError`. + +- Extend `Error` in `CssSyntaxError`. ## 7.0.6 -* Fix parsing files with BOM (by Veniamin Krol). + +- Fix parsing files with BOM (by Veniamin Krol). ## 7.0.5 -* Reduce npm package size (by Gilad Peleg). + +- Reduce npm package size (by Gilad Peleg). ## 7.0.4 -* Fix safe parser regression. + +- Fix safe parser regression. ## 7.0.3 -* Fix tokenizer extendability (by Andrew Powell). -* Reduce npm package size. + +- Fix tokenizer extendability (by Andrew Powell). +- Reduce npm package size. ## 7.0.2 -* Fix warning text (by Rui Pedro M Lima). + +- Fix warning text (by Rui Pedro M Lima). ## 7.0.1 -* Fix JSDoc (by Steven Lambert). + +- Fix JSDoc (by Steven Lambert). ## 7.0 “President Amy” -* Remove Node.js 9 and Node.js 4 support. -* Remove IE and “dead” browsers support for client-side Babel transpiling. -* Add CSS position on error happened inside `walk()` (by Nikhil Gaba). -* Add `LazyResult#finally` (by Igor Kamyshev). -* Add warning on calling PostCSS without plugins and syntax options. -* Reduce client-side size. + +- Remove Node.js 9 and Node.js 4 support. +- Remove IE and “dead” browsers support for client-side Babel transpiling. +- Add CSS position on error happened inside `walk()` (by Nikhil Gaba). +- Add `LazyResult#finally` (by Igor Kamyshev). +- Add warning on calling PostCSS without plugins and syntax options. +- Reduce client-side size. ## 6.0.23 -* Fix parsing nested at-rules without semicolon, params, and spaces. -* Fix docs (by Kevin Schiffer and Pat Cavit). + +- Fix parsing nested at-rules without semicolon, params, and spaces. +- Fix docs (by Kevin Schiffer and Pat Cavit). ## 6.0.22 -* Fix `Node#prev` and `Node#next` on missed parent. + +- Fix `Node#prev` and `Node#next` on missed parent. ## 6.0.21 -* Rename Chinese docs to fix `yarnpkg.com` issue. + +- Rename Chinese docs to fix `yarnpkg.com` issue. ## 6.0.20 -* Better error message on `null` as input CSS. + +- Better error message on `null` as input CSS. ## 6.0.19 -* Fix TypeScript definitions for source maps (by Oleh Kuchuk). -* Fix `source` field in TypeScript definitions (by Sylvain Pollet-Villard). + +- Fix TypeScript definitions for source maps (by Oleh Kuchuk). +- Fix `source` field in TypeScript definitions (by Sylvain Pollet-Villard). ## 6.0.18 -* Use primitive object in TypeScript definitions (by Sylvain Pollet-Villard). + +- Use primitive object in TypeScript definitions (by Sylvain Pollet-Villard). ## 6.0.17 -* Fix parsing comment in selector between word tokens (by Oleh Kuchuk). + +- Fix parsing comment in selector between word tokens (by Oleh Kuchuk). ## 6.0.16 -* Fix warning text (by Michael Keller). + +- Fix warning text (by Michael Keller). ## 6.0.15 -* Add warning about missed `from` option on `process().then()` call. -* Add IE 10 support. + +- Add warning about missed `from` option on `process().then()` call. +- Add IE 10 support. ## 6.0.14 -* Fix TypeScript definitions (by Jed Mao). + +- Fix TypeScript definitions (by Jed Mao). ## 6.0.13 -* Fix TypeScript definitions for case of multiple PostCSS versions + +- Fix TypeScript definitions for case of multiple PostCSS versions in `node_modules` (by Chris Eppstein). -* Use `source-map` 0.6. +- Use `source-map` 0.6. ## 6.0.12 -* Don’t copy `*` hack to declaration indent. + +- Don’t copy `*` hack to declaration indent. ## 6.0.11 -* Add upper case `!IMPORTANT` support. + +- Add upper case `!IMPORTANT` support. ## 6.0.10 -* Reduce PostCSS size in webpack bundle. + +- Reduce PostCSS size in webpack bundle. ## 6.0.9 -* Improve error message for plugin with old PostCSS (by Igor Adamenko). + +- Improve error message for plugin with old PostCSS (by Igor Adamenko). ## 6.0.8 -* Fix Node.js 4.2.2 support. + +- Fix Node.js 4.2.2 support. ## 6.0.7 -* Fix base64 decoding for old Node.js and browser. + +- Fix base64 decoding for old Node.js and browser. ## 6.0.6 -* Fix `end` position in at-rule without semicolon (by Oleh Kuchuk). + +- Fix `end` position in at-rule without semicolon (by Oleh Kuchuk). ## 6.0.5 -* Move Babel config from `package.json` for `node_modules` compiling cases. + +- Move Babel config from `package.json` for `node_modules` compiling cases. ## 6.0.4 -* Fix parsing `;;` after rules. -* Use Chalk 2.0. + +- Fix parsing `;;` after rules. +- Use Chalk 2.0. ## 6.0.3 -* Fix escape sequences parsing (by Oleh Kuchuk). -* Added ability to force disable colors with an environment variable. -* Improved color detection of some terminal apps. + +- Fix escape sequences parsing (by Oleh Kuchuk). +- Added ability to force disable colors with an environment variable. +- Improved color detection of some terminal apps. ## 6.0.2 -* Keep `raws.before` on moving `Root` children to new `Root`. + +- Keep `raws.before` on moving `Root` children to new `Root`. ## 6.0.1 -* Fix parser extensibility to use it in Safe Parser. + +- Fix parser extensibility to use it in Safe Parser. ## 6.0 “Marquis Orias” -* Remove node.js 0.12 support. -* Remove deprecated method from PostCSS 4. -* Insert methods remove child from previous parent, instead of closing. -* Insert methods and cloning doesn’t clean `raws` anymore. -* Methods `moveTo`, `moveAfter`, `moveBefore` were deprecated. -* Options was changed in `Plugin#process(css, processOptions, pluginOptions)`. -* Add stream parser to reduce memory usage (by Oleh Kuchuk). -* Add `before()`/`after()` shortcuts for `node.parent.insertBefore(node, x)`. -* Add `Rule#raws.ownSemicolon` for semicolon after templates for `@apply`. -* Use `babel-preset-env` to compile npm package. -* Remove `js-base64` from dependencies (by Roman Dvornov). -* Fix error message on single `:` in CSS. -* Move tests to Jest. -* Clean up test (by Gabriel Kalani). + +- Remove node.js 0.12 support. +- Remove deprecated method from PostCSS 4. +- Insert methods remove child from previous parent, instead of closing. +- Insert methods and cloning doesn’t clean `raws` anymore. +- Methods `moveTo`, `moveAfter`, `moveBefore` were deprecated. +- Options was changed in `Plugin#process(css, processOptions, pluginOptions)`. +- Add stream parser to reduce memory usage (by Oleh Kuchuk). +- Add `before()`/`after()` shortcuts for `node.parent.insertBefore(node, x)`. +- Add `Rule#raws.ownSemicolon` for semicolon after templates for `@apply`. +- Use `babel-preset-env` to compile npm package. +- Remove `js-base64` from dependencies (by Roman Dvornov). +- Fix error message on single `:` in CSS. +- Move tests to Jest. +- Clean up test (by Gabriel Kalani). ## 5.2.18 -* Fix TypeScript definitions for case of multiple PostCSS versions + +- Fix TypeScript definitions for case of multiple PostCSS versions in `node_modules` (by Chris Eppstein). ## 5.2.17 -* Add `postcss-sass` suggestion to syntax error on `.sass` input. + +- Add `postcss-sass` suggestion to syntax error on `.sass` input. ## 5.2.16 -* Better error on wrong argument in node constructor. + +- Better error on wrong argument in node constructor. ## 5.2.15 -* Fix TypeScript definitions (by bumbleblym). + +- Fix TypeScript definitions (by bumbleblym). ## 5.2.14 -* Fix browser bundle building in webpack (by janschoenherr). + +- Fix browser bundle building in webpack (by janschoenherr). ## 5.2.13 -* Do not add comment to important raws. -* Fix JSDoc (by Dmitry Semigradsky). + +- Do not add comment to important raws. +- Fix JSDoc (by Dmitry Semigradsky). ## 5.2.12 -* Fix typo in deprecation message (by Garet McKinley). + +- Fix typo in deprecation message (by Garet McKinley). ## 5.2.11 -* Fix TypeScript definitions (by Jed Mao). + +- Fix TypeScript definitions (by Jed Mao). ## 5.2.10 -* Fix TypeScript definitions (by Jed Mao). + +- Fix TypeScript definitions (by Jed Mao). ## 5.2.9 -* Update TypeScript definitions (by Jed Mao). + +- Update TypeScript definitions (by Jed Mao). ## 5.2.8 -* Fix error message (by Ben Briggs). + +- Fix error message (by Ben Briggs). ## 5.2.7 -* Better error message on syntax object in plugins list. + +- Better error message on syntax object in plugins list. ## 5.2.6 -* Fix `postcss.vendor` for values with spaces (by 刘祺). + +- Fix `postcss.vendor` for values with spaces (by 刘祺). ## 5.2.5 -* Better error message on unclosed string (by Ben Briggs). + +- Better error message on unclosed string (by Ben Briggs). ## 5.2.4 -* Improve terminal CSS syntax highlight (by Simon Lydell). + +- Improve terminal CSS syntax highlight (by Simon Lydell). ## 5.2.3 -* Better color highlight in syntax error code frame. -* Fix color highlight support in old systems. + +- Better color highlight in syntax error code frame. +- Fix color highlight support in old systems. ## 5.2.2 -* Update `Processor#version`. + +- Update `Processor#version`. ## 5.2.1 -* Fix source map path for CSS without `from` option (by Michele Locati). + +- Fix source map path for CSS without `from` option (by Michele Locati). ## 5.2 “Duke Vapula” -* Add syntax highlight to code frame in syntax error (by Andrey Popp). -* Use Babel code frame style and size in syntax error. -* Add `[` and `]` tokens to parse `[attr=;] {}` correctly. -* Add `ignoreErrors` options to tokenizer (by Andrey Popp). -* Fix error position on tab indent (by Simon Lydell). + +- Add syntax highlight to code frame in syntax error (by Andrey Popp). +- Use Babel code frame style and size in syntax error. +- Add `[` and `]` tokens to parse `[attr=;] {}` correctly. +- Add `ignoreErrors` options to tokenizer (by Andrey Popp). +- Fix error position on tab indent (by Simon Lydell). ## 5.1.2 -* Suggests SCSS/Less parsers on parse errors depends on file extension. + +- Suggests SCSS/Less parsers on parse errors depends on file extension. ## 5.1.1 -* Fix TypeScript definitions (by Efremov Alexey). + +- Fix TypeScript definitions (by Efremov Alexey). ## 5.1 “King and President Zagan” -* Add URI in source map support (by Mark Finger). -* Add `map.from` option (by Mark Finger). -* Add `` mappings for nodes without source (by Bogdan Chadkin). -* Add function value support to `map.prev` option (by Chris Montoro). -* Add declaration value type check in shortcut creating (by 刘祺). -* `Result#warn` now returns new created warning. -* Don’t call plugin creator in `postcss.plugin` call. -* Add source maps to PostCSS ES5 build. -* Add JSDoc to PostCSS classes. -* Clean npm package from unnecessary docs. + +- Add URI in source map support (by Mark Finger). +- Add `map.from` option (by Mark Finger). +- Add `` mappings for nodes without source (by Bogdan Chadkin). +- Add function value support to `map.prev` option (by Chris Montoro). +- Add declaration value type check in shortcut creating (by 刘祺). +- `Result#warn` now returns new created warning. +- Don’t call plugin creator in `postcss.plugin` call. +- Add source maps to PostCSS ES5 build. +- Add JSDoc to PostCSS classes. +- Clean npm package from unnecessary docs. ## 5.0.21 -* Fix support with input source mao with `utf8` encoding name. + +- Fix support with input source mao with `utf8` encoding name. ## 5.0.20 -* Fix between raw value parsing (by David Clark). -* Update TypeScript definitions (by Jed Mao). -* Clean fake node.source after `append(string)`. + +- Fix between raw value parsing (by David Clark). +- Update TypeScript definitions (by Jed Mao). +- Clean fake node.source after `append(string)`. ## 5.0.19 -* Fix indent-based syntaxes support. + +- Fix indent-based syntaxes support. ## 5.0.18 -* Parse new lines according W3C CSS syntax specification. + +- Parse new lines according W3C CSS syntax specification. ## 5.0.17 -* Fix options argument in `Node#warn` (by Ben Briggs). -* Fix TypeScript definitions (by Jed Mao). + +- Fix options argument in `Node#warn` (by Ben Briggs). +- Fix TypeScript definitions (by Jed Mao). ## 5.0.16 -* Fix CSS syntax error position on unclosed quotes. + +- Fix CSS syntax error position on unclosed quotes. ## 5.0.15 -* Fix `Node#clone()` on `null` value somewhere in node. + +- Fix `Node#clone()` on `null` value somewhere in node. ## 5.0.14 -* Allow to use PostCSS in webpack bundle without JSON loader. + +- Allow to use PostCSS in webpack bundle without JSON loader. ## 5.0.13 -* Fix `index` and `word` options in `Warning#toString` (by Bogdan Chadkin). -* Fix input source content loading in errors. -* Fix map options on using `LazyResult` as input CSS. -* 100% test coverage. -* Use Babel 6. + +- Fix `index` and `word` options in `Warning#toString` (by Bogdan Chadkin). +- Fix input source content loading in errors. +- Fix map options on using `LazyResult` as input CSS. +- 100% test coverage. +- Use Babel 6. ## 5.0.12 -* Allow passing a previous map with no mappings (by Andreas Lind). + +- Allow passing a previous map with no mappings (by Andreas Lind). ## 5.0.11 -* Increase plugins performance by 1.5 times. + +- Increase plugins performance by 1.5 times. ## 5.0.10 -* Fix warning from nodes without source. + +- Fix warning from nodes without source. ## 5.0.9 -* Fix source map type detection (by @asan). + +- Fix source map type detection (by @asan). ## 5.0.8 -* Fixed a missed step in `5.0.7` that caused the module to be published as + +- Fixed a missed step in `5.0.7` that caused the module to be published as ES6 code. ## 5.0.7 -* PostCSS now requires that node 0.12 is installed via the engines property + +- PostCSS now requires that node 0.12 is installed via the engines property in package.json (by Howard Zuo). ## 5.0.6 -* Fix parsing nested at-rule without semicolon (by Matt Drake). -* Trim `Declaration#value` (by Bogdan Chadkin). + +- Fix parsing nested at-rule without semicolon (by Matt Drake). +- Trim `Declaration#value` (by Bogdan Chadkin). ## 5.0.5 -* Fix multi-tokens property parsing (by Matt Drake). + +- Fix multi-tokens property parsing (by Matt Drake). ## 5.0.4 -* Fix start position in `Root#source`. -* Fix source map annotation, when CSS uses `\r\n` (by Mohammad Younes). + +- Fix start position in `Root#source`. +- Fix source map annotation, when CSS uses `\r\n` (by Mohammad Younes). ## 5.0.3 -* Fix `url()` parsing. -* Fix using `selectors` in `Rule` constructor. -* Add start source to `Root` node. + +- Fix `url()` parsing. +- Fix using `selectors` in `Rule` constructor. +- Add start source to `Root` node. ## 5.0.2 -* Fix `remove(index)` to be compatible with 4.x plugin. + +- Fix `remove(index)` to be compatible with 4.x plugin. ## 5.0.1 -* Fix PostCSS 4.x plugins compatibility. -* Fix type definition loading (by Jed Mao). + +- Fix PostCSS 4.x plugins compatibility. +- Fix type definition loading (by Jed Mao). ## 5.0 “President Valac” -* Remove `safe` option. Move Safe Parser to separate project. -* `Node#toString` does not include `before` for root nodes. -* Remove plugin returning `Root` API. -* Remove Promise polyfill for node.js 0.10. -* Deprecate `eachInside`, `eachDecl`, `eachRule`, `eachAtRule` and `eachComment` + +- Remove `safe` option. Move Safe Parser to separate project. +- `Node#toString` does not include `before` for root nodes. +- Remove plugin returning `Root` API. +- Remove Promise polyfill for node.js 0.10. +- Deprecate `eachInside`, `eachDecl`, `eachRule`, `eachAtRule` and `eachComment` in favor of `walk`, `walkDecls`, `walkRules`, `walkAtRules` and `walkComments` (by Jed Mao). -* Deprecate `Container#remove` and `Node#removeSelf` +- Deprecate `Container#remove` and `Node#removeSelf` in favor of `Container#removeChild` and `Node#remove` (by Ben Briggs). -* Deprecate `Node#replace` in favor of `replaceWith` (by Ben Briggs). -* Deprecate raw properties in favor of `Node#raws` object. -* Deprecate `Node#style` in favor of `raw`. -* Deprecate `CssSyntaxError#generated` in favor of `input`. -* Deprecate `Node#cleanStyles` in favor of `cleanRaws`. -* Deprecate `Root#prevMap` in favor of `Root.source.input.map`. -* Add `syntax`, `parser` and `stringifier` options for Custom Syntaxes. -* Add stringifier option to `Node#toString`. -* Add `Result#content` alias for non-CSS syntaxes. -* Add `plugin.process(css)` shortcut to every plugin function (by Ben Briggs). -* Add multiple nodes support to insert methods (by Jonathan Neal). -* Add `Node#warn` shortcut (by Ben Briggs). -* Add `word` and `index` options to errors and warnings (by David Clark). -* Add `line`, `column` properties to `Warning`. -* Use `supports-color` library to detect color support in error output. -* Add type definitions for TypeScript plugin developers (by Jed Mao). -* `Rule#selectors` setter detects separators. -* Add `postcss.stringify` method. -* Throw descriptive errors for incorrectly formatted plugins. -* Add docs to npm release. -* Fix `url()` parsing. -* Fix Windows support (by Jed Mao). +- Deprecate `Node#replace` in favor of `replaceWith` (by Ben Briggs). +- Deprecate raw properties in favor of `Node#raws` object. +- Deprecate `Node#style` in favor of `raw`. +- Deprecate `CssSyntaxError#generated` in favor of `input`. +- Deprecate `Node#cleanStyles` in favor of `cleanRaws`. +- Deprecate `Root#prevMap` in favor of `Root.source.input.map`. +- Add `syntax`, `parser` and `stringifier` options for Custom Syntaxes. +- Add stringifier option to `Node#toString`. +- Add `Result#content` alias for non-CSS syntaxes. +- Add `plugin.process(css)` shortcut to every plugin function (by Ben Briggs). +- Add multiple nodes support to insert methods (by Jonathan Neal). +- Add `Node#warn` shortcut (by Ben Briggs). +- Add `word` and `index` options to errors and warnings (by David Clark). +- Add `line`, `column` properties to `Warning`. +- Use `supports-color` library to detect color support in error output. +- Add type definitions for TypeScript plugin developers (by Jed Mao). +- `Rule#selectors` setter detects separators. +- Add `postcss.stringify` method. +- Throw descriptive errors for incorrectly formatted plugins. +- Add docs to npm release. +- Fix `url()` parsing. +- Fix Windows support (by Jed Mao). ## 4.1.16 -* Fix errors without stack trace. + +- Fix errors without stack trace. ## 4.1.15 -* Allow asynchronous plugins to change processor plugins list (by Ben Briggs). + +- Allow asynchronous plugins to change processor plugins list (by Ben Briggs). ## 4.1.14 -* Fix for plugins packs defined by `postcss.plugin`. + +- Fix for plugins packs defined by `postcss.plugin`. ## 4.1.13 -* Fix input inlined source maps with UTF-8 encoding. + +- Fix input inlined source maps with UTF-8 encoding. ## 4.1.12 -* Update Promise polyfill. + +- Update Promise polyfill. ## 4.1.11 -* Fix error message on wrong plugin format. + +- Fix error message on wrong plugin format. ## 4.1.10 -* Fix Promise behavior on sync plugin errors. -* Automatically fill `plugin` field in `CssSyntaxError`. -* Fix warning message (by Ben Briggs). + +- Fix Promise behavior on sync plugin errors. +- Automatically fill `plugin` field in `CssSyntaxError`. +- Fix warning message (by Ben Briggs). ## 4.1.9 -* Speed up `node.clone()`. + +- Speed up `node.clone()`. ## 4.1.8 -* Accepts `Processor` instance in `postcss()` constructor too. + +- Accepts `Processor` instance in `postcss()` constructor too. ## 4.1.7 -* Speed up `postcss.list` (by Bogdan Chadkin). + +- Speed up `postcss.list` (by Bogdan Chadkin). ## 4.1.6 -* Fix Promise behavior on parsing error. + +- Fix Promise behavior on parsing error. ## 4.1.5 -* Parse at-words in declaration values. + +- Parse at-words in declaration values. ## 4.1.4 -* Fix Promise polyfill dependency (by Anton Yakushev and Matija Marohnić). + +- Fix Promise polyfill dependency (by Anton Yakushev and Matija Marohnić). ## 4.1.3 -* Add Promise polyfill for node.js 0.10 and IE. + +- Add Promise polyfill for node.js 0.10 and IE. ## 4.1.2 -* List helpers can be accessed independently `var space = postcss.list.space`. + +- List helpers can be accessed independently `var space = postcss.list.space`. ## 4.1.1 -* Show deprecated message only once. + +- Show deprecated message only once. ## 4.1 “Marquis Andras” -* Asynchronous plugin support. -* Add warnings from plugins and `Result#messages`. -* Add `postcss.plugin()` to create plugins with a standard API. -* Insert nodes by CSS string. -* Show version warning message on error from an outdated plugin. -* Send `Result` instance to plugins as the second argument. -* Add `CssSyntaxError#plugin`. -* Add `CssSyntaxError#showSourceCode()`. -* Add `postcss.list` and `postcss.vendor` aliases. -* Add `Processor#version`. -* Parse wrong closing bracket. -* Parse `!important` statement with spaces and comments inside (by Ben Briggs). -* Throw an error on declaration without `prop` or `value` (by Philip Peterson). -* Fix source map mappings position. -* Add indexed source map support. -* Always set `error.generated`. -* Clean all source map annotation comments. + +- Asynchronous plugin support. +- Add warnings from plugins and `Result#messages`. +- Add `postcss.plugin()` to create plugins with a standard API. +- Insert nodes by CSS string. +- Show version warning message on error from an outdated plugin. +- Send `Result` instance to plugins as the second argument. +- Add `CssSyntaxError#plugin`. +- Add `CssSyntaxError#showSourceCode()`. +- Add `postcss.list` and `postcss.vendor` aliases. +- Add `Processor#version`. +- Parse wrong closing bracket. +- Parse `!important` statement with spaces and comments inside (by Ben Briggs). +- Throw an error on declaration without `prop` or `value` (by Philip Peterson). +- Fix source map mappings position. +- Add indexed source map support. +- Always set `error.generated`. +- Clean all source map annotation comments. ## 4.0.6 -* Remove `babel` from released package dependencies (by Andres Suarez). + +- Remove `babel` from released package dependencies (by Andres Suarez). ## 4.0.5 -* Fix error message on double colon in declaration. + +- Fix error message on double colon in declaration. ## 4.0.4 -* Fix indent detection in some rare cases. + +- Fix indent detection in some rare cases. ## 4.0.3 -* Faster API with 6to5 Loose mode. -* Fix indexed source maps support. + +- Faster API with 6to5 Loose mode. +- Fix indexed source maps support. ## 4.0.2 -* Do not copy IE hacks to code style. + +- Do not copy IE hacks to code style. ## 4.0.1 -* Add `source.input` to `Root` too. + +- Add `source.input` to `Root` too. ## 4.0 “Duke Flauros” -* Rename `Container#childs` to `nodes`. -* Rename `PostCSS#processors` to `plugins`. -* Add `Node#replaceValues()` method. -* Add `Node#moveTo()`, `moveBefore()` and `moveAfter()` methods. -* Add `Node#cloneBefore()` and `cloneAfter()` shortcuts. -* Add `Node#next()`, `prev()` and `root()` shortcuts. -* Add `Node#replaceWith()` method. -* Add `Node#error()` method. -* Add `Container#removeAll()` method. -* Add filter argument to `eachDecl()` and `eachAtRule()`. -* Add `Node#source.input` and move `source.file` or `source.id` to `input`. -* Change code indent, when node was moved. -* Better fix code style on `Rule`, `AtRule` and `Comment` nodes changes. -* Allow to create rules and at-rules by hash shortcut in append methods. -* Add class name to CSS syntax error output. + +- Rename `Container#childs` to `nodes`. +- Rename `PostCSS#processors` to `plugins`. +- Add `Node#replaceValues()` method. +- Add `Node#moveTo()`, `moveBefore()` and `moveAfter()` methods. +- Add `Node#cloneBefore()` and `cloneAfter()` shortcuts. +- Add `Node#next()`, `prev()` and `root()` shortcuts. +- Add `Node#replaceWith()` method. +- Add `Node#error()` method. +- Add `Container#removeAll()` method. +- Add filter argument to `eachDecl()` and `eachAtRule()`. +- Add `Node#source.input` and move `source.file` or `source.id` to `input`. +- Change code indent, when node was moved. +- Better fix code style on `Rule`, `AtRule` and `Comment` nodes changes. +- Allow to create rules and at-rules by hash shortcut in append methods. +- Add class name to CSS syntax error output. ## 3.0.7 -* Fix IE filter parsing with multiple commands. -* Safer way to consume PostCSS object as plugin (by Maxime Thirouin). + +- Fix IE filter parsing with multiple commands. +- Safer way to consume PostCSS object as plugin (by Maxime Thirouin). ## 3.0.6 -* Fix missing semicolon when comment comes after last declaration. -* Fix Safe Mode declaration parsing on unclosed blocks. + +- Fix missing semicolon when comment comes after last declaration. +- Fix Safe Mode declaration parsing on unclosed blocks. ## 3.0.5 -* Fix parser to support difficult cases with backslash escape and brackets. -* Add `CssSyntaxError#stack` (by Maxime Thirouin). + +- Fix parser to support difficult cases with backslash escape and brackets. +- Add `CssSyntaxError#stack` (by Maxime Thirouin). ## 3.0.4 -* Fix Safe Mode on unknown word before declaration. + +- Fix Safe Mode on unknown word before declaration. ## 3.0.3 -* Increase tokenizer speed (by Roman Dvornov). + +- Increase tokenizer speed (by Roman Dvornov). ## 3.0.2 -* Fix empty comment parsing. -* Fix `Root#normalize` in some inserts. + +- Fix empty comment parsing. +- Fix `Root#normalize` in some inserts. ## 3.0.1 -* Fix Rhino JS runtime support. -* Typo in deprecated warning (by Maxime Thirouin). + +- Fix Rhino JS runtime support. +- Typo in deprecated warning (by Maxime Thirouin). ## 3.0 “Marquis Andrealphus” -* New parser, which become the fastest ever CSS parser written in JavaScript. -* Parser can now parse declarations and rules in one parent (like in `@page`) + +- New parser, which become the fastest ever CSS parser written in JavaScript. +- Parser can now parse declarations and rules in one parent (like in `@page`) and nested declarations for plugins like `postcss-nested`. -* Child nodes array is now in `childs` property, instead of `decls` and `rules`. -* `map.inline` and `map.sourcesContent` options are now `true` by default. -* Fix iterators (`each`, `insertAfter`) on children array changes. -* Use previous source map to show origin source of CSS syntax error. -* Use 6to5 ES6 compiler, instead of ES6 Transpiler. -* Use code style for manually added rules from existing rules. -* Use `from` option from previous source map `file` field. -* Set `to` value to `from` if `to` option is missing. -* Use better node source name when missing `from` option. -* Show a syntax error when `;` is missed between declarations. -* Allow to pass `PostCSS` instance or list of plugins to `use()` method. -* Allow to pass `Result` instance to `process()` method. -* Trim Unicode BOM on source maps parsing. -* Parse at-rules without spaces like `@import"file"`. -* Better previous `sourceMappingURL` annotation comment cleaning. -* Do not remove previous `sourceMappingURL` comment on `map.annotation: false`. -* Parse nameless at-rules in Safe Mode. -* Fix source map generation for nodes without source. -* Fix next child `before` if `Root` first child got removed. +- Child nodes array is now in `childs` property, instead of `decls` and `rules`. +- `map.inline` and `map.sourcesContent` options are now `true` by default. +- Fix iterators (`each`, `insertAfter`) on children array changes. +- Use previous source map to show origin source of CSS syntax error. +- Use 6to5 ES6 compiler, instead of ES6 Transpiler. +- Use code style for manually added rules from existing rules. +- Use `from` option from previous source map `file` field. +- Set `to` value to `from` if `to` option is missing. +- Use better node source name when missing `from` option. +- Show a syntax error when `;` is missed between declarations. +- Allow to pass `PostCSS` instance or list of plugins to `use()` method. +- Allow to pass `Result` instance to `process()` method. +- Trim Unicode BOM on source maps parsing. +- Parse at-rules without spaces like `@import"file"`. +- Better previous `sourceMappingURL` annotation comment cleaning. +- Do not remove previous `sourceMappingURL` comment on `map.annotation: false`. +- Parse nameless at-rules in Safe Mode. +- Fix source map generation for nodes without source. +- Fix next child `before` if `Root` first child got removed. ## 2.2.6 -* Fix map generation for nodes without source (by Josiah Savary). + +- Fix map generation for nodes without source (by Josiah Savary). ## 2.2.5 -* Fix source map with BOM marker support (by Mohammad Younes). -* Fix source map paths (by Mohammad Younes). + +- Fix source map with BOM marker support (by Mohammad Younes). +- Fix source map paths (by Mohammad Younes). ## 2.2.4 -* Fix `prepend()` on empty `Root`. + +- Fix `prepend()` on empty `Root`. ## 2.2.3 -* Allow to use object shortcut in `use()` with functions like `autoprefixer`. + +- Allow to use object shortcut in `use()` with functions like `autoprefixer`. ## 2.2.2 -* Add shortcut to set processors in `use()` via object with `.postcss` property. + +- Add shortcut to set processors in `use()` via object with `.postcss` property. ## 2.2.1 -* Send `opts` from `Processor#process(css, opts)` to processors. + +- Send `opts` from `Processor#process(css, opts)` to processors. ## 2.2 “Marquis Cimeies” -* Use GNU style syntax error messages. -* Add `Node#replace` method. -* Add `CssSyntaxError#reason` property. + +- Use GNU style syntax error messages. +- Add `Node#replace` method. +- Add `CssSyntaxError#reason` property. ## 2.1.2 -* Fix UTF-8 support in inline source map. -* Fix source map `sourcesContent` if there is no `from` and `to` options. + +- Fix UTF-8 support in inline source map. +- Fix source map `sourcesContent` if there is no `from` and `to` options. ## 2.1.1 -* Allow to miss `to` and `from` options for inline source maps. -* Add `Node#source.id` if file name is unknown. -* Better detect splitter between rules in CSS concatenation tools. -* Automatically clone node in insert methods. + +- Allow to miss `to` and `from` options for inline source maps. +- Add `Node#source.id` if file name is unknown. +- Better detect splitter between rules in CSS concatenation tools. +- Automatically clone node in insert methods. ## 2.1 “King Amdusias” -* Change Traceur ES6 compiler to ES6 Transpiler. -* Show broken CSS line in syntax error. + +- Change Traceur ES6 compiler to ES6 Transpiler. +- Show broken CSS line in syntax error. ## 2.0 “King Belial” -* Project was rewritten from CoffeeScript to ES6. -* Add Safe Mode to works with live input or with hacks from legacy code. -* More safer parser to pass all hacks from Browserhacks.com. -* Use real properties instead of magic getter/setter for raw properties. + +- Project was rewritten from CoffeeScript to ES6. +- Add Safe Mode to works with live input or with hacks from legacy code. +- More safer parser to pass all hacks from Browserhacks.com. +- Use real properties instead of magic getter/setter for raw properties. ## 1.0 “Marquis Decarabia” -* Save previous source map for each node to support CSS concatenation + +- Save previous source map for each node to support CSS concatenation with multiple previous maps. -* Add `map.sourcesContent` option to add origin content to `sourcesContent` +- Add `map.sourcesContent` option to add origin content to `sourcesContent` inside map. -* Allow to set different place of output map in annotation comment. -* Allow to use arrays and `Root` in `Container#append` and same methods. -* Add `Root#prevMap` with information about previous map. -* Allow to use latest PostCSS from GitHub by npm. -* `Result` now is lazy and it will generate output CSS only if you use `css` +- Allow to set different place of output map in annotation comment. +- Allow to use arrays and `Root` in `Container#append` and same methods. +- Add `Root#prevMap` with information about previous map. +- Allow to use latest PostCSS from GitHub by npm. +- `Result` now is lazy and it will generate output CSS only if you use `css` or `map` property. -* Use separated `map.prev` option to set previous map. -* Rename `inlineMap` option to `map.inline`. -* Rename `mapAnnotation` option to `map.annotation`. -* `Result#map` now return `SourceMapGenerator` object, instead of string. -* Run previous map autodetect only if input CSS contains annotation comment. -* Add `map: 'inline'` shortcut for `map: { inline: true }` option. -* `Node#source.file` now will contains absolute path. -* Clean `Declaration#between` style on node clone. +- Use separated `map.prev` option to set previous map. +- Rename `inlineMap` option to `map.inline`. +- Rename `mapAnnotation` option to `map.annotation`. +- `Result#map` now return `SourceMapGenerator` object, instead of string. +- Run previous map autodetect only if input CSS contains annotation comment. +- Add `map: 'inline'` shortcut for `map: { inline: true }` option. +- `Node#source.file` now will contains absolute path. +- Clean `Declaration#between` style on node clone. ## 0.3.5 -* Allow to use `Root` or `Result` as first argument in `process()`. -* Save parsed AST to `Result#root`. + +- Allow to use `Root` or `Result` as first argument in `process()`. +- Save parsed AST to `Result#root`. ## 0.3.4 -* Better space symbol detect to read UTF-8 BOM correctly. + +- Better space symbol detect to read UTF-8 BOM correctly. ## 0.3.3 -* Remove source map hacks by using new Mozilla’s `source-map` (by Simon Lydell). + +- Remove source map hacks by using new Mozilla’s `source-map` (by Simon Lydell). ## 0.3.2 -* Add URI encoding support for inline source maps. + +- Add URI encoding support for inline source maps. ## 0.3.1 -* Fix relative paths from previous source map. -* Safer space split in `Rule#selectors` (by Simon Lydell). + +- Fix relative paths from previous source map. +- Safer space split in `Rule#selectors` (by Simon Lydell). ## 0.3 “Prince Seere” -* Add `Comment` node for comments between declarations or rules. -* Add source map annotation comment to output CSS. -* Allow to inline source map to annotation comment by data:uri. -* Fix source maps on Windows. -* Fix source maps for subdirectory (by Dmitry Nikitenko and Simon Lydell). -* Autodetect previous source map. -* Add `first` and `last` shortcuts to container nodes. -* Parse `!important` to separated property in `Declaration`. -* Allow to break iteration by returning `false`. -* Copy code style to new nodes. -* Add `eachInside` method to recursively iterate all nodes. -* Add `selectors` shortcut to get selectors array. -* Add `toResult` method to `Rule` to simplify work with several input files. -* Clean declaration’s `value`, rule’s `selector` and at-rule’s `params` + +- Add `Comment` node for comments between declarations or rules. +- Add source map annotation comment to output CSS. +- Allow to inline source map to annotation comment by data:uri. +- Fix source maps on Windows. +- Fix source maps for subdirectory (by Dmitry Nikitenko and Simon Lydell). +- Autodetect previous source map. +- Add `first` and `last` shortcuts to container nodes. +- Parse `!important` to separated property in `Declaration`. +- Allow to break iteration by returning `false`. +- Copy code style to new nodes. +- Add `eachInside` method to recursively iterate all nodes. +- Add `selectors` shortcut to get selectors array. +- Add `toResult` method to `Rule` to simplify work with several input files. +- Clean declaration’s `value`, rule’s `selector` and at-rule’s `params` by storing spaces in `between` property. ## 0.2 “Duke Dantalion” -* Add source map support. -* Add shortcuts to create nodes. -* Method `process()` now returns object with `css` and `map` keys. -* Origin CSS file option was renamed from `file` to `from`. -* Rename `Node#remove()` method to `removeSelf()` to fix name conflict. -* Node source was moved to `source` property with origin file + +- Add source map support. +- Add shortcuts to create nodes. +- Method `process()` now returns object with `css` and `map` keys. +- Origin CSS file option was renamed from `file` to `from`. +- Rename `Node#remove()` method to `removeSelf()` to fix name conflict. +- Node source was moved to `source` property with origin file and node end position. -* You can set own CSS generate function. +- You can set own CSS generate function. ## 0.1 “Count Andromalius” -* Initial release. + +- Initial release. diff --git a/README.md b/README.md index afc754afc..08a75c1bc 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,15 @@ and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some o ---   Built by - Evil Martians, go-to agency for developer tools. +Evil Martians, go-to agency for developer tools. --- -[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree -[Evil Martians]: https://evilmartians.com/?utm_source=postcss -[Autoprefixer]: https://github.com/postcss/autoprefixer -[Stylelint]: https://stylelint.io/ -[plugins]: https://github.com/postcss/postcss#plugins - +[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree +[Evil Martians]: https://evilmartians.com/?utm_source=postcss +[Autoprefixer]: https://github.com/postcss/autoprefixer +[Stylelint]: https://stylelint.io/ +[plugins]: https://github.com/postcss/postcss#plugins ## Sponsorship @@ -37,7 +36,6 @@ PostCSS needs your support. We are accepting donations Sponsored by ThemeIsle - ## Plugins PostCSS takes a CSS file and provides an API to analyze and modify its rules @@ -53,88 +51,83 @@ If you have any new ideas, [PostCSS plugin development] is really easy. [plugins list]: https://github.com/postcss/postcss/blob/main/docs/plugins.md - ### Solve Global CSS Problem -* [`postcss-use`] allows you to explicitly set PostCSS plugins within CSS +- [`postcss-use`] allows you to explicitly set PostCSS plugins within CSS and execute them only for the current file. -* [`postcss-modules`] and [`react-css-modules`] automatically isolate +- [`postcss-modules`] and [`react-css-modules`] automatically isolate selectors within components. -* [`postcss-autoreset`] is an alternative to using a global reset +- [`postcss-autoreset`] is an alternative to using a global reset that is better for isolatable components. -* [`postcss-initial`] adds `all: initial` support, which resets +- [`postcss-initial`] adds `all: initial` support, which resets all inherited styles. -* [`cq-prolyfill`] adds container query support, allowing styles that respond +- [`cq-prolyfill`] adds container query support, allowing styles that respond to the width of the parent. - ### Use Future CSS, Today -* [`autoprefixer`] adds vendor prefixes, using data from Can I Use. -* [`postcss-preset-env`] allows you to use future CSS features today. - +- [`autoprefixer`] adds vendor prefixes, using data from Can I Use. +- [`postcss-preset-env`] allows you to use future CSS features today. ### Better CSS Readability -* [`postcss-nested`] unwraps nested rules the way Sass does. -* [`postcss-sorting`] sorts the content of rules and at-rules. -* [`postcss-utilities`] includes the most commonly used shortcuts and helpers. -* [`short`] adds and extends numerous shorthand properties. - +- [`postcss-nested`] unwraps nested rules the way Sass does. +- [`postcss-sorting`] sorts the content of rules and at-rules. +- [`postcss-utilities`] includes the most commonly used shortcuts and helpers. +- [`short`] adds and extends numerous shorthand properties. ### Images and Fonts -* [`postcss-url`] postcss plugin to rebase url(), inline or copy asset. -* [`postcss-sprites`] generates image sprites. -* [`font-magician`] generates all the `@font-face` rules needed in CSS. -* [`postcss-inline-svg`] allows you to inline SVG and customize its styles. -* [`postcss-write-svg`] allows you to write simple SVG directly in your CSS. -* [`webp-in-css`] to use WebP image format in CSS background. -* [`avif-in-css`] to use AVIF image format in CSS background. +- [`postcss-url`] postcss plugin to rebase url(), inline or copy asset. +- [`postcss-sprites`] generates image sprites. +- [`font-magician`] generates all the `@font-face` rules needed in CSS. +- [`postcss-inline-svg`] allows you to inline SVG and customize its styles. +- [`postcss-write-svg`] allows you to write simple SVG directly in your CSS. +- [`webp-in-css`] to use WebP image format in CSS background. +- [`avif-in-css`] to use AVIF image format in CSS background. ### Linters -* [`stylelint`] is a modular stylesheet linter. -* [`stylefmt`] is a tool that automatically formats CSS +- [`stylelint`] is a modular stylesheet linter. +- [`stylefmt`] is a tool that automatically formats CSS according `stylelint` rules. -* [`doiuse`] lints CSS for browser support, using data from Can I Use. -* [`colorguard`] helps you maintain a consistent color palette. - +- [`doiuse`] lints CSS for browser support, using data from Can I Use. +- [`colorguard`] helps you maintain a consistent color palette. ### Other -* [`cssnano`] is a modular CSS minifier. -* [`lost`] is a feature-rich `calc()` grid system. -* [`rtlcss`] mirrors styles for right-to-left locales. - -[PostCSS plugin development]: https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md -[`postcss-inline-svg`]: https://github.com/TrySound/postcss-inline-svg -[`postcss-preset-env`]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env -[`react-css-modules`]: https://github.com/gajus/react-css-modules -[`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset -[`postcss-write-svg`]: https://github.com/csstools/postcss-write-svg -[`postcss-utilities`]: https://github.com/ismamz/postcss-utilities -[`postcss-initial`]: https://github.com/maximkoretskiy/postcss-initial -[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites -[`postcss-modules`]: https://github.com/outpunk/postcss-modules -[`postcss-sorting`]: https://github.com/hudochenkov/postcss-sorting -[`font-magician`]: https://github.com/csstools/postcss-font-magician -[`autoprefixer`]: https://github.com/postcss/autoprefixer -[`cq-prolyfill`]: https://github.com/ausi/cq-prolyfill -[`postcss-url`]: https://github.com/postcss/postcss-url -[`postcss-use`]: https://github.com/postcss/postcss-use -[`css-modules`]: https://github.com/css-modules/css-modules -[`webp-in-css`]: https://github.com/ai/webp-in-css -[`avif-in-css`]: https://github.com/nucliweb/avif-in-css -[`colorguard`]: https://github.com/SlexAxton/css-colorguard -[`stylelint`]: https://github.com/stylelint/stylelint -[`stylefmt`]: https://github.com/morishitter/stylefmt -[`cssnano`]: https://cssnano.github.io/cssnano/ -[`postcss-nested`]: https://github.com/postcss/postcss-nested -[`doiuse`]: https://github.com/anandthakker/doiuse -[`rtlcss`]: https://github.com/MohammadYounes/rtlcss -[`short`]: https://github.com/csstools/postcss-short -[`lost`]: https://github.com/peterramsing/lost +- [`cssnano`] is a modular CSS minifier. +- [`lost`] is a feature-rich `calc()` grid system. +- [`rtlcss`] mirrors styles for right-to-left locales. + +[PostCSS plugin development]: https://github.com/postcss/postcss/blob/main/docs/writing-a-plugin.md +[`postcss-inline-svg`]: https://github.com/TrySound/postcss-inline-svg +[`postcss-preset-env`]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env +[`react-css-modules`]: https://github.com/gajus/react-css-modules +[`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset +[`postcss-write-svg`]: https://github.com/csstools/postcss-write-svg +[`postcss-utilities`]: https://github.com/ismamz/postcss-utilities +[`postcss-initial`]: https://github.com/maximkoretskiy/postcss-initial +[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites +[`postcss-modules`]: https://github.com/outpunk/postcss-modules +[`postcss-sorting`]: https://github.com/hudochenkov/postcss-sorting +[`font-magician`]: https://github.com/csstools/postcss-font-magician +[`autoprefixer`]: https://github.com/postcss/autoprefixer +[`cq-prolyfill`]: https://github.com/ausi/cq-prolyfill +[`postcss-url`]: https://github.com/postcss/postcss-url +[`postcss-use`]: https://github.com/postcss/postcss-use +[`css-modules`]: https://github.com/css-modules/css-modules +[`webp-in-css`]: https://github.com/ai/webp-in-css +[`avif-in-css`]: https://github.com/nucliweb/avif-in-css +[`colorguard`]: https://github.com/SlexAxton/css-colorguard +[`stylelint`]: https://github.com/stylelint/stylelint +[`stylefmt`]: https://github.com/morishitter/stylefmt +[`cssnano`]: https://cssnano.github.io/cssnano/ +[`postcss-nested`]: https://github.com/postcss/postcss-nested +[`doiuse`]: https://github.com/anandthakker/doiuse +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`short`]: https://github.com/csstools/postcss-short +[`lost`]: https://github.com/peterramsing/lost ## Syntaxes @@ -142,56 +135,53 @@ PostCSS can transform styles in any syntax, not just CSS. If there is not yet support for your favorite syntax, you can write a parser and/or stringifier to extend PostCSS. -* [`sugarss`] is a indent-based syntax like Sass or Stylus. -* [`postcss-syntax`] switch syntax automatically by file extensions. -* [`postcss-html`] parsing styles in ` in CSS output (#2074) --- lib/stringifier.js | 33 +++++++++++++++++++++++++-------- test/stringifier.test.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 8 deletions(-) diff --git a/lib/stringifier.js b/lib/stringifier.js index e07ad12e7..012fa622d 100644 --- a/lib/stringifier.js +++ b/lib/stringifier.js @@ -1,5 +1,17 @@ 'use strict' +// Escapes sequences that could break out of an HTML { + let root = new Root() + root.append(new Rule({ selector: '' })) + root.append(new AtRule({ name: 'media', params: '