diff --git a/include/thirdparty/css-crush/cli.php b/include/thirdparty/css-crush/cli.php index 39186f0..d09d127 100644 --- a/include/thirdparty/css-crush/cli.php +++ b/include/thirdparty/css-crush/cli.php @@ -137,6 +137,11 @@ if ($args->watch) { while (true) { + if (! file_exists($args->input_file)) { + stderr(message(['Input file was not found'], ['type'=>'error'])); + exit(STATUS_ERROR); + } + csscrush_file($args->input_file, $options); $stats = csscrush_stat(); diff --git a/include/thirdparty/css-crush/composer.json b/include/thirdparty/css-crush/composer.json deleted file mode 100644 index 246f7b4..0000000 --- a/include/thirdparty/css-crush/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "css-crush/css-crush", - "type": "library", - "description": "CSS preprocessor", - "keywords": ["css", "preprocessor"], - "homepage": "http://the-echoplex.net/csscrush", - "license": "MIT", - "scripts": { - "test": "vendor/bin/phpunit tests" - }, - "authors": [ - { - "name": "Pete Boere", - "email": "pete@the-echoplex.net" - }, - { - "name": "GitHub contributors", - "homepage": "https://github.com/peteboere/css-crush/contributors" - } - ], - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "8.*", - "psr/log": "1.0.*@dev", - "twig/twig": "1.*" - }, - "bin": [ - "bin/csscrush" - ], - "autoload": { - "psr-0": { "CssCrush": "lib/" }, - "files": [ "lib/functions.php" ] - } -} diff --git a/include/thirdparty/css-crush/docs/README.md b/include/thirdparty/css-crush/docs/README.md deleted file mode 100644 index 9c284db..0000000 --- a/include/thirdparty/css-crush/docs/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# CSS-Crush Documentation - -Rendered online at http://the-echoplex.net/csscrush diff --git a/include/thirdparty/css-crush/docs/api/functions.md b/include/thirdparty/css-crush/docs/api/functions.md deleted file mode 100644 index 639f9fb..0000000 --- a/include/thirdparty/css-crush/docs/api/functions.md +++ /dev/null @@ -1,84 +0,0 @@ - - -## csscrush_file() - -Process CSS file and return the compiled file URL. - -csscrush_file( string $file [, array [$options](#api--options) ] ) - - -*************** - -## csscrush_tag() - -Process CSS file and return an html `link` tag with populated href. - -csscrush_tag( string $file [, array [$options](#api--options) [, array $tag\_attributes ]] ) - - -*************** - -## csscrush_inline() - -Process CSS file and return CSS as text wrapped in html `style` tags. - -csscrush_inline( string $file [, array [$options](#api--options) [, array $tag\_attributes ]] ) - - -*************** - -## csscrush_string() - -Compile a raw string of CSS string and return it. - -csscrush_string( string $string [, array [$options](#api--options) ] ) - - -*************** - -## csscrush_get() - -Retrieve a config setting or option default. - -`csscrush_get( string $object_name, string $property )` - -### Parameters - - * `$object_name` Name of object you want to inspect: 'config' or 'options'. - * `$property` - - -*************** - -## csscrush_set() - -Set a config setting or option default. - -`csscrush_set( string $object_name, mixed $settings )` - -### Parameters - - * `$object_name` Name of object you want to modify: 'config' or 'options'. - * `$settings` Associative array of keys and values to set, or callable which argument is the object specified in `$object_name`. - - -*************** - -## csscrush_plugin() - -Register a plugin. - -`csscrush_plugin( string $name, callable $callback )` - - -*************** - -## csscrush_stat() - -Get compilation stats from the most recent compiled file. - -`csscrush_stat()` diff --git a/include/thirdparty/css-crush/docs/api/options.md b/include/thirdparty/css-crush/docs/api/options.md deleted file mode 100644 index 1aa3fb2..0000000 --- a/include/thirdparty/css-crush/docs/api/options.md +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Option - Values (default in bold) - Description -
minify - true | false | Array - Enable or disable minification. Optionally specify an array of advanced minification parameters. Currently the only advanced option is 'colors', which will compress all color values in any notation. -
formatter - block | single-line | padded - Set the formatting mode. Overrides minify option if both are set. -
newlines - use-platform | windows/win | unix - Set the output style of newlines -
boilerplate - true | false | Path - Prepend a boilerplate to the output file -
versioning - true | false - Append a timestamped querystring to the output filename -
vars - Array - An associative array of CSS variables to be applied at runtime. These will override variables declared globally or in the CSS. -
cache - true | false - Turn caching on or off. -
output_dir - Path - Specify an output directory for compiled files. Defaults to the same directory as the host file. -
output_file - Output filename - Specify an output filename (suffix is added). -
asset_dir - Path - Directory for SVG and image files generated by plugins (defaults to the main file output directory). -
stat_dump - false | true | Path - Save compile stats and variables to a file in json format. -
vendor_target - "all" | "moz", "webkit", ... | Array -Limit aliasing to a specific vendor, or an array of vendors. -
rewrite_import_urls - true | false | "absolute" - Rewrite relative URLs inside inlined imported files. -
import_paths - Array - Additional paths to search when resolving relative import URLs. -
plugins - Array - An array of plugin names to enable. -
source_map - true | false - Output a source map (compliant with the Source Map v3 proposal). -
context - Path - Context for importing resources from relative urls (Only applies to `csscrush_string()` and command line utility). -
doc_root - Path - Specify an alternative server document root for situations where the CSS is being served behind an alias or url rewritten path. -
diff --git a/include/thirdparty/css-crush/docs/core/abstract.md b/include/thirdparty/css-crush/docs/core/abstract.md deleted file mode 100644 index 4936aa8..0000000 --- a/include/thirdparty/css-crush/docs/core/abstract.md +++ /dev/null @@ -1,44 +0,0 @@ - - -Abstract rules are generic rules that can be [extended](#core--inheritance) with the `@extend` directive or mixed in (without arguments) like regular [mixins](#core--mixins) with the `@include` directive. - -```crush -@abstract ellipsis { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -@abstract heading { - font: bold 1rem serif; - letter-spacing: .1em; -} - -.foo { - @extend ellipsis; - display: block; -} -.bar { - @extend ellipsis; - @include heading; -} -``` - -```css -.foo, -.bar { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.foo { - display: block; -} -.bar { - font: bold 1rem serif; - letter-spacing: .1em; -} -``` diff --git a/include/thirdparty/css-crush/docs/core/auto-prefixing.md b/include/thirdparty/css-crush/docs/core/auto-prefixing.md deleted file mode 100644 index 02c67b6..0000000 --- a/include/thirdparty/css-crush/docs/core/auto-prefixing.md +++ /dev/null @@ -1,39 +0,0 @@ - - -Vendor prefixes for properties, functions, @-rules and declarations are **automatically generated** – based on [trusted](http://caniuse.com) [sources](http://developer.mozilla.org/en-US/docs/CSS/CSS_Reference) – so you can maintain cross-browser support while keeping your source code clean and easy to maintain. - - -```crush -.foo { - background: linear-gradient(to right, red, white); -} -``` - -```css -.foo { - background: -webkit-linear-gradient(to right, red, white); - background: linear-gradient(to right, red, white); -} -``` - - -```crush -@keyframes bounce { - 50% { transform: scale(1.4); } -} -``` - -```css -@-webkit-keyframes bounce { - 50% {-webkit-transform: scale(1.4); - transform: scale(1.4);} -} -@keyframes bounce { - 50% {-webkit-transform: scale(1.4); - transform: scale(1.4);} -} -``` diff --git a/include/thirdparty/css-crush/docs/core/direct-import.md b/include/thirdparty/css-crush/docs/core/direct-import.md deleted file mode 100644 index fea9d69..0000000 --- a/include/thirdparty/css-crush/docs/core/direct-import.md +++ /dev/null @@ -1,25 +0,0 @@ - - -Files referenced with the `@import` directive are inlined directly to save on http requests. Relative URL paths in the CSS are also updated if necessary. - -If you specify a media designation following the import URL — as per the CSS standard — the imported file content is wrapped in a `@media` block. - - -```crush -/* Standard CSS @import statements */ -@import "print.css" print; -@import url( "small-screen.css" ) screen and ( max-width: 500px ); -``` - -```css -@media print { - /* Contents of print.css */ -} -@media screen and ( max-width: 500px ) { - /* Contents of small-screen.css */ -} -``` diff --git a/include/thirdparty/css-crush/docs/core/fragments.md b/include/thirdparty/css-crush/docs/core/fragments.md deleted file mode 100644 index 2d3d693..0000000 --- a/include/thirdparty/css-crush/docs/core/fragments.md +++ /dev/null @@ -1,25 +0,0 @@ - - -Fragments – defined and invoked with the @fragment directive – work in a similar way to [mixins](#core--mixins), except that they work at block level: - -```crush -@fragment input-placeholder { - #(1)::-webkit-input-placeholder { color: #(0); } - #(1):-moz-placeholder { color: #(0); } - #(1)::placeholder { color: #(0); } - #(1).placeholder-state { color: #(0); } -} - -@fragment input-placeholder(#777, textarea); -``` - -```css -textarea::-webkit-input-placeholder { color: #777; } -textarea:-moz-placeholder { color: #777; } -textarea::placeholder { color: #777; } -textarea.placeholder-state { color: #777; } -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/a-adjust.md b/include/thirdparty/css-crush/docs/core/functions/a-adjust.md deleted file mode 100644 index 59d2c93..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/a-adjust.md +++ /dev/null @@ -1,26 +0,0 @@ - - -Manipulate the opacity (alpha channel) of a color value. - -a-adjust( *color*, *offset* ) - -## Parameters - -* *`color`* Any valid CSS color value -* *`offset`* The percentage to offset the color opacity - -## Returns - -The modified color value - - -## Examples - -```css -/* Reduce color opacity by 10% */ -color: a-adjust( rgb(50,50,0) -10 ); -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/data-uri.md b/include/thirdparty/css-crush/docs/core/functions/data-uri.md deleted file mode 100644 index 32b0459..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/data-uri.md +++ /dev/null @@ -1,33 +0,0 @@ - - -Create a data-uri. - -data-uri( *url* ) - -## Parameters - -* *`url`* URL of an asset - -`url` cannot be external, and must not be written with an http protocol prefix. - -The following file extensions are supported: jpg, jpeg, gif, png, svg, svgz, ttf, woff - - -## Returns - -The created data-uri as a string inside a CSS url(). - - -## Examples - -```crush -background: silver data-uri(../images/stripe.png); -``` - -```css -background: silver url(data:); -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/h-adjust.md b/include/thirdparty/css-crush/docs/core/functions/h-adjust.md deleted file mode 100644 index 98605c9..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/h-adjust.md +++ /dev/null @@ -1,24 +0,0 @@ - - -Adjust the hue of a color value. - -h-adjust( *color*, *offset* ) - -## Parameters - -* *`color`* Any valid CSS color value -* *`offset`* The percentage to offset the color hue (percent mark optional) - -## Returns - -The modified color value. - -## Examples - -```css -color: h-adjust( deepskyblue -10 ); -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/hsl-adjust.md b/include/thirdparty/css-crush/docs/core/functions/hsl-adjust.md deleted file mode 100644 index bdee0fd..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/hsl-adjust.md +++ /dev/null @@ -1,27 +0,0 @@ - - -Manipulate the hue, saturation and lightness of a color value - -hsl-adjust( *color*, *hue-offset*, *saturation-offset*, *lightness-offset* ) - -## Parameters - -* *`color`* Any valid CSS color value -* *`hue-offset`* The percentage to offset the color hue -* *`saturation-offset`* The percentage to offset the color saturation -* *`lightness-offset`* The percentage to offset the color lightness - -## Returns - -The modified color value - -## Examples - -```css -/* Lighten and increase saturation */ -color: hsl-adjust( red 0 5 5 ); -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/hsla-adjust.md b/include/thirdparty/css-crush/docs/core/functions/hsla-adjust.md deleted file mode 100644 index cc05b4b..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/hsla-adjust.md +++ /dev/null @@ -1,27 +0,0 @@ - - -Manipulate the hue, saturation, lightness and opacity of a color value. - -hsla-adjust( *color*, *hue-offset*, *saturation-offset*, *lightness-offset*, *alpha-offset* ) - -## Parameters - -* *`color`* Any valid CSS color value -* *`hue-offset`* The percentage to offset the color hue -* *`saturation-offset`* The percentage to offset the color saturation -* *`lightness-offset`* The percentage to offset the color lightness -* *`alpha-offset`* The percentage to offset the color opacity - -## Returns - -The modified color value. - -## Examples - -```css -color: hsla-adjust( #f00 0 5 5 -10 ); -``` \ No newline at end of file diff --git a/include/thirdparty/css-crush/docs/core/functions/l-adjust.md b/include/thirdparty/css-crush/docs/core/functions/l-adjust.md deleted file mode 100644 index 28ac701..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/l-adjust.md +++ /dev/null @@ -1,24 +0,0 @@ - - -Adjust the lightness of a color value. - -l-adjust( *color*, *offset* ) - -## Parameters - -* *`color`* Any valid CSS color value -* *`offset`* The percentage to offset the color hue (percent mark optional) - -## Returns - -The modified color value. - -## Examples - -```css -color: l-adjust( deepskyblue 10 ); -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/math.md b/include/thirdparty/css-crush/docs/core/functions/math.md deleted file mode 100644 index 2d65b40..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/math.md +++ /dev/null @@ -1,19 +0,0 @@ - - -Evaluate a raw mathematical expression. - -math( *expression* [, *unit*] ) - -## Examples - -```crush -font-size: math( 12 / 16, em ); -``` - -```css -font-size: 0.75em; -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/query.md b/include/thirdparty/css-crush/docs/core/functions/query.md deleted file mode 100644 index c9d5240..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/query.md +++ /dev/null @@ -1,54 +0,0 @@ - - -Copy a value from another rule. - -query( *target* [, *property-name* = default] [, *fallback*] ) - -## Parameters - -* *`target`* A rule selector, an abstract rule name or context keyword: `previous`, `next` (also `parent` and `top` within nested structures) -* *`property-name`* The CSS property name to copy, or just `default` to pass over. Defaults to the calling property -* *`fallback`* A CSS value to use if the target property does not exist - - -## Returns - -The referenced property value, or the fallback if it has not been set. - - -## Examples - - -```css -.foo { - width: 40em; - height: 100em; -} - -.bar { - width: query( .foo ); /* 40em */ - margin-top: query( .foo, height ); /* 100em */ - margin-bottom: query( .foo, default, 3em ); /* 3em */ -} -``` - -Using context keywords: - -```css -.foo { - width: 40em; - .bar { - width: 30em; - .baz: { - width: query( parent ); /* 30em */ - .qux { - width: query( top ); /* 40em */ - } - } - } -} -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/s-adjust.md b/include/thirdparty/css-crush/docs/core/functions/s-adjust.md deleted file mode 100644 index 8d2cce1..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/s-adjust.md +++ /dev/null @@ -1,25 +0,0 @@ - - -Adjust the saturation of a color value. - -s-adjust( *color*, *offset* ) - -## Parameters - -* *`color`* Any valid CSS color value -* *`offset`* The percentage to offset the color hue (percent mark optional) - -## Returns - -The modified color value. - -## Examples - -```css -/* Desaturate */ -color: s-adjust( deepskyblue -100 ); -``` diff --git a/include/thirdparty/css-crush/docs/core/functions/this.md b/include/thirdparty/css-crush/docs/core/functions/this.md deleted file mode 100644 index 12029b6..0000000 --- a/include/thirdparty/css-crush/docs/core/functions/this.md +++ /dev/null @@ -1,39 +0,0 @@ - - -Reference another property value from the same containing block. - -Restricted to referencing properties that don't already reference other properties. - -this( *property-name*, *fallback* ) - -## Parameters - -* *`property-name`* Property name -* *`fallback`* A CSS value - -## Returns - -The referenced property value, or the fallback if it has not been set. - -## Examples - -```css -.foo { - width: this( height ); - height: 100em; -} -``` - -******** - -```css -/* The following both fail because they create circular references. */ -.bar { - height: this( width ); - width: this( height ); -} -``` diff --git a/include/thirdparty/css-crush/docs/core/inheritance.md b/include/thirdparty/css-crush/docs/core/inheritance.md deleted file mode 100644 index 4473813..0000000 --- a/include/thirdparty/css-crush/docs/core/inheritance.md +++ /dev/null @@ -1,127 +0,0 @@ - - -By using the `@extend` directive and passing it a named ruleset or selector from any other rule you can share styles more effectively across a stylesheet. - -[Abstract rules](#core--abstract) can be used if you just need to extend a generic set of declarations. - -```crush -.negative-text { - overflow: hidden; - text-indent: -9999px; -} - -.sidebar-headline { - @extend .negative-text; - background: url( headline.png ) no-repeat; -} -``` - -```css -.negative-text, -.sidebar-headline { - overflow: hidden; - text-indent: -9999px; -} - -.sidebar-headline { - background: url( headline.png ) no-repeat; -} -``` - -Inheritance is recursive: - -```crush -.one { color: pink; } -.two { @extend .one; } -.three { @extend .two; } -.four { @extend .three; } -``` - -```css -.one, .two, .three, .four { color: pink; } -``` - -## Referencing by name - -If you want to reference a rule without being concerned about later changes to the identifying selector use the `@name` directive: - -```crush -.foo123 { - @name foo; - text-decoration: underline; -} - -.bar { - @include foo; -} -.baz { - @extend foo; -} -``` - - -## Extending with pseudo classes/elements - -`@extend` arguments can adopt pseudo classes/elements by appending an exclamation mark: - -```crush -.link-base { - color: #bada55; - text-decoration: underline; -} -.link-base:hover, -.link-base:focus { - text-decoration: none; -} - -.link-footer { - @extend .link-base, .link-base:hover!, .link-base:focus!; - color: blue; -} -``` - -```css -.link-base, -.link-footer { - color: #bada55; - text-decoration: underline; -} - -.link-base:hover, -.link-base:focus, -.link-footer:hover, -.link-footer:focus { - text-decoration: none; -} - -.link-footer { - color: blue; -} -``` - -The same outcome can also be achieved with an [Abstract rule](#core--abstract) wrapper to simplify repeated use: - -```crush -.link-base { - color: #bada55; - text-decoration: underline; -} -.link-base:hover, -.link-base:focus { - text-decoration: none; -} - -@abstract link-base { - @extend .link-base, .link-base:hover!, .link-base:focus!; -} - -.link-footer { - @extend link-base; - color: blue; -} -``` - diff --git a/include/thirdparty/css-crush/docs/core/loop.md b/include/thirdparty/css-crush/docs/core/loop.md deleted file mode 100644 index 66ae6f7..0000000 --- a/include/thirdparty/css-crush/docs/core/loop.md +++ /dev/null @@ -1,41 +0,0 @@ - - -For...in loops with lists and generator functions. - -```crush -@for fruit in apple, orange, pear { - .#(fruit) { - background-image: url("images/#(fruit).jpg"); - } -} -``` - -```css -.apple { background-image: url(images/apple.jpg); } -.orange { background-image: url(images/orange.jpg); } -.pear { background-image: url(images/pear.jpg); } -``` - -```crush -@for base in range(2, 24) { - @for i in range(1, #(base)) { - .grid-#(i)-of-#(base) { - width: math(#(i) / #(base) * 100, %); - } - } -} -``` - -```css -.grid-1-of-2 { width: 50%; } -.grid-2-of-2 { width: 100%; } -/* - Intermediate steps ommited. -*/ -.grid-23-of-24 { width: 95.83333%; } -.grid-24-of-24 { width: 100%; } -``` diff --git a/include/thirdparty/css-crush/docs/core/mixins.md b/include/thirdparty/css-crush/docs/core/mixins.md deleted file mode 100644 index 1348ff8..0000000 --- a/include/thirdparty/css-crush/docs/core/mixins.md +++ /dev/null @@ -1,95 +0,0 @@ - - -Mixins make reusing small snippets of CSS much simpler. You define them with the `@mixin` directive. - -Positional arguments via the argument function `#()` extend the capability of mixins for repurposing in different contexts. - -```crush -@mixin display-font { - font-family: "Arial Black", sans-serif; - font-size: #(0); - letter-spacing: #(1); -} - -/* Another mixin with default arguments */ -@mixin blue-theme { - color: #(0 navy); - background-image: url("images/#(1 cross-hatch).png"); -} - -/* Applying the mixins */ -.foo { - @include display-font(100%, .1em), blue-theme; -} -``` - -```css -.foo { - font-family: "Arial Black", sans-serif; - font-size: 100%; - letter-spacing: .1em; - color: navy; - background-image: url("images/cross-hatch.png"); -} -``` - -## Skipping arguments - -Mixin arguments can be skipped by using the **default** keyword: - -```crush -@mixin display-font { - font-size: #(0 100%); - letter-spacing: #(1); -} - -/* Applying the mixin skipping the first argument so the - default value is used instead */ -#foo { - @include display-font(default, .3em); -} -``` - -Sometimes you may need to use the same positional argument more than once. In this case the default value only needs to be specified once: - -```crush -@mixin square { - width: #(0 10px); - height: #(0); -} - -.foo { - @include square; -} -``` - -```css -#foo { - width: 10px; - height: 10px; -} -``` - - -## Mixing-in from other sources - -Normal rules and [abstract rules](#core--abstract) can also be used as static mixins without arguments: - -```crush -@abstract negative-text { - text-indent: -9999px; - overflow: hidden; -} - -#main-content .theme-border { - border: 1px solid maroon; -} - -.foo { - @include negative-text, #main-content .theme-border; -} -``` diff --git a/include/thirdparty/css-crush/docs/core/nesting.md b/include/thirdparty/css-crush/docs/core/nesting.md deleted file mode 100644 index 999be4f..0000000 --- a/include/thirdparty/css-crush/docs/core/nesting.md +++ /dev/null @@ -1,49 +0,0 @@ - - -Rules can be nested to avoid repetitive typing when scoping to a common parent selector. - -```crush -.homepage { - color: #333; - background: white; - .content { - p { - font-size: 110%; - } - } -} -``` - -```css -.homepage { - color: #333; - background: white; -} -.homepage .content p { - font-size: 110%; -} -``` - -## Parent referencing - -You can use the parent reference symbol `&` for placing the parent selector explicitly. - -```crush -.homepage { - .no-js & { - p { - font-size: 110%; - } - } -} -``` - -```css -.no-js .homepage p { - font-size: 110%; -} -``` diff --git a/include/thirdparty/css-crush/docs/core/selector-aliases.md b/include/thirdparty/css-crush/docs/core/selector-aliases.md deleted file mode 100644 index ea9296d..0000000 --- a/include/thirdparty/css-crush/docs/core/selector-aliases.md +++ /dev/null @@ -1,80 +0,0 @@ - - -Selector aliases can be useful for grouping together common selector chains for reuse. - -They're defined with the `@selector` directive, and can be used anywhere you might use a pseudo class. - - -```crush -@selector heading :any(h1, h2, h3, h4, h5, h6); -@selector radio input[type="radio"]; -@selector hocus :any(:hover, :focus); - -/* Selector aliases with arguments */ -@selector class-prefix :any([class^="#(0)"], [class*=" #(0)"]); -@selector col :class-prefix(-col); - -.sidebar :heading { - color: honeydew; -} - -:radio { - margin-right: 4px; -} - -:col { - float: left; -} - -p a:hocus { - text-decoration: none; -} -``` - -```css -.sidebar h1, .sidebar h2, -.sidebar h3, .sidebar h4, -.sidebar h5, .sidebar h6 { - color: honeydew; -} - -input[type="radio"] { - margin-right: 4px; -} - -[class^="col-"], -[class*=" col-"] { - border: 1px solid rgba(0,0,0,.5); -} - -p a:hover, -p a:focus { - text-decoration: none; -} -``` - -## Selector splatting - -Selector splats are a special kind of selector alias that expand using passed arguments. - -```crush -@selector-splat input input[type="#(text)"]; - -form :input(time, text, url, email, number) { - border: 1px solid; -} -``` - -```css -form input[type="time"], -form input[type="text"], -form input[type="url"], -form input[type="email"], -form input[type="number"] { - border: 1px solid; -} -``` diff --git a/include/thirdparty/css-crush/docs/core/selector-grouping.md b/include/thirdparty/css-crush/docs/core/selector-grouping.md deleted file mode 100644 index 0cafa1f..0000000 --- a/include/thirdparty/css-crush/docs/core/selector-grouping.md +++ /dev/null @@ -1,22 +0,0 @@ - - -Selector grouping with the `:any` pseudo class (modelled after CSS4 :matches) simplifies the creation of complex selector chains. - -```crush -:any( .sidebar, .block ) a:any( :hover, :focus ) { - color: lemonchiffon; -} -``` - -```css -.block a:hover, -.block a:focus, -.sidebar a:hover, -.sidebar a:focus { - color: lemonchiffon; -} -``` diff --git a/include/thirdparty/css-crush/docs/core/variables.md b/include/thirdparty/css-crush/docs/core/variables.md deleted file mode 100644 index 117f53f..0000000 --- a/include/thirdparty/css-crush/docs/core/variables.md +++ /dev/null @@ -1,62 +0,0 @@ - - -Declare variables in your CSS with a `@set` directive and use them with the `$()` function. - -Variables can also be injected at runtime with the [vars option](#api--options). - - -```crush -/* Defining variables */ -@set { - dark: #333; - light: #F4F2E2; - smaller-screen: screen and (max-width: 800px); -} - -/* Using variables */ -@media $(smaller-screen) { - ul, p { - color: $(dark); - /* Using a fallback value with an undefined variable */ - background-color: $(accent-color, #ff0); - } -} -``` - -******* - -```css -/* Interpolation */ -.username::before { - content: "$(greeting)"; -} -``` - -## Conditionals - -Sections of CSS can be included and excluded on the basis of variable existence with the `@ifset` directive: - -```crush -@set foo #f00; -@set bar true; - -@ifset foo { - p { - color: $(foo); - } -} - -p { - font-size: 12px; - @ifset not foo { - line-height: 1.5; - } - @ifset bar(true) { - margin-bottom: 5px; - } -} -``` diff --git a/include/thirdparty/css-crush/docs/getting-started/js.md b/include/thirdparty/css-crush/docs/getting-started/js.md deleted file mode 100644 index 605727f..0000000 --- a/include/thirdparty/css-crush/docs/getting-started/js.md +++ /dev/null @@ -1,26 +0,0 @@ - - -This preprocessor is written in PHP, so as prerequisite you will need to have PHP installed on your system to use the JS api. - -```shell -npm install csscrush -``` - -All methods can take the standard options (camelCase) as the second argument. - -```php -const csscrush = require('csscrush'); - -// Compile. Returns promise. -csscrush.file('./styles.css', {sourceMap: true}); - -// Compile string of CSS. Returns promise. -csscrush.string('* {box-sizing: border-box;}'); - -// Compile and watch file. Returns event emitter (triggers 'data' on compile). -csscrush.watch('./styles.css'); -``` diff --git a/include/thirdparty/css-crush/docs/getting-started/php.md b/include/thirdparty/css-crush/docs/getting-started/php.md deleted file mode 100644 index 1c6f836..0000000 --- a/include/thirdparty/css-crush/docs/getting-started/php.md +++ /dev/null @@ -1,17 +0,0 @@ - - -If you're using [Composer](http://getcomposer.org) you can use Crush in your project with the following line in your terminal: - -```shell -composer require css-crush/css-crush -``` - -If you're not using Composer yet just download the library ([zip](http://github.com/peteboere/css-crush/zipball/master) or [tar](http://github.com/peteboere/css-crush/tarball/master)) into a convenient location and require the bootstrap file: - -```php - -``` diff --git a/include/thirdparty/css-crush/docs/plugins/aria.md b/include/thirdparty/css-crush/docs/plugins/aria.md deleted file mode 100644 index c00608d..0000000 --- a/include/thirdparty/css-crush/docs/plugins/aria.md +++ /dev/null @@ -1,21 +0,0 @@ - -Pseudo classes for working with ARIA roles, states and properties. - - * [ARIA roles spec](http://www.w3.org/TR/wai-aria/roles) - * [ARIA states and properties spec](http://www.w3.org/TR/wai-aria/states_and_properties) - -````crush -:role(tablist) {...} -:aria-expanded {...} -:aria-expanded(false) {...} -:aria-label {...} -:aria-label(foobarbaz) {...} -```` - -````css -[role="tablist"] {...} -[aria-expanded="true"] {...} -[aria-expanded="false"] {...} -[aria-label] {...} -[aria-label="foobarbaz"] {...} -```` diff --git a/include/thirdparty/css-crush/docs/plugins/canvas.md b/include/thirdparty/css-crush/docs/plugins/canvas.md deleted file mode 100644 index df6994d..0000000 --- a/include/thirdparty/css-crush/docs/plugins/canvas.md +++ /dev/null @@ -1,55 +0,0 @@ - -Bitmap image generator. - -Requires the GD image library bundled with PHP. - -```crush -/* Create square semi-opaque png. */ -@canvas foo { - width: 50; - height: 50; - fill: rgba(255, 0, 0, .5); -} - -body { - background: white canvas(foo); -} -``` - -***** - -```crush -/* White to transparent east facing gradient with 10px - margin and background fill. */ -@canvas horz-gradient { - width: #(0); - height: 150; - fill: canvas-linear-gradient(to right, #(1 white), #(2 rgba(255,255,255,0))); - background-fill: powderblue; - margin: 10; -} - -/* Rectangle 300x150. */ -body { - background: canvas(horz-gradient, 300); -} -/* Flipped gradient, using canvas-data() to generate a data URI. */ -.bar { - background: canvas-data(horz-gradient, 100, rgba(255,255,255,0), white); -} -``` - -***** - -```crush -/* Google logo resized to 400px width and given a sepia effect. */ -@canvas sepia { - src: url(http://www.google.com/images/logo.png); - width: 400; - canvas-filter: greyscale() colorize(45, 45, 0); -} - -.bar { - background: canvas(sepia); -} -``` diff --git a/include/thirdparty/css-crush/docs/plugins/ease.md b/include/thirdparty/css-crush/docs/plugins/ease.md deleted file mode 100644 index 37ce5f9..0000000 --- a/include/thirdparty/css-crush/docs/plugins/ease.md +++ /dev/null @@ -1,37 +0,0 @@ - -Expanded easing keywords for transitions. - -* ease-in-out-back -* ease-in-out-circ -* ease-in-out-expo -* ease-in-out-sine -* ease-in-out-quint -* ease-in-out-quart -* ease-in-out-cubic -* ease-in-out-quad -* ease-out-back -* ease-out-circ -* ease-out-expo -* ease-out-sine -* ease-out-quint -* ease-out-quart -* ease-out-cubic -* ease-out-quad -* ease-in-back -* ease-in-circ -* ease-in-expo -* ease-in-sine -* ease-in-quint -* ease-in-quart -* ease-in-cubic -* ease-in-quad - -See [easing demos](http://easings.net) for live examples. - -```crush -transition: .2s ease-in-quad; -``` - -```css -transition: .2s cubic-bezier(.550,.085,.680,.530); -``` diff --git a/include/thirdparty/css-crush/docs/plugins/forms.md b/include/thirdparty/css-crush/docs/plugins/forms.md deleted file mode 100644 index 3f4fcbc..0000000 --- a/include/thirdparty/css-crush/docs/plugins/forms.md +++ /dev/null @@ -1,16 +0,0 @@ - -Pseudo classes for working with forms. - -```crush -:input(date, search, email) {...} -:checkbox {...} -:radio {...} -:text {...} -``` - -```css -input[type="date"], input[type="search"], input[type="email"] {...} -input[type="checkbox"] {...} -input[type="radio"] {...} -input[type="text"] {...} -``` diff --git a/include/thirdparty/css-crush/docs/plugins/hocus-pocus.md b/include/thirdparty/css-crush/docs/plugins/hocus-pocus.md deleted file mode 100644 index b8f3efa..0000000 --- a/include/thirdparty/css-crush/docs/plugins/hocus-pocus.md +++ /dev/null @@ -1,12 +0,0 @@ - -Composite :hover/:focus/:active pseudo classes. - -```crush -a:hocus { color: red; } -a:pocus { color: red; } -``` - -```css -a:hover, a:focus { color: red; } -a:hover, a:focus, a:active { color: red; } -``` diff --git a/include/thirdparty/css-crush/docs/plugins/property-sorter.md b/include/thirdparty/css-crush/docs/plugins/property-sorter.md deleted file mode 100644 index cd17817..0000000 --- a/include/thirdparty/css-crush/docs/plugins/property-sorter.md +++ /dev/null @@ -1,21 +0,0 @@ - -Property sorting. - -Examples use the predefined property sorting table. To define a custom sorting order pass an array to `csscrush_set_property_sort_order()` - - -```crush -color: red; -background: #000; -opacity: .5; -display: block; -position: absolute; -``` - -```css -position: absolute; -display: block; -opacity: .5; -color: red; -background: #000; -``` diff --git a/include/thirdparty/css-crush/docs/plugins/svg-gradients.md b/include/thirdparty/css-crush/docs/plugins/svg-gradients.md deleted file mode 100644 index 66ff410..0000000 --- a/include/thirdparty/css-crush/docs/plugins/svg-gradients.md +++ /dev/null @@ -1,48 +0,0 @@ - -Functions for creating SVG gradients with a CSS gradient like syntax. - -Primarily useful for supporting Internet Explorer 9. - -## svg-linear-gradent() - -Syntax is the same as [linear-gradient()](http://dev.w3.org/csswg/css3-images/#linear-gradient) - -```syntax -svg-linear-gradent( [ | to ,]? [, ]+ ) -``` - -### Returns - -A base64 encoded svg data-uri. - -### Known issues - -Color stops can only take percentage value offsets. - -```css -background-image: svg-linear-gradient( to top left, #fff, rgba(255,255,255,0) 80% ); -background-image: svg-linear-gradient( 35deg, red, gold 20%, powderblue ); -``` - - -## svg-radial-gradent() - -Syntax is similar to but more limited than [radial-gradient()](http://dev.w3.org/csswg/css3-images/#radial-gradient) - -```syntax -svg-radial-gradent( [ | at ,]? [, ]+ ) -``` - -### Returns - -A base64 encoded svg data-uri. - -### Known issues - -Color stops can only take percentage value offsets. -No control over shape - only circular gradients - however, the generated image can be stretched with background-size. - -```css -background-image: svg-radial-gradient( at center, red, blue 50%, yellow ); -background-image: svg-radial-gradient( 100% 50%, rgba(255,255,255,.5), rgba(255,255,255,0) ); -``` diff --git a/include/thirdparty/css-crush/docs/plugins/svg.md b/include/thirdparty/css-crush/docs/plugins/svg.md deleted file mode 100644 index facec0d..0000000 --- a/include/thirdparty/css-crush/docs/plugins/svg.md +++ /dev/null @@ -1,74 +0,0 @@ - -Define and embed simple SVG elements, paths and effects inside CSS - - -```crush -@svg foo { - type: star; - star-points: #(0 5); - radius: 100 50; - margin: 20; - stroke: black; - fill: red; - fill-opacity: .5; -} - -/* Embed SVG with svg() function (generates an svg file). */ -body { - background: svg(foo); -} -/* As above but a 3 point star creating a data URI instead of a file. */ -body { - background: svg-data(foo, 3); -} -``` - -******* - -```crush -/* Using path data and stroke styles to create a plus sign. */ -@svg plus { - d: "M0,5 h10 M5,0 v10"; - width: 10; - height: 10; - stroke: white; - stroke-linecap: round; - stroke-width: 2; -} -``` - - -******* - -```crush -/* Skewed circle with radial gradient fill and drop shadow. */ -@svg circle { - type: circle; - transform: skewX(30); - diameter: 60; - margin: 20; - fill: svg-radial-gradient(at top right, gold 50%, red); - drop-shadow: 2 2 0 rgba(0,0,0,1); -} -``` - -******* - -```crush -/* 8-sided polygon with an image fill. - Note: images usually have to be converted to data URIs, see known issues below. */ -@svg pattern { - type: polygon; - sides: 8; - diameter: 180; - margin: 20; - fill: pattern(data-uri(kitten.jpg), scale(1) translate(-100 0)); - fill-opacity: .8; -} -``` - - -### Known issues - -Firefox [does not allow linked images](https://bugzilla.mozilla.org/show_bug.cgi?id=628747#c0) (or other svg) when svg is in "svg as image" mode. - diff --git a/include/thirdparty/css-crush/index.js b/include/thirdparty/css-crush/index.js index 5dbe042..c12c671 100644 --- a/include/thirdparty/css-crush/index.js +++ b/include/thirdparty/css-crush/index.js @@ -18,15 +18,16 @@ const processExec = (...args) => { processes.push(exec(...args)); return processes.at(-1); }; +const exit = () => { + let proc; + while ((proc = processes.pop())) { + proc?.kill(); + } + process.exit(); +}; for (const event of ['exit', 'SIGINT', 'SIGUSR1', 'SIGUSR2', 'uncaughtException', 'SIGTERM']) { - process.on(event, () => { - let proc; - while ((proc = processes.pop())) { - proc?.kill(); - } - process.exit(); - }); + process.on(event, exit); } class Process extends EventEmitter { @@ -87,6 +88,9 @@ class Process extends EventEmitter { this.emit('data', {message: detail, ...eventData}); } }); + + proc.on('exit', exit); + return this; } diff --git a/include/thirdparty/css-crush/package-lock.json b/include/thirdparty/css-crush/package-lock.json deleted file mode 100644 index dfefd6c..0000000 --- a/include/thirdparty/css-crush/package-lock.json +++ /dev/null @@ -1,1659 +0,0 @@ -{ - "name": "csscrush", - "version": "4.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "csscrush", - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "node-glob": "~1.2.0" - }, - "bin": { - "csscrush": "bin/csscrush" - }, - "devDependencies": { - "eslint": "~8.8.0", - "normalize.css": "7.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", - "dev": true, - "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" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", - "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", - "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/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/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "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/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/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/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "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/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/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/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": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "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.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "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/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/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.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", - "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", - "dev": true, - "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", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.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": "^5.2.0", - "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", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "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-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", - "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-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.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/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/espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", - "dev": true, - "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "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/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/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/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-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": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "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/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.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/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 - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "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" - }, - "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/glob-to-regexp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.1.0.tgz", - "integrity": "sha1-4DadQmV4/UVtR9wjsJ3gXB2p6l0=" - }, - "node_modules/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, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/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, - "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": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "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": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "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/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, - "engines": { - "node": ">=0.10.0" - } - }, - "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/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "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/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/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "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/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 - }, - "node_modules/node-glob": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-glob/-/node-glob-1.2.0.tgz", - "integrity": "sha1-UkD/7e/G1mPOhRXleWpNR6dQwNU=", - "dependencies": { - "async": "^1.3.0", - "glob-to-regexp": "^0.1.0" - } - }, - "node_modules/normalize.css": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz", - "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "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/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-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, - "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/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/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/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/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/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/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-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/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 - }, - "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/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/v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", - "dev": true - }, - "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/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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - }, - "dependencies": { - "@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", - "dev": true, - "requires": { - "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": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", - "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@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 - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "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": {} - }, - "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" - } - }, - "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 - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "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 - }, - "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" - } - }, - "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" - } - }, - "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": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "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.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "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 - }, - "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" - } - }, - "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.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", - "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", - "dev": true, - "requires": { - "@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", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.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": "^5.2.0", - "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", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true - }, - "espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", - "dev": true, - "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.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" - } - }, - "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" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "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-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 - }, - "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" - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "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 - }, - "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": "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" - } - }, - "glob-to-regexp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.1.0.tgz", - "integrity": "sha1-4DadQmV4/UVtR9wjsJ3gXB2p6l0=" - }, - "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" - } - }, - "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 - }, - "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 - }, - "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": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "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 - }, - "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-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" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "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" - } - }, - "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 - }, - "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" - } - }, - "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 - }, - "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 - }, - "node-glob": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-glob/-/node-glob-1.2.0.tgz", - "integrity": "sha1-UkD/7e/G1mPOhRXleWpNR6dQwNU=", - "requires": { - "async": "^1.3.0", - "glob-to-regexp": "^0.1.0" - } - }, - "normalize.css": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz", - "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "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" - } - }, - "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-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 - }, - "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 - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "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 - }, - "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" - } - }, - "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 - }, - "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-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" - } - }, - "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 - }, - "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 - }, - "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" - } - }, - "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", - "dev": true - }, - "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" - } - }, - "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 - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - } -} diff --git a/include/thirdparty/css-crush/package.json b/include/thirdparty/css-crush/package.json deleted file mode 100644 index a0f90b0..0000000 --- a/include/thirdparty/css-crush/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "csscrush", - "version": "4.1.0", - "description": "CSS-Crush, CSS preprocessor", - "repository": { - "type": "git", - "url": "https://github.com/peteboere/css-crush.git" - }, - "bugs": { - "url": "https://github.com/peteboere/css-crush/issues" - }, - "bin": { - "csscrush": "./bin/csscrush" - }, - "scripts": { - "lint": "eslint --fix index.js" - }, - "homepage": "http://the-echoplex.net/csscrush", - "license": "MIT", - "devDependencies": { - "eslint": "~8.8.0", - "normalize.css": "7.0.0" - }, - "dependencies": { - "node-glob": "~1.2.0" - }, - "type": "module", - "engines": { - "node": ">=16" - } -} diff --git a/include/thirdparty/elFinder/themes/material/css/theme-custom.css b/include/thirdparty/elFinder/themes/material/css/theme-custom.css index b66df48..99a6960 100644 --- a/include/thirdparty/elFinder/themes/material/css/theme-custom.css +++ b/include/thirdparty/elFinder/themes/material/css/theme-custom.css @@ -1329,6 +1329,13 @@ div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical { #elfinder-elfinder-cwd-thead td.ui-state-active { background: rgba(33, 138, 232, 0.5) } + +/* 3. level - list view */ +.elfinder .elfinder-cwd table thead td , +.elfinder .elfinder-cwd table thead td.ui-state-active { + text-align:left !important; background:inherit !important; +} + #elfinder-elfinder-cwd-thead td.ui-state-active .ui-icon { font-size: 10px !important; background: none transparent;